Skip to content

Instantly share code, notes, and snippets.

@cmaggiulli
Created July 22, 2018 22:03
Show Gist options
  • Save cmaggiulli/9a4a6bb751799a35094ee9ac922e57c3 to your computer and use it in GitHub Desktop.
Save cmaggiulli/9a4a6bb751799a35094ee9ac922e57c3 to your computer and use it in GitHub Desktop.
Example of programmatic permissions in Liferay 6.2
public void setFilePermissions(DLFileEntry fileEntry) throws Exception{
ResourceAction resourceAction = null;
try {
ArrayList<String> actions = actions();
for(String action : actions) {
resourceAction = ResourceActionLocalServiceUtil.getResourceAction(DLFileEntry.class.getName(), action);
setFilePermissions(fileEntry, resourceAction);
}
} catch (Exception e) {
System.out.println("ResourceActionPerms");
//do nothing
}
}
public void setFilePermissions(DLFileEntry fileEntry, ResourceAction resourceAction) throws Exception{
ResourcePermission resourcePermission = null;
final Role guest = RoleLocalServiceUtil.getRole(fileEntry.getCompanyId(), RoleConstants.GUEST);
try {
ResourcePermissionLocalServiceUtil.addResourcePermissions(resourceAction.getName(), String.valueOf(guest.getRoleId()), ResourceConstants.SCOPE_INDIVIDUAL, resourceAction.getBitwiseValue());
} catch (Exception e) {
System.out.println("NoSuchResourcePermissionException");
/*
resourcePermission = ResourcePermissionLocalServiceUtil.createResourcePermission(CounterLocalServiceUtil.increment());
resourcePermission.setCompanyId(fileEntry.getCompanyId());
resourcePermission.setName(DLFileEntry.class.getName());
resourcePermission.setScope(ResourceConstants.SCOPE_INDIVIDUAL);
resourcePermission.setPrimKey(String.valueOf(fileEntry.getPrimaryKey()));
resourcePermission.setRoleId(guest.getRoleId());
resourcePermission.setActionIds(resourceAction.getBitwiseValue());// (ActionKeys.VIEW);
ResourcePermissionLocalServiceUtil.addResourcePermission(resourcePermission);
*/
}
}
public ArrayList<String> actions() {
ArrayList<String> list = new ArrayList<String>();
try {
for (Field field : ActionKeys.class.getDeclaredFields()) {
list.add((String)field.get(null));
}
} catch (Exception e) {
System.out.println("ReflectionPerms");
}
return list;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment