[#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 (1260 days ago)
Due
Updated 05/10/2007 (1041 days ago)
Assigned 10/03/2006 (1260 days ago)
Resolved
Attachments myrights[1].patch Download
Milestone
Patch No

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
Queue ⇒ IMP
State ⇒ New
Priority ⇒ 1. Low
Type ⇒ Enhancement
Summary ⇒ Only allow editting of your own ACLs
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.