mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-21 18:09:20 +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:
@@ -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>
|
||||||
|
@@ -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 -->
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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);
|
||||||
|
Reference in New Issue
Block a user