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; } }
private static Optional<String> createGhost(String ancestor, Optional<String> parent, ModelService model, IndexService index, String jobId) throws NotFoundException, GenericException, RequestNotValidException, AlreadyExistsException, AuthorizationDeniedException { String username = getJobUsername(jobId, index); 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))); boolean isGhost = true; AIP ghostAIP = model.createAIP(parent.orElse(null), "", permissions, Arrays.asList(ancestor), jobId, true, username, isGhost); return Optional.ofNullable(ghostAIP.getId()); }
public static Permissions getPermissions(SolrDocument doc) { Permissions permissions = new Permissions(); EnumMap<PermissionType, Set<String>> userPermissions = new EnumMap<>(PermissionType.class); for (PermissionType type : PermissionType.values()) { String key = RodaConstants.INDEX_PERMISSION_USERS_PREFIX + type; Set<String> users = new HashSet<>(); users.addAll(objectToListString(doc.get(key))); userPermissions.put(type, users); } EnumMap<PermissionType, Set<String>> groupPermissions = new EnumMap<>(PermissionType.class); for (PermissionType type : PermissionType.values()) { String key = RodaConstants.INDEX_PERMISSION_GROUPS_PREFIX + type; Set<String> groups = new HashSet<>(); groups.addAll(objectToListString(doc.get(key))); groupPermissions.put(type, groups); } permissions.setUsers(userPermissions); permissions.setGroups(groupPermissions); return permissions; }
public static AIP earkSIPToAIP(SIP sip, String username, Permissions fullPermissions, ModelService model, List<String> ingestSIPIds, String ingestJobId, Optional<String> parentId, String ingestSIPUUID, Plugin<?> plugin) throws RequestNotValidException, NotFoundException, GenericException, AlreadyExistsException, AuthorizationDeniedException, ValidationException, IOException, LockingException { AIPState state = AIPState.INGEST_PROCESSING; Permissions permissions = new Permissions(); boolean notify = false; String aipType = IngestHelper.getType(sip); AIP aip = model.createAIP(state, parentId.orElse(null), aipType, permissions, ingestSIPUUID, ingestSIPIds, ingestJobId, notify, username); PluginHelper.acquireObjectLock(aip, plugin); // process IP information processIPInformation(model, sip, aip.getId(), notify, false); // process IPRepresentation information for (IPRepresentation representation : sip.getRepresentations()) { processIPRepresentationInformation(model, representation, aip.getId(), notify, false, username, null); } model.notifyAipCreated(aip.getId()); AIP createdAIP = model.retrieveAIP(aip.getId()); // Set Permissions Permissions readPermissions = PermissionUtils.grantReadPermissionToUserGroup(model, createdAIP, aip.getPermissions()); Permissions finalPermissions = PermissionUtils.grantAllPermissions(username, readPermissions, fullPermissions); createdAIP.setPermissions(finalPermissions); model.updateAIP(createdAIP, username); return model.retrieveAIP(aip.getId()); }
doc.addField(RodaConstants.INDEX_STATE, SolrUtils.formatEnum(AIPState.ACTIVE)); Permissions permissions = new Permissions(); List<String> users = RodaCoreFactory.getRodaConfigurationAsList("core.permission.repository_events.user"); List<String> groups = RodaCoreFactory.getRodaConfigurationAsList("core.permission.repository_events.group");