<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Edit/remove permissions from out-of-the-box actions in Alfresco Forum</title>
    <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89112#M26703</link>
    <description>&lt;P&gt;Thanks! After moving 'move-to.post.json.js' script from share tier to platform tier, variables such as &lt;STRONG&gt;role&lt;/STRONG&gt; and &lt;STRONG&gt;result&lt;/STRONG&gt; became unresolved. Should I import them from somewhere or is there another way I have to follow in order to make them work? Currently I'm getting&lt;/P&gt;&lt;PRE&gt;ReferenceError: "role" is not defined.&lt;/PRE&gt;&lt;P&gt;when I check the logs.&lt;/P&gt;&lt;P&gt;As far as I understand I don't need to create additional .ftl or .xml files for this script because I'm just extending it, right? I also checked the original '&lt;SPAN class="title"&gt;Web Script: org/alfresco/slingshot/documentlibrary/action/move-to.post' and the webscript is defined as below:&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&amp;lt;webscript&amp;gt;
  &amp;lt;shortname&amp;gt;move-to&amp;lt;/shortname&amp;gt;
  &amp;lt;description&amp;gt;Document List Action - Move multiple files&amp;lt;/description&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/site/{site}/{container}/{path}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/site/{site}/{container}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}/{id}/{path}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}/{id}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}&amp;lt;/url&amp;gt;
  &amp;lt;format default="json"&amp;gt;argument&amp;lt;/format&amp;gt;
  &amp;lt;authentication&amp;gt;user&amp;lt;/authentication&amp;gt;
  &amp;lt;transaction&amp;gt;required&amp;lt;/transaction&amp;gt;
  &amp;lt;lifecycle&amp;gt;internal&amp;lt;/lifecycle&amp;gt;
&amp;lt;/webscript&amp;gt;&lt;/PRE&gt;&lt;P&gt;I'm assuming I don't need to make any changes to this? I'd appreciate it if you at least lead me to any documentation about how to handle extending OOTB platform-tier webscripts.&lt;/P&gt;&lt;P&gt;Onur&lt;/P&gt;</description>
    <pubDate>Mon, 19 Oct 2020 06:54:35 GMT</pubDate>
    <dc:creator>onurg</dc:creator>
    <dc:date>2020-10-19T06:54:35Z</dc:date>
    <item>
      <title>Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89106#M26697</link>
      <description>&lt;P&gt;Hi all!&lt;/P&gt;&lt;P&gt;I'm trying to add new user roles and one of the roles should be able to move other users' files but not delete them. My new user role includes permission groups "Collaborator" and "AddChildren":&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;&amp;lt;permissionGroup &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;='MySiteRole' &lt;/SPAN&gt;&lt;SPAN&gt;allowFullControl&lt;/SPAN&gt;&lt;SPAN&gt;='false' &lt;/SPAN&gt;&lt;SPAN&gt;expose&lt;/SPAN&gt;&lt;SPAN&gt;='true'&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    &amp;lt;includePermissionGroup &lt;/SPAN&gt;&lt;SPAN&gt;permissionGroup&lt;/SPAN&gt;&lt;SPAN&gt;='Collaborator' &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;='cm:cmobject' &lt;/SPAN&gt;&lt;SPAN&gt;/&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    &amp;lt;includePermissionGroup &lt;/SPAN&gt;&lt;SPAN&gt;permissionGroup&lt;/SPAN&gt;&lt;SPAN&gt;='AddChildren' &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;='sys:base' &lt;/SPAN&gt;&lt;SPAN&gt;/&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/permissionGroup&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;The code segment above is from "customSitePermissionDefinitions.xml" which I register via beans in "bootstrap-context.xml". All of my new roles are visible in the "share" and they can be assigned to users for sites without any problems.&lt;/P&gt;&lt;P&gt;As far as I know, I need to use share-config-custom.xml in order to make changes to the actions. Per default, the "move" action depends on the "delete" action as you can see&amp;nbsp;&lt;A href="https://github.com/Alfresco/share/blob/master/share/src/main/resources/alfresco/share-documentlibrary-config.xml#L1034" target="_self" rel="nofollow noopener noreferrer"&gt;here.&lt;/A&gt;&amp;nbsp; I want to edit/remove the "permissions" part from the "move" action. This is the code I added to share-config-custom.xml to change that:&lt;/P&gt;&lt;PRE&gt;&amp;lt;config evaluator="string-compare" condition="DocLibActions"&amp;gt;
    &amp;lt;actions&amp;gt;
      &amp;lt;action id="document-move-to" type="javascript" label="actions.document.move-to"&amp;gt;
        &amp;lt;param name="function"&amp;gt;onActionMoveTo&amp;lt;/param&amp;gt;
        &amp;lt;permissions&amp;gt;
          &amp;lt;permission allow="true"&amp;gt;AddChildren&amp;lt;/permission&amp;gt;
        &amp;lt;/permissions&amp;gt;
        &amp;lt;evaluator&amp;gt;evaluator.doclib.action.editableByCurrentUser&amp;lt;/evaluator&amp;gt;
      &amp;lt;/action&amp;gt;
    &amp;lt;/actions&amp;gt;
  &amp;lt;/config&amp;gt;&lt;/PRE&gt;&lt;P&gt;In this case, I want to make the "move" action dependent on "AddChildren", however, I still can't move the files of other users with my new user role. Am I missing something or do I need another approach to achieve my goal?&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;Onur&lt;/P&gt;</description>
      <pubDate>Tue, 06 Oct 2020 13:55:23 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89106#M26697</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-06T13:55:23Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89107#M26698</link>
      <description>&lt;P&gt;At the core move operation is combination of delete and create operation, hence move needs 'Delete' permission. You can't remove it.&lt;/P&gt;
&lt;P&gt;Simplest approach would be that, you should develop your custom role e.g. CustomCollaborator by extending the permissions of Collaborator which has at least Write permissions.&lt;/P&gt;
&lt;P&gt;Update the share config to use: &amp;lt;permission allow="true"&amp;gt;Write&amp;lt;/permission&amp;gt;, so that action gets available to the custom role even if the user doesn't have delete permission.&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;action id="&lt;A href="https://github.com/Alfresco/share/blob/develop/share/src/main/resources/alfresco/share-documentlibrary-config.xml#L1031" target="_blank" rel="noopener nofollow noreferrer"&gt;document-move-to&lt;/A&gt;" type="javascript" label="actions.document.move-to"&amp;gt;
	&amp;lt;param name="function"&amp;gt;onActionMoveTo&amp;lt;/param&amp;gt;
	&amp;lt;permissions&amp;gt;
		&amp;lt;permission allow="true"&amp;gt;Write&amp;lt;/permission&amp;gt;
	&amp;lt;/permissions&amp;gt;
	&amp;lt;evaluator&amp;gt;evaluator.doclib.action.editableByCurrentUser&amp;lt;/evaluator&amp;gt;
