@Override public void onCreateUser(UserAdmin userAdmin, CreateUserArgs createUserArgs, User user, User authUser) { String privilegesString = createUserArgs.privilegeRepositoryArguments.get(CLI_PARAMETER_PRIVILEGES); ImmutableSet<String> newPrivileges; if (privilegesString == null) { newPrivileges = privilegeRepository.getDefaultPrivileges(); } else { String[] privileges = privilegesString.split(","); newPrivileges = ImmutableSet.copyOf(privileges); } privilegeRepository.setPrivileges(user, newPrivileges, authUser); }
private int cliRunSetPrivileges(UserAdmin userAdmin, SetPrivilegesCliArguments args, User authUser) { Set<String> privileges = new HashSet<>(); if (args.privileges != null && args.privileges.length() > 0) { privileges.addAll(Arrays.asList(StringUtils.split(args.privileges, SEPARATOR_CHAR))); } User user = userAdmin.findUser(args); privilegeRepository.setPrivileges(user, privileges, authUser); userAdmin.printUser(user); return 0; }
protected void setPrivileges(User user, Set<String> privileges) { ((UserPropertyPrivilegeRepository) getPrivilegeRepository()).setPrivileges(user, privileges, getUserRepository().getSystemUser()); }
@Test public void testPublishingNewEdgeAndRelationshipWithoutOntologyPublishPrivilege() { UserPropertyPrivilegeRepository privilegeRepository = (UserPropertyPrivilegeRepository) getPrivilegeRepository(); privilegeRepository.setPrivileges(user, Sets.newHashSet(Privilege.ONTOLOGY_ADD), getUserRepository().getSystemUser()); String newRelationshipIri = "new-relationship"; getOntologyRepository().getOrCreateRelationshipType(null, Collections.singleton(thingConcept), Collections.singleton(thingConcept), newRelationshipIri, "Junit Relationship", true, user, workspace.getWorkspaceId()); getOntologyRepository().clearCache(); doTestPublishEdgeAdd(newRelationshipIri, "Unable to publish relationship Junit Relationship", SandboxStatus.PRIVATE); }
@Test public void testPublishingNewEdgeAndRelationship() { UserPropertyPrivilegeRepository privilegeRepository = (UserPropertyPrivilegeRepository) getPrivilegeRepository(); privilegeRepository.setPrivileges(user, Sets.newHashSet(Privilege.ONTOLOGY_ADD, Privilege.ONTOLOGY_PUBLISH), getUserRepository().getSystemUser()); String newRelationshipIri = "new-relationship"; getOntologyRepository().getOrCreateRelationshipType(null, Collections.singleton(thingConcept), Collections.singleton(thingConcept), newRelationshipIri, "Junit Relationship", true, user, workspace.getWorkspaceId()); getOntologyRepository().clearCache(); doTestPublishEdgeAdd(newRelationshipIri, null, SandboxStatus.PUBLIC); }
@Test public void testPublishingNewPropertyValueAndPropertyTypeWithoutOntologyPublishPrivilege() { UserPropertyPrivilegeRepository privilegeRepository = (UserPropertyPrivilegeRepository) getPrivilegeRepository(); privilegeRepository.setPrivileges(user, Sets.newHashSet(Privilege.ONTOLOGY_ADD), getUserRepository().getSystemUser()); String newPropertyIri = "new-property"; OntologyPropertyDefinition propertyDefinition = new OntologyPropertyDefinition(Collections.singletonList(thingConcept), newPropertyIri, "New Property", PropertyType.STRING); propertyDefinition.setTextIndexHints(Collections.singleton(TextIndexHint.EXACT_MATCH)); propertyDefinition.setUserVisible(true); getOntologyRepository().getOrCreateProperty(propertyDefinition, user, workspace.getWorkspaceId()); getOntologyRepository().clearCache(); doTestPublishPropertyAdd(newPropertyIri, "Unable to publish relationship New Property", SandboxStatus.PRIVATE); }
@Test public void testPublishingNewPropertyValueAndPropertyType() { UserPropertyPrivilegeRepository privilegeRepository = (UserPropertyPrivilegeRepository) getPrivilegeRepository(); privilegeRepository.setPrivileges(user, Sets.newHashSet(Privilege.ONTOLOGY_ADD, Privilege.ONTOLOGY_PUBLISH), getUserRepository().getSystemUser()); String newPropertyIri = "new-property"; OntologyPropertyDefinition propertyDefinition = new OntologyPropertyDefinition(Collections.singletonList(thingConcept), newPropertyIri, "New Property", PropertyType.STRING); propertyDefinition.setTextIndexHints(Collections.singleton(TextIndexHint.EXACT_MATCH)); propertyDefinition.setUserVisible(true); getOntologyRepository().getOrCreateProperty(propertyDefinition, user, workspace.getWorkspaceId()); getOntologyRepository().clearCache(); doTestPublishPropertyAdd(newPropertyIri, null, SandboxStatus.PUBLIC); }
@Handle public JSONObject handle( @Required(name = "user-name") String userName, @Required(name = "privileges") String privilegesParameter, User authUser ) throws Exception { Set<String> privileges = Privilege.stringToPrivileges(privilegesParameter); User user = userRepository.findByUsername(userName); if (user == null) { throw new VisalloResourceNotFoundException("Could not find user: " + userName); } privilegeRepository.setPrivileges(user, privileges, authUser); return userRepository.toJsonWithAuths(user); } }