[#4480] Only allow editing of your own ACLs
Summary Only allow editing of your own ACLs
Queue IMP
Queue Version HEAD
Type Enhancement
State Accepted
Priority 1. Low
Owners
Requester Matt Selsky <selsky (at) columbia (dot) edu>
Created 10/03/2006 (587 days ago)
Due
Updated 05/10/2007 (368 days ago)
Assigned 10/03/2006 (587 days ago)
Resolved
Attachments myrights[1].patch Download
Milestone
Patch

History
05/10/2007 Jan Schneider Taken from Horde DevelopersHorde Developers
Taken from Matt Selsky
State ⇒ Accepted
 
05/03/2007 Matt Selsky Comment #13 Reply to this comment
05/03/2007 Chuck Hagenbuch Comment #12
State ⇒ Feedback
Reply to this comment
Which login code is in question here? Is this still an issue?
10/10/2006 Matt Selsky Comment #11 Reply to this comment
Committed.  Login code still needs to be refactored.
10/04/2006 Jan Schneider Comment #10 Reply to this comment
But technically, the username passed in the parameters is only an argurment for the driver instance, other drivers might not need this parameter.
10/04/2006 Matt Selsky Comment #9 Reply to this comment
> Not at the moment, but given that this is a general purpose class in
> horde, I would like to keep that option.

The RFC doesn't seem to provide a mechanism to get this sort of information though...
10/03/2006 Jan Schneider Comment #8 Reply to this comment
> Are there cases when you'd want to call canEdit() for other users
> besides the current one?

Not at the moment, but given that this is a general purpose class in horde, I would like to keep that option.
10/03/2006 Matt Selsky Comment #7 Reply to this comment
Are there cases when you'd want to call canEdit() for other users besides the current one?
10/03/2006 Matt Selsky Comment #6 Reply to this comment
> Neither, the method should be used as is, and you patch looks like it
> does this. I don't exactly follow the logic without applying the
> patch, but do you have in mind that the driver could connect as a
> regular user or the cyrus user?
> Beside that, that authentication stuff has to go into a separate
> private method to avoid the code duplication.

Currently the driver connects as a regular user.  No special access is needed for the MYRIGHTS command.  I'll refactor the authentication code.
10/03/2006 Jan Schneider Comment #5 Reply to this comment
> Or should the canEdit function be modified to make the $user argument
> optional, and if not set, then do the MYRIGHTS command above?

Neither, the method should be used as is, and you patch looks like it does this. I don't exactly follow the logic without applying the patch, but do you have in mind that the driver could connect as a regular user or the cyrus user?
Beside that, that authentication stuff has to go into a separate private method to avoid the code duplication.
10/03/2006 Jan Schneider Deleted Attachment: myrights.patch
 
10/03/2006 Matt Selsky Comment #4
New Attachment: myrights[1].patch Download
Reply to this comment
Let's try that again.
10/03/2006 Matt Selsky Comment #3
New Attachment: myrights.patch
Reply to this comment
Comments?
10/03/2006 Matt Selsky Assigned to Horde DevelopersHorde Developers
 
10/03/2006 Matt Selsky Comment #2 Reply to this comment
There's a canEdit($folder, $user) function that is unimplemented in all drivers.  Any problem with adding a new function?

canUserEdit($folder) {
// ask IMAP server for rights on $folder via "MYRIGHTS" command for current user.
}

Or should the canEdit function be modified to make the $user argument optional, and if not set, then do the MYRIGHTS command above?
10/03/2006 Michael Slusarz Summary ⇒ Only allow editing of your own ACLs
 
10/03/2006 Matt Selsky State ⇒ Assigned
 
10/03/2006 Matt Selsky Assigned to Matt Selsky
 
10/03/2006 Matt Selsky Comment #1
Summary ⇒ Only allow editting of your own ACLs
Priority ⇒ 1. Low
Type ⇒ Enhancement
Queue ⇒ IMP
State ⇒ New
Reply to this comment
IMP currently shows ACLs for folders that you don't have admin access to as if you can edit them.  IMP should instead display the ACL, but grey it out so you don't think you can change it.  Currently the error is "Permission denied" with Cyrus.