&amp;lt;/action&amp;gt;&lt;/PRE&gt;
&lt;P&gt;Write a custom rootscoped object (basically a service available as root scoped object so that it can be used in &lt;A href="http://127.0.0.1:8080/alfresco/s/script/org/alfresco/slingshot/documentlibrary/action/move-to.post" target="_blank" rel="noopener nofollow noreferrer"&gt;move-to.post.json.js&lt;/A&gt; webscript) that will have logic to exeucute move operation as system user.&amp;nbsp;&lt;/P&gt;

&lt;PRE&gt;AuthenticationUtil.setRunAsUserSystem();
try {
	FileInfo fileInfo = null;
	if (null == sourceParentNodeRef) {
		fileInfo = fileFolderService.move(sourceNodeRef, targetParentNodeRef, null);

	} else {
		fileInfo = fileFolderService.moveFrom(sourceNodeRef, sourceParentNodeRef, targetParentNodeRef, null);
	}

	....
	.....
	........
} catch (Exception excp) {
	throw new ScriptException("Can't move selected node", excp);
} &lt;/PRE&gt;
&lt;P&gt;And extend 'org\alfresco\slingshot\documentlibrary\action\move-to.post.json.js' repository webscript where you need to add your custom logic to check the role and if role matches your custom role use custom rootscoped object to call the move.&lt;/P&gt;

&lt;PRE&gt;if(null != role &amp;amp;&amp;amp; (role == "CustomSiteCollaborator" || role == "CustomCollaborator")) {
	var parentNodeRef = null;
	if (parent != null) {
		parentNodeRef = parent.nodeRef;
	}
	// Move the node via custom move rootscoped object
	result.success = customMove.move(fileNode.nodeRef, parentNodeRef, destNode.nodeRef);
} else {
	// Move the node via OOTB move to service
	result.success = fileNode.move(parent, destNode);
}&lt;/PRE&gt;</description>
      <pubDate>Wed, 07 Oct 2020 23:39:11 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89107#M26698</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-10-07T23:39:11Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89108#M26699</link>
      <description>&lt;P&gt;Thanks a lot for the explanation! I have two additional questions:&lt;/P&gt;&lt;P&gt;1. The path "&lt;SPAN&gt;org\alfresco\slingshot\documentlibrary\action" does not exist in my project because it is created with the command&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;mvn archetype:generate -Dfilter=org.alfresco:&lt;/PRE&gt;&lt;P&gt;by choosing the "alfresco-allinone-archetype". It has a share and a repo tier where I need to find or create the correct path locations for the files you mentioned. I'm assuming the correct location for "move-to.post.json.js" is in the share tier "src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/slingshot/documentlibrary/action". Is this correct?&lt;/P&gt;&lt;P&gt;2. Second question is about the custom rootscoped object and its location. I'm not sure about where to put the java class in my project. I'm assuming it's going to be in the share tier again. Would "src/main/java" a correct guess? And Is this how it should look like?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;PRE&gt;import org.alfresco.scripts.ScriptException;
import org.alfresco.service.cmr.model.FileInfo;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.repo.security.authentication.AuthenticationUtil;

public class CustomMoveObject {
    private FileFolderService fileFolderService;
    private AuthenticationUtil authUtil;

    public void move(NodeRef sourceNodeRef, NodeRef sourceParentNodeRef, NodeRef targetParentNodeRef) {
        authUtil.setRunAsUserSystem();
        FileInfo fileInfo = null;
        try {
            if (null == sourceParentNodeRef) {
                fileInfo = fileFolderService.move(sourceNodeRef, targetParentNodeRef, null);

            } else {
                fileInfo = fileFolderService.moveFrom(sourceNodeRef, sourceParentNodeRef, targetParentNodeRef, null);
            }
        } catch (Exception e) {
            throw new ScriptException("Can't move selected node", e);
        }
    }

    public void setFileFolderService(FileFolderService fileFolderService) {
        this.fileFolderService = fileFolderService;
    }

    public void setAuthUtil(AuthenticationUtil authUtil) {
        this.authUtil = authUtil;
    }
}&lt;/PRE&gt;&lt;P&gt;I used your code-segment and&amp;nbsp;&lt;A href="http://spalyukh.blogspot.com/2015/09/custom-root-scope-object-js-api-service.html" target="_self" rel="nofollow noopener noreferrer"&gt;this&lt;/A&gt;&amp;nbsp;as a reference. Is my rootscoped object class supposed to inherit another base class? If yes which one?&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;P&gt;Onur&lt;/P&gt;</description>
      <pubDate>Mon, 12 Oct 2020 12:39:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89108#M26699</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-12T12:39:08Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89109#M26700</link>
      <description>&lt;P&gt;Thanks for the explanation. The project I have is generated with&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;mvn archetype:generate -Dfilter=org.alfresco:&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;by choosing&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;org.alfresco.maven.archetype:alfresco-allinone-archetype&lt;/PRE&gt;&lt;P&gt;so I don't really have the exact paths you mentioned. I have a platform(repo) and a share tier in the project. I put my CustomMoveObject.java class under the platform tier:&lt;/P&gt;&lt;P&gt;src/main/java/my.package.repo/&lt;/P&gt;&lt;P&gt;Then I registered the bean for it in service-context.xml as described&amp;nbsp;&lt;A href="https://docs.alfresco.com/6.1/references/dev-extension-points-javascript-root-objects.html" target="_self" rel="nofollow noopener noreferrer"&gt;here&lt;/A&gt;&amp;nbsp; which is located under the platform tier again:&lt;/P&gt;&lt;P&gt;src/main/resources/alfresco/module/my-platform/context/&lt;/P&gt;&lt;P&gt;And here is the bean:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;&amp;lt;bean &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;="my.package.CustomMoveObject"&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;class&lt;/SPAN&gt;&lt;SPAN&gt;="my.package.repo.CustomMoveObject"&lt;BR /&gt;&lt;/SPAN&gt;      &lt;SPAN&gt;parent&lt;/SPAN&gt;&lt;SPAN&gt;="baseJavaScriptExtension"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    &amp;lt;property &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;="customMove" &lt;/SPAN&gt;&lt;SPAN&gt;value&lt;/SPAN&gt;&lt;SPAN&gt;="custom" &lt;/SPAN&gt;&lt;SPAN&gt;/&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/bean&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;I have the move-to.post.json.js script under share tier:&lt;/P&gt;&lt;P&gt;src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/slingshot/documentlibrary/action/&lt;/P&gt;&lt;P&gt;However, after building I'm getting the following errors:&lt;/P&gt;&lt;PRE&gt;my-platform-platform-ass_1       | 2020-10-13 10:01:50.013 ERROR (org.alfresco.solr.AlfrescoCoreAdminHandler@29a5f4e7_Worker-6) [   ] o.a.s.t.AbstractTracker Tracking failed for AclTracker - alfresco
