Skip to content

Instantly share code, notes, and snippets.

@CorneAussems
Created November 22, 2017 23:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save CorneAussems/3f7da594c7e3d00f8de7175ed30a927a to your computer and use it in GitHub Desktop.
Save CorneAussems/3f7da594c7e3d00f8de7175ed30a927a to your computer and use it in GitHub Desktop.
Groovy Document and Media File: remove Guest and set SiteMember permission on all documents
import java.util.ArrayList
import java.util.Iterator
import java.util.List
import java.util.ListIterator
import com.liferay.portal.service.ResourcePermissionLocalServiceUtil
import com.liferay.portal.service.RoleLocalServiceUtil
import com.liferay.portal.model.ResourceConstants
import com.liferay.portal.model.ResourcePermission
import com.liferay.portal.model.Role
import com.liferay.portal.model.RoleConstants
import com.liferay.portal.service.ServiceContext;
import com.liferay.portlet.documentlibrary.model.*;
import com.liferay.portlet.documentlibrary.service.*;
import com.liferay.portlet.documentlibrary.service.persistence.*;
import com.liferay.portal.security.permission.ActionKeys
try {
// Replace companyId and fileEntryId
long companyId = 10201
long groupId = 10227
start = -1
end = -1
Role guestRole = RoleLocalServiceUtil.getRole(companyId, RoleConstants.GUEST)
Role siteMemberRole = RoleLocalServiceUtil.getRole(companyId, RoleConstants.SITE_MEMBER)
String resourceName = DLFileEntry.class.getName()
def keys = new String[1]
keys[0] = ActionKeys.VIEW
def files = DLFileEntryLocalServiceUtil.getDLFileEntries(start, end)
println('>> files found:'+ files.size())
for( i=0; i<files.size();i++){
def file = files[i]
if(file.getGroupId()==groupId){
String fileEntryId = file.getFileEntryId()
println('file,'+file)
if (ResourcePermissionLocalServiceUtil.hasResourcePermission(companyId, resourceName, ResourceConstants.SCOPE_INDIVIDUAL, fileEntryId, guestRole.getRoleId(), ActionKeys.VIEW)) {
ResourcePermission permission = ResourcePermissionLocalServiceUtil.getResourcePermission( companyId, DLFileEntry.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL, fileEntryId, guestRole.getRoleId());
ResourcePermissionLocalServiceUtil.deleteResourcePermissions(permission);
out.print(",guest,"+permission);
}
if (!ResourcePermissionLocalServiceUtil.hasResourcePermission(companyId, resourceName, ResourceConstants.SCOPE_INDIVIDUAL, fileEntryId, siteMemberRole.getRoleId(), ActionKeys.VIEW)) {
ResourcePermissionLocalServiceUtil.setResourcePermissions(companyId, DLFileEntry.class.getName(), ResourceConstants.SCOPE_INDIVIDUAL, fileEntryId, siteMemberRole.getRoleId(), keys)
out.print(",member");
}
out.println(" ");
}
}
}catch (e) {
out.println("***** Error = " + e.getMessage());
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment