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

@@ -22,7 +22,13 @@
"docfolder": "${result.docfolder}", "docfolder": "${result.docfolder}",
"recurrence": "${result.recurrence}", "recurrence": "${result.recurrence}",
"isoutlook": "${result.isoutlook?string}" "isoutlook": "${result.isoutlook?string}",
"permissions":
{
"edit": ${result.canEdit?string},
"delete": ${result.canDelete?string}
}
</#if> </#if>
} }
</#escape> </#escape>

View File

@@ -1722,6 +1722,7 @@
<bean id="webscript.org.alfresco.slingshot.calendar.event.get" <bean id="webscript.org.alfresco.slingshot.calendar.event.get"
class="org.alfresco.repo.web.scripts.calendar.CalendarEntryGet" class="org.alfresco.repo.web.scripts.calendar.CalendarEntryGet"
parent="abstractCalendarWebScript"> parent="abstractCalendarWebScript">
<property name="permissionService" ref="PermissionService" />
</bean> </bean>
<!-- Creates a new Calendar Event from the site calendar --> <!-- Creates a new Calendar Event from the site calendar -->

View File

@@ -26,6 +26,8 @@ import java.util.Map;
import org.alfresco.service.cmr.calendar.CalendarEntry; import org.alfresco.service.cmr.calendar.CalendarEntry;
import org.alfresco.service.cmr.calendar.CalendarEntryDTO; import org.alfresco.service.cmr.calendar.CalendarEntryDTO;
import org.alfresco.service.cmr.calendar.CalendarRecurrenceHelper; 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.alfresco.service.cmr.site.SiteInfo;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
@@ -44,6 +46,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
public class CalendarEntryGet extends AbstractCalendarWebScript public class CalendarEntryGet extends AbstractCalendarWebScript
{ {
private static Log logger = LogFactory.getLog(CalendarEntryGet.class); private static Log logger = LogFactory.getLog(CalendarEntryGet.class);
private PermissionService permissionService;
@Override @Override
protected Map<String, Object> executeImpl(SiteInfo site, String eventName, 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 // All done
Map<String, Object> model = new HashMap<String, Object>(); Map<String, Object> model = new HashMap<String, Object>();
model.put("result", result); model.put("result", result);
@@ -208,4 +217,9 @@ public class CalendarEntryGet extends AbstractCalendarWebScript
// All done // All done
return text.toString(); 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("6/29/2011", entry.getJSONObject("endAt").get("legacyDate"));
assertEquals("13:00", entry.getJSONObject("endAt").get("legacyTime")); 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 // Edit
entry = updateEntry(name, EVENT_TITLE_ONE, "More Where", "More Thing", false, Status.STATUS_OK); entry = updateEntry(name, EVENT_TITLE_ONE, "More Where", "More Thing", false, Status.STATUS_OK);