my-platform-platform-ass_1       | org.alfresco.error.AlfrescoRuntimeException: 09130026 api/solr/aclchangesets return status:404
my-platform-platform-ass_1       |         at org.alfresco.solr.client.SOLRAPIClient.getAclChangeSets(SOLRAPIClient.java:169)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.checkRepoAndIndexConsistency(AclTracker.java:338)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.trackRepository(AclTracker.java:303)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.doTrack(AclTracker.java:95)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.AbstractTracker.track(AbstractTracker.java:215)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.TrackerJob.execute(TrackerJob.java:47)
my-platform-platform-ass_1       |         at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
my-platform-platform-ass_1       |         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)
my-platform-platform-ass_1       | 2020-10-13 10:01:50.025 ERROR (org.alfresco.solr.AlfrescoCoreAdminHandler@29a5f4e7_Worker-21) [   ] o.a.s.t.AbstractTracker Tracking failed for ModelTracker - alfresco
my-platform-platform-ass_1       | org.alfresco.error.AlfrescoRuntimeException: 09130027 alfresco GetModelsDiff return status is 404
my-platform-platform-ass_1       |         at org.alfresco.solr.client.SOLRAPIClient.getModelsDiff(SOLRAPIClient.java:1181)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.ModelTracker.trackModelsImpl(ModelTracker.java:291)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.ModelTracker.trackModels(ModelTracker.java:249)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.ModelTracker.doTrack(ModelTracker.java:209)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.AbstractTracker.track(AbstractTracker.java:215)
my-platform-platform-ass_1       |         at org.alfresco.solr.tracker.TrackerJob.execute(TrackerJob.java:47)
my-platform-platform-ass_1       |         at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
my-platform-platform-ass_1       |         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)&lt;/PRE&gt;&lt;P&gt;Am I forgetting something or is there a problem with the paths I put my files in? I'd really appreciate your input.&lt;/P&gt;&lt;P&gt;Onur&lt;/P&gt;</description>
      <pubDate>Tue, 13 Oct 2020 11:02:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89109#M26700</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-13T11:02:00Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89110#M26701</link>
      <description>&lt;P&gt;&lt;STRONG&gt;Update:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;I realized that my bean registration was wrong. So here is the corrected version:&lt;/P&gt;&lt;PRE&gt;&amp;lt;bean id="my.package.repo.CustomMoveObject"
      class="my.package.repo.CustomMoveObject"
      parent="baseJavaScriptExtension"&amp;gt;
    &amp;lt;property name="extensionName" value="customMove" /&amp;gt;
&amp;lt;/bean&amp;gt;&lt;/PRE&gt;&lt;P&gt;Right now I'm not getting errors in console, however, I still can't move the the files of other users.&lt;/P&gt;&lt;P&gt;Here is my role definition in customSitePermissionDefinitions.xml:&lt;/P&gt;&lt;PRE&gt;&amp;lt;permissionGroup name='CustomSiteCollaborator' allowFullControl='false' expose='true'&amp;gt;
            &amp;lt;includePermissionGroup permissionGroup='Collaborator' type='cm:cmobject' /&amp;gt;
            &amp;lt;includePermissionGroup permissionGroup='Write' type='sys:base' /&amp;gt;
&amp;lt;/permissionGroup&amp;gt;&lt;/PRE&gt;&lt;P&gt;which I register in bootstrap-context.xml like this:&lt;/P&gt;&lt;PRE&gt;&amp;lt;bean id="customSitePermissionDefinitions" parent="permissionModelBootstrap"&amp;gt;
     &amp;lt;property name="model" value="alfresco/module/my-platform/model/customSitePermissionDefinitions.xml"/&amp;gt;
