mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
ALF-8485 When fetching details on a Calendar Entry, include information on edit and delete permissions for the entry
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@32160 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -26,6 +26,8 @@ import java.util.Map;
|
||||
import org.alfresco.service.cmr.calendar.CalendarEntry;
|
||||
import org.alfresco.service.cmr.calendar.CalendarEntryDTO;
|
||||
import org.alfresco.service.cmr.calendar.CalendarRecurrenceHelper;
|
||||
import org.alfresco.service.cmr.security.AccessStatus;
|
||||
import org.alfresco.service.cmr.security.PermissionService;
|
||||
import org.alfresco.service.cmr.site.SiteInfo;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
@@ -44,6 +46,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
public class CalendarEntryGet extends AbstractCalendarWebScript
|
||||
{
|
||||
private static Log logger = LogFactory.getLog(CalendarEntryGet.class);
|
||||
private PermissionService permissionService;
|
||||
|
||||
@Override
|
||||
protected Map<String, Object> executeImpl(SiteInfo site, String eventName,
|
||||
@@ -81,6 +84,12 @@ public class CalendarEntryGet extends AbstractCalendarWebScript
|
||||
}
|
||||
}
|
||||
|
||||
// Check the permissions the user has on the entry
|
||||
AccessStatus canEdit = permissionService.hasPermission(entry.getNodeRef(), PermissionService.WRITE);
|
||||
AccessStatus canDelete = permissionService.hasPermission(entry.getNodeRef(), PermissionService.DELETE);
|
||||
result.put("canEdit", (canEdit == AccessStatus.ALLOWED));
|
||||
result.put("canDelete", (canDelete == AccessStatus.ALLOWED));
|
||||
|
||||
// All done
|
||||
Map<String, Object> model = new HashMap<String, Object>();
|
||||
model.put("result", result);
|
||||
@@ -208,4 +217,9 @@ public class CalendarEntryGet extends AbstractCalendarWebScript
|
||||
// All done
|
||||
return text.toString();
|
||||
}
|
||||
|
||||
public void setPermissionService(PermissionService permissionService)
|
||||
{
|
||||
this.permissionService = permissionService;
|
||||
}
|
||||
}
|
||||
|
@@ -413,6 +413,12 @@ public class CalendarRestApiTest extends BaseWebScriptTest
|
||||
assertEquals("6/29/2011", entry.getJSONObject("endAt").get("legacyDate"));
|
||||
assertEquals("13:00", entry.getJSONObject("endAt").get("legacyTime"));
|
||||
|
||||
// Check the permissions on it
|
||||
assertEquals(true, entry.has("permissions"));
|
||||
JSONObject permissions = entry.getJSONObject("permissions");
|
||||
assertEquals(true, permissions.getBoolean("edit"));
|
||||
assertEquals(true, permissions.getBoolean("delete"));
|
||||
|
||||
|
||||
// Edit
|
||||
entry = updateEntry(name, EVENT_TITLE_ONE, "More Where", "More Thing", false, Status.STATUS_OK);
|
||||
|
Reference in New Issue
Block a user