From f100388a783f6c951f71647ed88246a245782321 Mon Sep 17 00:00:00 2001 From: Wolfgang Sourdeau Date: Mon, 1 Jun 2009 17:19:44 +0000 Subject: [PATCH] Monotone-Parent: 9c939912020f0e7e38a316d6867d7497c4540bd6 Monotone-Revision: b68886fef709d3931ecfc6a232969b39ca2576c0 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2009-06-01T17:19:44 Monotone-Branch: ca.inverse.sogo --- ChangeLog | 8 ++++++++ SoObjects/Mailer/product.plist | 2 -- SoObjects/SOGo/SOGoPermissions.h | 1 + SoObjects/SOGo/SOGoPermissions.m | 1 + UI/Common/UIxFolderActions.m | 11 ---------- UI/Common/product.plist | 7 +------ UI/MainUI/product.plist | 30 +++++++++++++--------------- UI/WebServerResources/ContactsUI.js | 2 +- UI/WebServerResources/MailerUI.js | 2 +- UI/WebServerResources/SchedulerUI.js | 2 +- 10 files changed, 28 insertions(+), 38 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5658819a5..e09b851b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-06-01 Wolfgang Sourdeau + + * UI/Common/UIxFolderActions.m (-): removed useless method since + SOGoFolders can use the "delete" web method to achieve the same result. + + * SoObjects/SOGo/SOGoPermissions.m: declared new "Delete Object" + permission. + 2009-05-30 Ludovic Marcotte * Modified SOGoCalendarComponent.m so that we diff --git a/SoObjects/Mailer/product.plist b/SoObjects/Mailer/product.plist index 5a470e3ee..523da2688 100644 --- a/SoObjects/Mailer/product.plist +++ b/SoObjects/Mailer/product.plist @@ -17,7 +17,6 @@ "View" = ( "Owner", "AuthorizedSubscriber" ); "Access Contents Information" = ( "Owner", "AuthorizedSubscriber" ); "Add Documents, Images, and Files" = ( "Owner", "ObjectCreator" ); - "Delete Objects" = ( "Owner", "ObjectEraser" ); "WebDAV Access" = ( "Owner", "AuthorizedSubscriber" ); }; }; @@ -27,7 +26,6 @@ "View" = ( "Owner", "AuthorizedSubscriber" ); "Access Contents Information" = ( "Owner", "AuthorizedSubscriber" ); "Add Documents, Images, and Files" = ( "Owner", "ObjectCreator" ); - "Delete Objects" = ( "Owner", "ObjectEraser" ); "WebDAV Access" = ( "Owner", "AuthorizedSubscriber" ); }; }; diff --git a/SoObjects/SOGo/SOGoPermissions.h b/SoObjects/SOGo/SOGoPermissions.h index 7c67c85d7..6c0a72483 100644 --- a/SoObjects/SOGo/SOGoPermissions.h +++ b/SoObjects/SOGo/SOGoPermissions.h @@ -70,6 +70,7 @@ extern NSString *SOGoCalendarRole_ComponentModifier; extern NSString *SOGoCalendarRole_ComponentResponder; extern NSString *SOGoPerm_AccessObject; +extern NSString *SOGoPerm_DeleteObject; extern NSString *SOGoPerm_ReadAcls; extern NSString *SOGoPerm_FreeBusyLookup; diff --git a/SoObjects/SOGo/SOGoPermissions.m b/SoObjects/SOGo/SOGoPermissions.m index 4e89a7f45..ada69d997 100644 --- a/SoObjects/SOGo/SOGoPermissions.m +++ b/SoObjects/SOGo/SOGoPermissions.m @@ -72,6 +72,7 @@ NSString *SOGoMailRole_Administrator = @"MailAdministrator"; /* permissions */ NSString *SOGoPerm_AccessObject= @"Access Object"; +NSString *SOGoPerm_DeleteObject= @"Delete Object"; NSString *SOGoPerm_ReadAcls = @"ReadAcls"; /* the equivalent of "read-acl" in the WebDAV acls spec, which is currently missing from SOPE */ diff --git a/UI/Common/UIxFolderActions.m b/UI/Common/UIxFolderActions.m index fd586ab1f..00a7c7b02 100644 --- a/UI/Common/UIxFolderActions.m +++ b/UI/Common/UIxFolderActions.m @@ -168,17 +168,6 @@ return [self _realFolderActivation: NO]; } -- (WOResponse *) deleteFolderAction -{ - WOResponse *response; - - response = (WOResponse *) [[self clientObject] delete]; - if (!response) - response = [self responseWith204]; - - return response; -} - - (WOResponse *) renameFolderAction { WOResponse *response; diff --git a/UI/Common/product.plist b/UI/Common/product.plist index cf718f117..40b9527a2 100644 --- a/UI/Common/product.plist +++ b/UI/Common/product.plist @@ -41,7 +41,7 @@ actionName = "removeUserFromAcls"; }; delete = { - protectedBy = "Delete Objects"; + protectedBy = "Delete Object"; actionClass = "UIxObjectActions"; actionName = "delete"; }; @@ -101,11 +101,6 @@ actionClass = "UIxFolderActions"; actionName = "deactivateFolder"; }; - deleteFolder = { - protectedBy = "Delete Objects"; - actionClass = "UIxFolderActions"; - actionName = "deleteFolder"; - }; renameFolder = { protectedBy = "Change Permissions"; actionClass = "UIxFolderActions"; diff --git a/UI/MainUI/product.plist b/UI/MainUI/product.plist index 5288df5a7..28ff3a3bf 100644 --- a/UI/MainUI/product.plist +++ b/UI/MainUI/product.plist @@ -27,9 +27,20 @@ "Add Folders" = ( "Owner", "FolderCreator" ); "ReadAcls" = ( "Owner" ); "Change Permissions" = ( "Owner" ); - "Delete Objects" = ( "Owner", "ObjectEraser" ); + "Delete Object" = ( "Owner", "ObjectEraser" ); "WebDAV Access" = ( "Owner", "ObjectViewer", "ObjectEditor", "ObjectCreator", "ObjectEraser" ); }; + methods = { + DELETE = { + protectedBy = "Delete Object"; + }; + GET = { + protectedBy = "Access Contents Information"; + }; + PUT = { + protectedBy = "Change Images And Files"; + }; + }; }; SOGoContentObject = { superclass = "SOGoObject"; @@ -40,17 +51,6 @@ "Access Contents Information" = ( "Owner", "ObjectViewer", "ObjectEditor" ); "Change Images And Files" = ( "Owner", "ObjectEditor" ); }; - methods = { - DELETE = { - protectedBy = "Delete Objects"; - }; - GET = { - protectedBy = "Access Contents Information"; - }; - PUT = { - protectedBy = "Change Images And Files"; - }; - }; }; SOGoFolder = { superclass = "SOGoObject"; @@ -60,6 +60,8 @@ "View" = ( "Owner", "ObjectViewer", "ObjectEditor" ); "Access Contents Information" = ( "Owner", "ObjectViewer", "ObjectEditor" ); "WebDAV Access" = ( "Authenticated", "AuthorizedSubscriber" ); + "Delete Object" = ( "Owner" ); + "Delete Objects" = ( "Owner", "ObjectEraser" ); }; }; SOGoParentFolder = { @@ -69,7 +71,6 @@ "Access Contents Information" = ( "Authenticated" ); "WebDAV Access" = ( "Authenticated" ); "Add Folders" = ( "Owner" ); - "Delete Objects" = ( "Owner" ); }; }; SOGoUserFolder = { @@ -83,9 +84,6 @@ }; SOGoGCSFolder = { superclass = "SOGoFolder"; - defaultRoles = { - "Delete Objects" = ( "Owner" ); - }; }; }; diff --git a/UI/WebServerResources/ContactsUI.js b/UI/WebServerResources/ContactsUI.js index 2017da172..21bffe76e 100644 --- a/UI/WebServerResources/ContactsUI.js +++ b/UI/WebServerResources/ContactsUI.js @@ -694,7 +694,7 @@ function deletePersonalAddressBook(folderId) { document.deletePersonalABAjaxRequest.aborted = true; document.deletePersonalABAjaxRequest.abort(); } - var url = ApplicationBaseURL + folderId + "/deleteFolder"; + var url = ApplicationBaseURL + folderId + "/delete"; document.deletePersonalABAjaxRequest = triggerAjaxRequest(url, deletePersonalAddressBookCallback, folderId); diff --git a/UI/WebServerResources/MailerUI.js b/UI/WebServerResources/MailerUI.js index 1e4e1afa5..2475e2191 100644 --- a/UI/WebServerResources/MailerUI.js +++ b/UI/WebServerResources/MailerUI.js @@ -1871,7 +1871,7 @@ function onMenuDeleteFolder(event) { var answer = window.confirm(labels["Do you really want to move this folder into the trash ?"]); if (answer) { var folderID = document.menuTarget.getAttribute("dataname"); - var urlstr = URLForFolderID(folderID) + "/deleteFolder"; + var urlstr = URLForFolderID(folderID) + "/delete"; var errorLabel = labels["The folder could not be deleted."]; triggerAjaxRequest(urlstr, folderOperationCallback, errorLabel); } diff --git a/UI/WebServerResources/SchedulerUI.js b/UI/WebServerResources/SchedulerUI.js index 414b6153d..becf6e26f 100644 --- a/UI/WebServerResources/SchedulerUI.js +++ b/UI/WebServerResources/SchedulerUI.js @@ -1915,7 +1915,7 @@ function deletePersonalCalendar(folderElement) { = labels["Are you sure you want to delete the calendar \"%{0}\"?"].formatted($(folderElement).lastChild.nodeValue.strip()); if (window.confirm(label)) { removeFolderRequestCount++; - var url = ApplicationBaseURL + "/" + folderId + "/deleteFolder"; + var url = ApplicationBaseURL + "/" + folderId + "/delete"; triggerAjaxRequest(url, deletePersonalCalendarCallback, folderId); } }