&amp;lt;/bean&amp;gt;&lt;/PRE&gt;&lt;P&gt;Updating share-config-custom.xml like this:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;&amp;lt;action &lt;/SPAN&gt;&lt;SPAN&gt;id&lt;/SPAN&gt;&lt;SPAN&gt;="document-move-to" &lt;/SPAN&gt;&lt;SPAN&gt;type&lt;/SPAN&gt;&lt;SPAN&gt;="javascript" &lt;/SPAN&gt;&lt;SPAN&gt;label&lt;/SPAN&gt;&lt;SPAN&gt;="actions.document.move-to" &lt;/SPAN&gt;&lt;SPAN&gt;icon&lt;/SPAN&gt;&lt;SPAN&gt;="document-move-to"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;param &lt;/SPAN&gt;&lt;SPAN&gt;name&lt;/SPAN&gt;&lt;SPAN&gt;="function"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;onActionMoveTo&lt;SPAN&gt;&amp;lt;/param&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;permissions&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    &amp;lt;permission &lt;/SPAN&gt;&lt;SPAN&gt;allow&lt;/SPAN&gt;&lt;SPAN&gt;="true"&lt;/SPAN&gt;&lt;SPAN&gt;&amp;gt;&lt;/SPAN&gt;Write&lt;SPAN&gt;&amp;lt;/permission&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;/permissions&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;  &amp;lt;evaluator&amp;gt;&lt;/SPAN&gt;evaluator.doclib.action.editableByCurrentUser&lt;SPAN&gt;&amp;lt;/evaluator&amp;gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&amp;lt;/action&amp;gt;&lt;/SPAN&gt;&lt;/PRE&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;CustomMoveObject.java:&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;org.alfresco.repo.processor.BaseProcessorExtension&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;org.alfresco.scripts.ScriptException&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;org.alfresco.service.cmr.model.FileInfo&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;org.alfresco.service.cmr.repository.NodeRef&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;org.alfresco.service.cmr.model.FileFolderService&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;import &lt;/SPAN&gt;org.alfresco.repo.security.authentication.AuthenticationUtil&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;public class &lt;/SPAN&gt;CustomMoveObject &lt;SPAN&gt;extends &lt;/SPAN&gt;BaseProcessorExtension {&lt;BR /&gt;    &lt;SPAN&gt;private &lt;/SPAN&gt;FileFolderService &lt;SPAN&gt;fileFolderService&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    private &lt;/SPAN&gt;FileInfo &lt;SPAN&gt;fileInfo&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    public void &lt;/SPAN&gt;&lt;SPAN&gt;move&lt;/SPAN&gt;(NodeRef sourceNodeRef&lt;SPAN&gt;, &lt;/SPAN&gt;NodeRef sourceParentNodeRef&lt;SPAN&gt;, &lt;/SPAN&gt;NodeRef targetParentNodeRef) {&lt;BR /&gt;        AuthenticationUtil.&lt;SPAN&gt;setRunAsUserSystem&lt;/SPAN&gt;()&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        &lt;SPAN&gt;fileInfo &lt;/SPAN&gt;= &lt;SPAN&gt;null;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;        try &lt;/SPAN&gt;{&lt;BR /&gt;            &lt;SPAN&gt;if &lt;/SPAN&gt;(&lt;SPAN&gt;null &lt;/SPAN&gt;== sourceParentNodeRef) {&lt;BR /&gt;                &lt;SPAN&gt;fileInfo &lt;/SPAN&gt;= &lt;SPAN&gt;fileFolderService&lt;/SPAN&gt;.move(sourceNodeRef&lt;SPAN&gt;, &lt;/SPAN&gt;targetParentNodeRef&lt;SPAN&gt;, null&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;/SPAN&gt;&lt;SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;            } &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;                &lt;SPAN&gt;fileInfo &lt;/SPAN&gt;= &lt;SPAN&gt;fileFolderService&lt;/SPAN&gt;.moveFrom(sourceNodeRef&lt;SPAN&gt;, &lt;/SPAN&gt;sourceParentNodeRef&lt;SPAN&gt;, &lt;/SPAN&gt;targetParentNodeRef&lt;SPAN&gt;, null&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;            }&lt;BR /&gt;        } &lt;SPAN&gt;catch &lt;/SPAN&gt;(Exception e) {&lt;BR /&gt;            &lt;SPAN&gt;throw new &lt;/SPAN&gt;ScriptException(&lt;SPAN&gt;"Can't move selected node"&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;e)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;        }&lt;BR /&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;setFileFolderService&lt;/SPAN&gt;(FileFolderService fileFolderService) {&lt;BR /&gt;        &lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;SPAN&gt;fileFolderService &lt;/SPAN&gt;= fileFolderService&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;    &lt;SPAN&gt;public void &lt;/SPAN&gt;&lt;SPAN&gt;setFileInfo&lt;/SPAN&gt;(FileInfo fileInfo) {&lt;BR /&gt;        &lt;SPAN&gt;this&lt;/SPAN&gt;.&lt;SPAN&gt;fileInfo &lt;/SPAN&gt;= fileInfo&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;&lt;BR /&gt;}&lt;/PRE&gt;&lt;P&gt;&lt;STRONG&gt;move-to.post.json.js:&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;&lt;SPAN&gt;if&lt;/SPAN&gt;(&lt;SPAN&gt;role &lt;/SPAN&gt;!= &lt;SPAN&gt;null &lt;/SPAN&gt;&amp;amp;&amp;amp; &lt;SPAN&gt;role &lt;/SPAN&gt;=== &lt;SPAN&gt;"CustomSiteCollaborator"&lt;/SPAN&gt;) {&lt;BR /&gt;    &lt;SPAN&gt;var &lt;/SPAN&gt;&lt;SPAN&gt;parentNodeRef &lt;/SPAN&gt;= &lt;SPAN&gt;null;&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN&gt;    if &lt;/SPAN&gt;(&lt;SPAN&gt;parent &lt;/SPAN&gt;!= &lt;SPAN&gt;null&lt;/SPAN&gt;) {&lt;BR /&gt;        &lt;SPAN&gt;parentNodeRef &lt;/SPAN&gt;= &lt;SPAN&gt;parent&lt;/SPAN&gt;.&lt;SPAN&gt;nodeRef&lt;/SPAN&gt;&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;    }&lt;BR /&gt;    &lt;SPAN&gt;// Move the node via custom move rootscoped object&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;result&lt;/SPAN&gt;.&lt;SPAN&gt;success &lt;/SPAN&gt;= CustomMoveObject.&lt;SPAN&gt;move&lt;/SPAN&gt;(fileNode.&lt;SPAN&gt;nodeRef&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;&lt;SPAN&gt;parentNodeRef&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;destNode.&lt;SPAN&gt;nodeRef&lt;/SPAN&gt;)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;} &lt;SPAN&gt;else &lt;/SPAN&gt;{&lt;BR /&gt;    &lt;SPAN&gt;// Move the node via OOTB move to service&lt;BR /&gt;&lt;/SPAN&gt;    &lt;SPAN&gt;result&lt;/SPAN&gt;.&lt;SPAN&gt;success &lt;/SPAN&gt;= fileNode.&lt;SPAN&gt;move&lt;/SPAN&gt;(&lt;SPAN&gt;parent&lt;/SPAN&gt;&lt;SPAN&gt;, &lt;/SPAN&gt;destNode)&lt;SPAN&gt;;&lt;BR /&gt;&lt;/SPAN&gt;}&lt;/PRE&gt;&lt;P&gt;&lt;STRONG&gt;The way I test this:&lt;/STRONG&gt;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;Login as admin&lt;/LI&gt;&lt;LI&gt;Create a new site and add a user to this new site with the role CustomSiteCollaborator.&lt;/LI&gt;&lt;LI&gt;As admin, create a folder and upload a file outside of this folder.&lt;/LI&gt;&lt;LI&gt;Log out and log in as the user with CustomSiteCollaborator role.&lt;/LI&gt;&lt;LI&gt;Try to move the uploaded file into the folder.&lt;/LI&gt;&lt;LI&gt;The attempt fails with "&lt;SPAN&gt;The move could not be completed" message.&lt;/SPAN&gt;&lt;/LI&gt;&lt;/OL&gt;</description>
      <pubDate>Tue, 13 Oct 2020 14:59:34 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89110#M26701</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-13T14:59:34Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89111#M26702</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;I have the move-to.post.json.js script under share tier:
&lt;P&gt;src/main/resources/alfresco/web-extension/site-webscripts/org/alfresco/slingshot/documentlibrary/action/&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The 'move-to.post.json.js' is a repository webscript.&lt;/P&gt;
&lt;P&gt;you need to place it here:&lt;/P&gt;
&lt;PRE&gt;&amp;lt;yourPlatformModule&amp;gt;\src\main\resources\alfresco\extension\templates\webscripts\org\alfresco\slingshot\documentlibrary\action&lt;/PRE&gt;
&lt;P&gt;The error you are seeing is related to repository, check if alfresco started correctly. Always check the log from begening to end. Actual error may be in the begening.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Oct 2020 15:03:12 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89111#M26702</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-10-13T15:03:12Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89112#M26703</link>
      <description>&lt;P&gt;Thanks! After moving 'move-to.post.json.js' script from share tier to platform tier, variables such as &lt;STRONG&gt;role&lt;/STRONG&gt; and &lt;STRONG&gt;result&lt;/STRONG&gt; became unresolved. Should I import them from somewhere or is there another way I have to follow in order to make them work? Currently I'm getting&lt;/P&gt;&lt;PRE&gt;ReferenceError: "role" is not defined.&lt;/PRE&gt;&lt;P&gt;when I check the logs.&lt;/P&gt;&lt;P&gt;As far as I understand I don't need to create additional .ftl or .xml files for this script because I'm just extending it, right? I also checked the original '&lt;SPAN class="title"&gt;Web Script: org/alfresco/slingshot/documentlibrary/action/move-to.post' and the webscript is defined as below:&lt;BR /&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE&gt;&amp;lt;webscript&amp;gt;
  &amp;lt;shortname&amp;gt;move-to&amp;lt;/shortname&amp;gt;
  &amp;lt;description&amp;gt;Document List Action - Move multiple files&amp;lt;/description&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/site/{site}/{container}/{path}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/site/{site}/{container}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}/{id}/{path}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}/{id}&amp;lt;/url&amp;gt;
  &amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}&amp;lt;/url&amp;gt;
  &amp;lt;format default="json"&amp;gt;argument&amp;lt;/format&amp;gt;
  &amp;lt;authentication&amp;gt;user&amp;lt;/authentication&amp;gt;
  &amp;lt;transaction&amp;gt;required&amp;lt;/transaction&amp;gt;
  &amp;lt;lifecycle&amp;gt;internal&amp;lt;/lifecycle&amp;gt;
&amp;lt;/webscript&amp;gt;&lt;/PRE&gt;&lt;P&gt;I'm assuming I don't need to make any changes to this? I'd appreciate it if you at least lead me to any documentation about how to handle extending OOTB platform-tier webscripts.&lt;/P&gt;&lt;P&gt;Onur&lt;/P&gt;</description>
      <pubDate>Mon, 19 Oct 2020 06:54:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89112#M26703</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-19T06:54:35Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89113#M26704</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;A href="https://migration33.stage.lithium.com/t5/user/viewprofilepage/user-id/83206"&gt;@onurg&lt;/A&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;Thanks! After moving 'move-to.post.json.js' script from share tier to platform tier, variables such as &lt;STRONG&gt;role&lt;/STRONG&gt; and &lt;STRONG&gt;result&lt;/STRONG&gt; became unresolved. Should I import them from somewhere or is there another way I have to follow in order to make them work? Currently I'm getting&lt;/P&gt;
&lt;PRE&gt;ReferenceError: "role" is not defined.&lt;/PRE&gt;
&lt;/BLOCKQUOTE&gt;
&lt;P&gt;You might be using partial code, the code i shared was a pseudo code for you to take reference. To extend any repository layer webscript, just create the same folder structure in your custom module as given above and copy the ootb js file and add your custom logic in it. No need of desc.xml file, just the js file.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Location:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;yourPlatformModule&amp;gt;\src\main\resources\alfresco\extension\templates\webscripts\org\alfresco\slingshot\documentlibrary\action\move-to.post.json.js&lt;/PRE&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;You can see the files by accessing the URLs as given below:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;host:port&amp;gt;/alfresco/s/description/org/alfresco/slingshot/documentlibrary/action/move-to.post

&amp;lt;host:port&amp;gt;/alfresco/s/script/org/alfresco/slingshot/documentlibrary/action/move-to.post&lt;/PRE&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;A href="http://127.0.0.1:8080/alfresco/s/description/org/alfresco/slingshot/documentlibrary/action/move-to.post" target="_blank" rel="noopener nofollow noreferrer"&gt;This is the webscript definition&lt;/A&gt;:&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;webscript&amp;gt;
&amp;lt;shortname&amp;gt;move-to&amp;lt;/shortname&amp;gt;
&amp;lt;description&amp;gt;Document List Action - Move multiple files&amp;lt;/description&amp;gt;
&amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/site/{site}/{container}/{path}&amp;lt;/url&amp;gt;
&amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/site/{site}/{container}&amp;lt;/url&amp;gt;
&amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}/{id}/{path}&amp;lt;/url&amp;gt;
&amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}/{id}&amp;lt;/url&amp;gt;
&amp;lt;url&amp;gt;/slingshot/doclib/action/move-to/node/{store_type}/{store_id}&amp;lt;/url&amp;gt;
&amp;lt;format default="json"&amp;gt;argument&amp;lt;/format&amp;gt;
&amp;lt;authentication&amp;gt;user&amp;lt;/authentication&amp;gt;
&amp;lt;transaction&amp;gt;required&amp;lt;/transaction&amp;gt;
&amp;lt;lifecycle&amp;gt;internal&amp;lt;/lifecycle&amp;gt;
&amp;lt;/webscript&amp;gt;&lt;/PRE&gt;
&lt;P&gt;&lt;A href="http://127.0.0.1:8080/alfresco/s/script/org/alfresco/slingshot/documentlibrary/action/move-to.post" target="_blank" rel="noopener nofollow noreferrer"&gt;&lt;U&gt;&lt;STRONG&gt;move-to.post.json.js&lt;/STRONG&gt;&lt;/U&gt;&lt;/A&gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;import resource = "classpath:/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/action.lib.js" &amp;gt;

