Fix options availability in Contacts module

A user can edit/delete a card from a system addressbook if included in
the "modifiers". Enable the delete/move options of the contextual menu
in this case.
Fixes #3342
This commit is contained in:
Francis Lachapelle 2015-09-16 09:38:52 -04:00
parent b910501afa
commit 861057f22f
2 changed files with 20 additions and 0 deletions

View file

@ -251,6 +251,24 @@ Class SOGoContactSourceFolderK, SOGoGCSFolderK;
? @"available": @"unavailable");
}
- (NSDictionary *) currentContactFolderCardRights
{
NSArray *roles;
NSString *userLogin, *owner;
BOOL objectEditor, objectEraser;
userLogin = [[context activeUser] login];
owner = [currentFolder ownerInContext: context];
roles = [currentFolder aclsForUser: userLogin];
objectEditor = ([owner isEqualToString: userLogin] || [roles containsObject: SOGoRole_ObjectEditor]);
objectEraser = ([owner isEqualToString: userLogin] || [roles containsObject: SOGoRole_ObjectEraser]);
return [NSDictionary dictionaryWithObjectsAndKeys:
(objectEditor? @"available": @"unavailable"), @"editing",
(objectEraser? @"available": @"unavailable"), @"deleting",
nil];
}
- (NSString *) verticalDragHandleStyle
{
NSString *vertical;

View file

@ -110,6 +110,8 @@
var:class="currentContactFolderClass"
var:acl-editing="currentContactFolderAclEditing"
var:list-editing="currentContactFolderListEditing"
var:card-editing="currentContactFolderCardRights.editing"
var:card-deleting="currentContactFolderCardRights.deleting"
><span><var:string value="currentContactFolderName"/></span></li
></var:foreach
>