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:
Nick Burch
2011-11-21 18:08:45 +00:00
parent 322731b1a2
commit 886a83ac30
4 changed files with 28 additions and 1 deletions

View File

@@ -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;
}
}

View File

@@ -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);