/**
 * Move multiple files action
 * @method POST
 */

/**
 * Entrypoint required by action.lib.js
 *
 * @method runAction
 * @param p_params {object} Object literal containing files array
 * @return {object|null} object representation of action results
 */
function runAction(p_params) {
    var results = [],
    destNode = p_params.destNode,
    files = p_params.files,
    parent = null,
    file,
    fileNode,
    result,
    nodeRef,
    fromSite;

    // Must have array of files
    if (!files || files.length == 0) {
        status.setCode(status.STATUS_BAD_REQUEST, "No files.");
        return;
    }

    for (file in files) {
        nodeRef = files[file];
        result = {
            nodeRef: nodeRef,
            action: "moveFile",
            success: false
        }

        try {
            fileNode = search.findNode(nodeRef);
            if (fileNode == null) {
                result.id = file;
                result.nodeRef = nodeRef;
                result.success = false;
            } else {
                if (p_params.parent &amp;amp;&amp;amp; p_params.parent != null) {
                    parent = search.findNode(p_params.parent);
                }
                result.id = fileNode.name;
                result.type = fileNode.isContainer ? "folder" : "document";

                // Retain the name of the site the node is currently in. Null if it's not in a site.
                fromSite = fileNode.siteShortName;&lt;BR /&gt;
                &lt;FONT color="#FF0000"&gt;&lt;STRONG&gt;//YOUR LOGIC GOES HERE&lt;BR /&gt;&lt;/STRONG&gt;&lt;/FONT&gt;
                // move the node
                result.success = fileNode.move(parent, destNode);

                if (result.success) {
                    // If this was an inter-site move, we'll need to clean up the permissions on the node
                    if ((fromSite) &amp;amp;&amp;amp; (String(fromSite) !== String(fileNode.siteShortName))) {
                        siteService.cleanSitePermissions(fileNode);
                    }
                }
            }
        } catch (e) {
            result.id = file;
            result.nodeRef = nodeRef;
            result.success = false;

            //MNT-7514 Uninformational error message on move when file name conflicts
            result.fileExist = false;

            error = e.toString();
            if (error.indexOf("FileExistsException") != -1) {
                result.fileExist = true;
            }
        }

        results.push(result);
    }
    return results;
}

