public static Permissions getIngestPermissions(String username) { Permissions permissions = new Permissions(); permissions.setUserPermissions(username, new HashSet<>(Arrays.asList(Permissions.PermissionType.CREATE, Permissions.PermissionType.READ, Permissions.PermissionType.UPDATE, Permissions.PermissionType.DELETE, Permissions.PermissionType.GRANT))); permissions.setGroupPermissions(RodaConstants.ADMINISTRATORS, new HashSet<>(Arrays.asList(Permissions.PermissionType.CREATE, Permissions.PermissionType.READ, Permissions.PermissionType.UPDATE, Permissions.PermissionType.DELETE, Permissions.PermissionType.GRANT))); return permissions; } }
public static Permissions grantReadPermissionToUserGroup(ModelService model, AIP aip, Permissions permissions) throws RequestNotValidException, GenericException, NotFoundException, AuthorizationDeniedException, IOException { List<DescriptiveMetadata> descriptiveMetadataList = aip.getDescriptiveMetadata(); Set<Permissions.PermissionType> readPermissionToUserGroup = new HashSet<>(); for (DescriptiveMetadata descriptiveMetadata : descriptiveMetadataList) { Binary descriptiveMetadataBinary = model.retrieveDescriptiveMetadataBinary(aip.getId(), descriptiveMetadata.getId()); try(InputStream createInputStream = descriptiveMetadataBinary.getContent().createInputStream()) { String xpath = RodaCoreFactory.getRodaConfigurationAsString("core", "permissions", "xpath"); String freeAccessTerm = RodaCoreFactory.getRodaConfigurationAsString("core", "permissions", "freeaccess"); if (StringUtils.isNotBlank(xpath) && StringUtils.isNotBlank(freeAccessTerm)) { String useRestrict = XMLUtility.getString(createInputStream, xpath); if (useRestrict.equals(freeAccessTerm)) { readPermissionToUserGroup.add(Permissions.PermissionType.READ); permissions.setGroupPermissions(RodaConstants.OBJECT_PERMISSIONS_USER_GROUP, readPermissionToUserGroup); } } } } return permissions; }
public static Permissions grantAllPermissions(String username, Permissions permissions, Permissions parentPermissions) throws GenericException, NotFoundException, RequestNotValidException, AuthorizationDeniedException { Permissions grantedPermissions = grantPermissionToUser(username, permissions); for (String name : parentPermissions.getUsernames()) { grantedPermissions.setUserPermissions(name, parentPermissions.getUserPermissions(name)); } for (String name : parentPermissions.getGroupnames()) { grantedPermissions.setGroupPermissions(name, parentPermissions.getGroupPermissions(name)); } return grantedPermissions; }
private Permissions addParentPermissions(Permissions permissions, String parentId) throws RequestNotValidException, NotFoundException, GenericException, AuthorizationDeniedException { if (parentId != null) { AIP parentAIP = this.retrieveAIP(parentId); Set<String> parentGroupnames = parentAIP.getPermissions().getGroupnames(); Set<String> parentUsernames = parentAIP.getPermissions().getUsernames(); Set<String> groupnames = permissions.getGroupnames(); Set<String> usernames = permissions.getUsernames(); for (String user : parentUsernames) { if (!usernames.contains(user)) { permissions.setUserPermissions(user, parentAIP.getPermissions().getUserPermissions(user)); } } for (String group : parentGroupnames) { if (!groupnames.contains(group)) { permissions.setGroupPermissions(group, parentAIP.getPermissions().getGroupPermissions(group)); } } } return permissions; }
permissions.setGroupPermissions(group, Sets.newHashSet(PermissionType.READ));