From d37068b2fb086935bfa14b5434f4ec852df6eb6d Mon Sep 17 00:00:00 2001 From: Tuna Aksoy Date: Mon, 12 Jan 2015 20:13:45 +0000 Subject: [PATCH] RM-1822 (Non-system-admin user not allowed to read inheritable permissions) git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/modules/recordsmanagement/HEAD@93334 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../rm-permissions.get.desc.xml | 9 ++++ .../documentlibrary/rm-permissions.get.js | 42 +++++++++++++++++++ .../rm-permissions.get.json.ftl | 1 + 3 files changed, 52 insertions(+) create mode 100644 rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.desc.xml create mode 100644 rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.js create mode 100644 rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.json.ftl diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.desc.xml b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.desc.xml new file mode 100644 index 0000000000..c7d8a558de --- /dev/null +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.desc.xml @@ -0,0 +1,9 @@ + + permissions + Document List Component - permissions data webscript + /slingshot/doclib/rm/permissions/{store_type}/{store_id}/{id} + argument + user + required + internal + \ No newline at end of file diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.js b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.js new file mode 100644 index 0000000000..815c3c7282 --- /dev/null +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.js @@ -0,0 +1,42 @@ + + +function getRmPermissions() +{ + /** + * nodeRef input: store_type, store_id and id + */ + var storeType = url.templateArgs.store_type, + storeId = url.templateArgs.store_id, + id = url.templateArgs.id, + nodeRef = storeType + "://" + storeId + "/" + id, + node = ParseArgs.resolveNode(nodeRef); + + if (node == null) + { + node = search.findNode(nodeRef); + if (node === null) + { + status.setCode(status.STATUS_NOT_FOUND, "Not a valid nodeRef: '" + nodeRef + "'"); + return null; + } + } + + var permissionData = model.data, + settable = node.getSettablePermissions(), + canReadInherited = true; + + if (node.parent.hasPermission("ReadRecords")) + { + permissionData["inherited"] = parsePermissions(node.parent.getPermissions(), settable); + } + else + { + canReadInherited = false; + } + + permissionData["canReadInherited"] = canReadInherited; + + model.data = permissionData; +} + +getRmPermissions(); \ No newline at end of file diff --git a/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.json.ftl b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.json.ftl new file mode 100644 index 0000000000..ba9755faf0 --- /dev/null +++ b/rm-server/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/rm-permissions.get.json.ftl @@ -0,0 +1 @@ +<#include "permissions.get.json.ftl"> \ No newline at end of file