/* Bootstrap action script */
main();
&lt;/PRE&gt;
&lt;P&gt;Using &lt;STRONG&gt;siteService&lt;/STRONG&gt; get the &lt;STRONG&gt;site&lt;/STRONG&gt; and then to get the role use&amp;nbsp;&lt;STRONG&gt;site.getMembersRole(person.properties.userName)&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Once you have role, you can execute your custom logic.&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Something like:&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;var site = siteService.getSite(fromSite);&lt;BR /&gt;var role = site.getMembersRole(person.properties.userName)&lt;BR /&gt;if(null != role &amp;amp;&amp;amp; (role == "CustomSiteCollaborator" || role == "CustomCollaborator")) {
	var parentNodeRef = null;
	if (parent != null) {
		parentNodeRef = parent.nodeRef;
	}
	// Move the node via custom move rootscoped object
	result.success = customMove.move(fileNode.nodeRef, parentNodeRef, destNode.nodeRef);
} else {
	// Move the node via OOTB move to service
	result.success = fileNode.move(parent, destNode);
}&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;Make sure you are doing testing withing site and out of the site as well and correct the checks accordingly.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Oct 2020 03:44:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89113#M26704</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-10-21T03:44:55Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89114#M26705</link>
      <description>&lt;P&gt;Thanks for the clarification!&lt;/P&gt;&lt;P&gt;I actually tried copying the whole script file and adding my logic before, however, because I received the syntax error I thought it wasn't possible. Apparently, my import was not precise enough as described&amp;nbsp;&lt;A href="https://docs.alfresco.com/6.1/concepts/API-JS-Scripts.html" target="_self" rel="nofollow noopener noreferrer"&gt;here.&lt;/A&gt;&amp;nbsp;Right now I'm not getting any errors in the console when I try to move files with a user of the newly defined role. The moving attempt is however still not successful. It gives me "&lt;SPAN&gt;The move could&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN&gt;not be completed&lt;/SPAN&gt;" in the share UI when I try to move a file.&lt;/P&gt;&lt;P&gt;Any suggestions regarding where I should look for an error? Since the UI error isn't descriptive enough, I tried to change the log levels by editing "dev-log4j.properties" as described in&amp;nbsp;&lt;A href="https://ecmarchitect.com/alfresco-developer-series-tutorials/webscripts/tutorial/tutorial.html" target="_self" rel="nofollow noopener noreferrer"&gt;here:&lt;/A&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;log4j.logger.org.alfresco.repo.jscript.ScriptLogger=DEBUG
log4j.logger.org.alfresco.repo.jscript=DEBUG
log4j.logger.org.alfresco.repo.web.scripts.AlfrescoRhinoScriptDebugger=on&lt;/PRE&gt;&lt;P&gt;After rebuilding the project without performing any actions I got the followings error outputs in the console:&lt;/P&gt;&lt;PRE&gt;my-platform-ass_1       | org.alfresco.error.AlfrescoRuntimeException: 09210001 api/solr/aclchangesets return status:404
my-platform-ass_1       |         at org.alfresco.solr.client.SOLRAPIClient.getAclChangeSets(SOLRAPIClient.java:169)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.checkRepoAndIndexConsistency(AclTracker.java:326)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.trackRepository(AclTracker.java:303)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.doTrack(AclTracker.java:95)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AbstractTracker.track(AbstractTracker.java:215)
my-platform-ass_1       |         at org.alfresco.solr.tracker.TrackerJob.execute(TrackerJob.java:47)
my-platform-ass_1       |         at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
my-platform-ass_1       |         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)
my-platform-ass_1       | 2020-10-21 09:39:30.045 ERROR (org.alfresco.solr.AlfrescoCoreAdminHandler@29a5f4e7_Worker-2) [   ] o.a.s.t.AbstractTracker Tracking failed for AclTracker - alfresco
my-platform-ass_1       | org.alfresco.error.AlfrescoRuntimeException: 09210002 api/solr/aclchangesets return status:404
my-platform-ass_1       |         at org.alfresco.solr.client.SOLRAPIClient.getAclChangeSets(SOLRAPIClient.java:169)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.checkRepoAndIndexConsistency(AclTracker.java:326)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.trackRepository(AclTracker.java:303)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AclTracker.doTrack(AclTracker.java:95)
my-platform-ass_1       |         at org.alfresco.solr.tracker.AbstractTracker.track(AbstractTracker.java:215)
my-platform-ass_1       |         at org.alfresco.solr.tracker.TrackerJob.execute(TrackerJob.java:47)
my-platform-ass_1       |         at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
my-platform-ass_1       |         at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)&lt;/PRE&gt;&lt;P&gt;So, right now I don't know where to look for my error and I'm not sure if these errors have something to do with the move-action problem I'm having. I'd really appreciate your further input.&lt;/P&gt;&lt;P&gt;Onur&lt;/P&gt;</description>
      <pubDate>Wed, 21 Oct 2020 10:22:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89114#M26705</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-21T10:22:21Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89115#M26706</link>
      <description>&lt;P&gt;&lt;FONT&gt;This error has noting to do with your script file,please paste your script here.&lt;/FONT&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 21 Oct 2020 11:40:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89115#M26706</guid>
      <dc:creator>kaynezhang</dc:creator>
      <dc:date>2020-10-21T11:40:57Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89116#M26707</link>
      <description>&lt;P&gt;Here is how it looks like right now:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;move-to.post.json.js&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;&amp;lt;import resource="classpath:/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/action.lib.js"&amp;gt;

/**
 * Move multiple files action
 * @method POST
 */

/**
 * Entrypoint required by action.lib.js
 *
 * @method runAction
 * @param p_params {object} Object literal containing files array
 * @return {object|null} object representation of action results
 */
function runAction(p_params) {
    var results = [],
    destNode = p_params.destNode,
    files = p_params.files,
    parent = null,
    file,
    fileNode,
    result,
    nodeRef,
    fromSite;

    // Must have array of files
    if (!files || files.length == 0) {
        status.setCode(status.STATUS_BAD_REQUEST, "No files.");
        return;
    }

    for (file in files) {
        nodeRef = files[file];
        result = {
            nodeRef: nodeRef,
            action: "moveFile",
            success: false
        }

        try {
            fileNode = search.findNode(nodeRef);
            if (fileNode == null) {
                result.id = file;
                result.nodeRef = nodeRef;
                result.success = false;
            } else {
                if (p_params.parent &amp;amp;&amp;amp; p_params.parent != null) {
                    parent = search.findNode(p_params.parent);
                }
                result.id = fileNode.name;
                result.type = fileNode.isContainer ? "folder" : "document";

                // Retain the name of the site the node is currently in. Null if it's not in a site.
                fromSite = fileNode.siteShortName;

                var site = siteService.getSite(fromSite);
		var role = site.getMembersRole(person.properties.userName);&lt;BR /&gt;
		if (null != role &amp;amp;&amp;amp; role == "CustomSiteCollaborator") {
			var parentNodeRef = null;
			if (parent != null) {
				parentNodeRef = parent.nodeRef;
			}
			// Move the node via custom move rootscoped object
			result.success = customMove.move(fileNode.nodeRef, parentNodeRef, destNode.nodeRef);
		} else {
			// Move the node via OOTB move to service
			result.success = fileNode.move(parent, destNode);
		}

                // move the node
                // result.success = fileNode.move(parent, destNode);

                if (result.success) {
                    // If this was an inter-site move, we'll need to clean up the permissions on the node
                    if ((fromSite) &amp;amp;&amp;amp; (String(fromSite) !== String(fileNode.siteShortName))) {
                        siteService.cleanSitePermissions(fileNode);
                    }
                }
            }
        } catch (e) {
            result.id = file;
            result.nodeRef = nodeRef;
            result.success = false;

            //MNT-7514 Uninformational error message on move when file name conflicts
            result.fileExist = false;

            error = e.toString();
            if (error.indexOf("FileExistsException") != -1) {
                result.fileExist = true;
            }
        }

        results.push(result);
    }
    return results;
}

/* Bootstrap action script */
main();&lt;/PRE&gt;&lt;P&gt;You can also check&amp;nbsp;&lt;A href="https://hub.alfresco.com/t5/alfresco-content-services-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/302481/highlight/true#M21621" target="_self" rel="nofollow noopener noreferrer"&gt;this&lt;/A&gt;&amp;nbsp;post for the other changes I made.&lt;/P&gt;</description>
      <pubDate>Wed, 21 Oct 2020 15:28:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89116#M26707</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-21T15:28:25Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89117#M26708</link>
      <description>&lt;P&gt;Keep some logging to make sure your logic works. Make sure to check from site and out of site moves. These are simple basic checks and debugging steps.&lt;/P&gt;
&lt;P&gt;If you still see any errors, try removing custom permission check (or custom permission check + custom permission definition) and use any OOTB role such as 'SiteCollaborator' to make sure the extended move-to.post.json webscript is working fine.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Enable following log config in log4j.properties:&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;log4j.logger.org.alfresco.repo.jscript.ScriptLogger=DEBUG&lt;/PRE&gt;
&lt;P&gt;&lt;U&gt;Updated code:&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;&amp;lt;import resource = "classpath:/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/action/action.lib.js" &amp;gt;

/**
 * Move multiple files action
 * @method POST
 */

/**
 * Entrypoint required by action.lib.js
 *
 * @method runAction
 * @param p_params {object} Object literal containing files array
 * @return {object|null} object representation of action results
 */
function runAction(p_params) {
    var results = [],
    destNode = p_params.destNode,
    files = p_params.files,
    parent = null,
    file,
    fileNode,
    result,
    nodeRef,
    fromSite;

    // Must have array of files
    if (!files || files.length == 0) {
        status.setCode(status.STATUS_BAD_REQUEST, "No files.");
        return;
    }

    for (file in files) {
        nodeRef = files[file];
        result = {
            nodeRef: nodeRef,
            action: "moveFile",
            success: false
        }

        try {
            fileNode = search.findNode(nodeRef);
            if (fileNode == null) {
                result.id = file;
                result.nodeRef = nodeRef;
                result.success = false;
            } else {
                if (p_params.parent &amp;amp;&amp;amp; p_params.parent != null) {
                    parent = search.findNode(p_params.parent);
                }
                result.id = fileNode.name;
                result.type = fileNode.isContainer ? "folder" : "document";

                // Retain the name of the site the node is currently in. Null if it's not in a site.
                fromSite = fileNode.siteShortName;

                if (fromSite != null) { //If node is in a Site
                    var site = siteService.getSite(fromSite);
                    if (site != null) {
                        var role = site.getMembersRole(person.properties.userName)

                            if (logger.isLoggingEnabled()) {
                                logger.log("UserRole: " + role);
                            }

                            if (null != role &amp;amp;&amp;amp; (role == "CustomSiteCollaborator")) {
                                var parentNodeRef = null;
                                if (parent != null) {
                                    parentNodeRef = parent.nodeRef;
                                }

                                if (logger.isLoggingEnabled()) {
                                    logger.log("Starting custom move for: " + role);
                                }
                                // custom move
                                result.success = customMove.move(fileNode.nodeRef, parentNodeRef, destNode.nodeRef);

                            } else {
                                // Move the node via OOTB move to service
                                if (logger.isLoggingEnabled()) {
                                    logger.log("Starting OOTB move from within a Site..");
                                }
                                result.success = fileNode.move(parent, destNode);
                            }
                    }
                } else { //If node is out of a Site
                    // Move the node via OOTB move to service
                    if (logger.isLoggingEnabled()) {
                        logger.log("Starting OOTB move..");
                    }
                    result.success = fileNode.move(parent, destNode);
                }

                // move the node
                // result.success = fileNode.move(parent, destNode);

                if (result.success) {
					if (logger.isLoggingEnabled()) {
                        logger.log("Cleaning up permissions for inter site move...");
                    }
                    // If this was an inter-site move, we'll need to clean up the permissions on the node
                    if ((fromSite) &amp;amp;&amp;amp; (String(fromSite) !== String(fileNode.siteShortName))) {
                        siteService.cleanSitePermissions(fileNode);
                    }
                }
            }
        } catch (e) {
	    logger.log(e);
			
            result.id = file;
            result.nodeRef = nodeRef;
            result.success = false;

            //MNT-7514 Uninformational error message on move when file name conflicts
            result.fileExist = false;

            error = e.toString();
            if (error.indexOf("FileExistsException") != -1) {
                result.fileExist = true;
            }
        }

	if (logger.isLoggingEnabled()) {
            logger.log("Returning the result.");
        }
        results.push(result);
    }
    return results;
}

/* Bootstrap action script */
main();
&lt;/PRE&gt;</description>
      <pubDate>Thu, 22 Oct 2020 14:52:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89117#M26708</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-10-22T14:52:13Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89118#M26709</link>
      <description>&lt;P&gt;Thanks again for the explanation. Logger helped me a lot and I tested the script by removing custom permissions check and permission definitions. I think the modified move-to.post.json.js is functioning correctly but there is something wrong with my customMove method or with the bean registration.&lt;/P&gt;&lt;P&gt;After checking my XML and java files, I realized that I didn't have a bean reference for 'FileFolderService' in my custom move bean so I added it as below:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;service-context.xml:&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;&amp;lt;beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
          http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"&amp;gt;
    &amp;lt;bean id="at.tuwien.dsdm.alfresco.acs.repo.customMoveObject"
          class="at.tuwien.dsdm.alfresco.acs.repo.CustomMoveObject"
          parent="baseJavaScriptExtension"&amp;gt;
        &amp;lt;property name="extensionName" value="customMove" /&amp;gt;
        &amp;lt;property name="fileFolderService"&amp;gt;
            &amp;lt;ref bean="FileFolderService" /&amp;gt;
        &amp;lt;/property&amp;gt;
    &amp;lt;/bean&amp;gt;

&amp;lt;/beans&amp;gt;&lt;/PRE&gt;&lt;P&gt;After this change, I didn't get any errors regarding moving a file as a user with my new role. However, when I try to move any file I get the screen below:&lt;/P&gt;&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="move-to.png" style="width: 857px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image"&gt;&lt;img src="https://connect.hyland.com/t5/image/serverpage/image-id/865iABD8110582C6DA8C/image-size/large?v=v2&amp;amp;px=999" role="button" title="image" alt="image" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;And it gets stuck here. The dialog window or the text "Files being moved..." doesn't disappear. After refreshing the page I see that the file is moved successfully. Am I still missing any references during my bean registration? Or is something missing in my java class?&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;CustomMoveObject.java:&lt;/STRONG&gt;&lt;/P&gt;&lt;PRE&gt;import org.alfresco.repo.processor.BaseProcessorExtension;
import org.alfresco.scripts.ScriptException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.repo.security.authentication.AuthenticationUtil;

public class CustomMoveObject extends BaseProcessorExtension {
    private FileFolderService fileFolderService;

    public void move(NodeRef sourceNodeRef, NodeRef sourceParentNodeRef, NodeRef targetParentNodeRef) {
        AuthenticationUtil.setRunAsUserSystem();
        try {
            if (null == sourceParentNodeRef) {
                fileFolderService.move(sourceNodeRef, targetParentNodeRef, null);

            } else {
                fileFolderService.moveFrom(sourceNodeRef, sourceParentNodeRef, targetParentNodeRef, null);
            }
        } catch (Exception e) {
            throw new ScriptException("Can't move selected node", e);
        }
    }

    public void setFileFolderService(FileFolderService fileFolderService) {
        this.fileFolderService = fileFolderService;
    }

}&lt;/PRE&gt;&lt;P&gt;Onur&lt;/P&gt;</description>
      <pubDate>Tue, 27 Oct 2020 16:46:53 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89118#M26709</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-27T16:46:53Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89119#M26710</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;A href="https://migration33.stage.lithium.com/t5/user/viewprofilepage/user-id/83206"&gt;@onurg&lt;/A&gt;&amp;nbsp;wrote:
&lt;P&gt;&lt;SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="move-to.png" style="width: 857px;"&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="image"&gt;&lt;img src="https://connect.hyland.com/t5/image/serverpage/image-id/865iABD8110582C6DA8C/image-size/large?v=v2&amp;amp;px=999" role="button" title="image" alt="image" /&gt;&lt;/span&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;And it gets stuck here. The dialog window or the text "Files being moved..." doesn't disappear. After refreshing the page I see that the file is moved successfully. Am I still missing any references during my bean registration? Or is something missing in my java class?&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;CustomMoveObject.java:&lt;/STRONG&gt;&lt;/P&gt;
&lt;PRE&gt;import org.alfresco.repo.processor.BaseProcessorExtension;
import org.alfresco.scripts.ScriptException;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.model.FileFolderService;
import org.alfresco.repo.security.authentication.AuthenticationUtil;

public class CustomMoveObject extends BaseProcessorExtension {
    private FileFolderService fileFolderService;

    public void move(NodeRef sourceNodeRef, NodeRef sourceParentNodeRef, NodeRef targetParentNodeRef) {
        AuthenticationUtil.setRunAsUserSystem();
        try {
            if (null == sourceParentNodeRef) {
                fileFolderService.move(sourceNodeRef, targetParentNodeRef, null);

            } else {
                fileFolderService.moveFrom(sourceNodeRef, sourceParentNodeRef, targetParentNodeRef, null);
            }
        } catch (Exception e) {
            throw new ScriptException("Can't move selected node", e);
        }
    }

    public void setFileFolderService(FileFolderService fileFolderService) {
        this.fileFolderService = fileFolderService;
    }

}&lt;/PRE&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It looks like you are not returning boolean as expected by the webscript in order to complete the whole process. This could be the reason it is getting stuck. If you review the move-to.json.js code, you would see this block:&lt;/P&gt;
&lt;PRE&gt;if (result.success) {
  ................................&lt;BR /&gt;}&lt;/PRE&gt;
&lt;P&gt;Your custom move is returning void. Try returning boolean from custom move script and see if it works.&lt;/P&gt;
&lt;P&gt;Move method should be something like:&lt;/P&gt;
&lt;PRE&gt;public &lt;STRONG&gt;boolean&lt;/STRONG&gt; move(NodeRef sourceNodeRef, NodeRef sourceParentNodeRef, NodeRef targetParentNodeRef) {
    AuthenticationUtil.setRunAsUserSystem();
&lt;STRONG&gt;    boolean hasMoved = false;
&lt;/STRONG&gt;    try {
        &lt;STRONG&gt;FileInfo fileInfo = null;
        if (null == sourceParentNodeRef) {
            fileInfo = fileFolderService.move(sourceNodeRef, targetParentNodeRef, null);
        } else {
            fileInfo = fileFolderService.moveFrom(sourceNodeRef, sourceParentNodeRef, targetParentNodeRef, null);
        }
        hasMoved = nodeService.exists(fileInfo.getNodeRef());&lt;/STRONG&gt;
    } catch (Exception e) {
        throw new ScriptException("Can't move selected node", e);
    }
&lt;STRONG&gt;    return hasMoved;
&lt;/STRONG&gt;}&lt;/PRE&gt;
&lt;P&gt;With help of NodeService check whether node exists after move and then return boolean.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Oct 2020 17:25:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89119#M26710</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-10-27T17:25:21Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89120#M26711</link>
      <description>&lt;P&gt;*facepalm*&lt;/P&gt;&lt;P&gt;That was it. Thanks a lot for all the help. I will update my first post tomorrow with the correct implementations in case someone else needs something similar in the future. Really appreciated.&lt;/P&gt;&lt;P&gt;Onur&lt;/P&gt;&lt;P&gt;Edit: I didn't know you can accept more than one post as a solution. Thanks for marking the other needed post as a solution as well&amp;nbsp;&lt;A href="https://migration33.stage.lithium.com/t5/user/viewprofilepage/user-id/74498"&gt;@abhinavmishra14&lt;/A&gt;!&lt;/P&gt;</description>
      <pubDate>Tue, 27 Oct 2020 18:33:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89120#M26711</guid>
      <dc:creator>onurg</dc:creator>
      <dc:date>2020-10-27T18:33:25Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89121#M26712</link>
      <description>&lt;P&gt;Glad it worked..&amp;nbsp;&lt;A href="https://migration33.stage.lithium.com/t5/user/viewprofilepage/user-id/83206"&gt;@onurg&lt;/A&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 27 Oct 2020 19:03:32 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89121#M26712</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-10-27T19:03:32Z</dc:date>
    </item>
    <item>
      <title>Re: Edit/remove permissions from out-of-the-box actions</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89122#M26713</link>
      <description>&lt;P&gt;yes&amp;nbsp;&lt;A href="https://migration33.stage.lithium.com/t5/user/viewprofilepage/user-id/83206"&gt;@onurg&lt;/A&gt;&amp;nbsp;you can accept it as a combined solution.&lt;/P&gt;</description>
      <pubDate>Thu, 29 Oct 2020 21:30:07 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/edit-remove-permissions-from-out-of-the-box-actions/m-p/89122#M26713</guid>
      <dc:creator>abhinavmishra14</dc:creator>
      <dc:date>2020-10-29T21:30:07Z</dc:date>
    </item>
  </channel>
</rss>

