/** * Get the role names * * @return */ public Collection<String> getRoleNames() { Set<String> roleNames = new HashSet<String>(); for (Role userRole : getRoles()) { roleNames.add(userRole.getName()); } return Collections.unmodifiableCollection(roleNames); }
@Override protected void doPopulateIdentityInstance(Object toIdentity, Role fromRole, JPAIdentityStore store) { store.setModelProperty(toIdentity, PROPERTY_IDENTITY_NAME, fromRole.getName(), true); }
@Override public boolean equals(Object obj) { if (obj == null) { return false; } if (!(obj instanceof Role)) { return false; } Role other = (Role) obj; // FIXME The Partition should also be taken into account. return other.getName() != null && this.getName() != null && other.getName().equals(this.getName()); } }
private boolean contains(List<Role> result, String roleId) { for (Role resultRole : result) { if (resultRole.getName().equals(roleId)) { return true; } } return false; }
private boolean contains(List<Role> result, String roleId) { for (Role resultRole : result) { if (resultRole.getName().equals(roleId)) { return true; } } return false; } }
private boolean contains(List<Role> result, String roleId) { for (Role resultRole : result) { if (resultRole.getName().equals(roleId)) { return true; } } return false; }
private Role removeRole(Role role) { getConfig().getRoles().remove(role.getName()); for (GroupRole membership : new ArrayList<GroupRole>(getConfig().getMemberships())) { Role roleMembership = membership.getRole(); if (roleMembership != null && roleMembership.getName().equals(role.getName())) { getConfig().getMemberships().remove(membership); } } flushRoles(); flushMemberships(); return role; }
private Role updateRole(Role updatedRole, Role storedRole) { if (storedRole != updatedRole) { updateCommonProperties(updatedRole, storedRole); } getConfig().getRoles().put(storedRole.getName(), storedRole); flushRoles(); return storedRole; }
/** * <p> * Checks if the user has the specified role. * </p> * * @param role * @return */ public boolean hasRole(String role) { if (!isAuthenticated()) { throw PicketBoxMessages.MESSAGES.userNotAuthenticated(); } for (Role userRole : getRoles()) { if (role.equals(userRole.getName())) { return true; } } return false; }
/** * <p> * Checks if the given {@link GroupRole} instance has the provide {@link Group} and {@link Role} combination. * </p> * * @param membership * @param group * @param role * @return */ private boolean hasGroupRole(GroupRole membership, Group group, Role role) { boolean match = false; if (role != null && group != null) { match = membership.getRole() != null && role.getName().equals(membership.getRole().getName()) && membership.getGroup() != null && group.getName().equals(membership.getGroup().getName()); } else if (group != null) { match = membership.getGroup() != null && group.getName().equals(membership.getGroup().getName()); } else if (role != null) { match = membership.getRole() != null && role.getName().equals(membership.getRole().getName()); } return match; }
private Role addRole(Role role) { SimpleRole fileRole = new SimpleRole(role.getName()); updateCommonProperties(role, fileRole); getConfig().getRoles().put(fileRole.getName(), fileRole); flushRoles(); return fileRole; }
/** * <p> * Resolves the value of the identifier for the given {@link IdentityType}. * </p> * * @param identityType * @return */ private String getIdentifierValue(IdentityType identityType) { String value = null; if (IDMUtil.isUserType(identityType.getClass())) { value = ((User) identityType).getId(); } else if (IDMUtil.isAgentType(identityType.getClass())) { value = ((Agent) identityType).getId(); } else if (IDMUtil.isRoleType(identityType.getClass())) { value = ((Role) identityType).getName(); } else if (IDMUtil.isGroupType(identityType.getClass())) { value = ((Group) identityType).getName(); } else if (IDMUtil.isRelationshipType(identityType.getClass())) { value = ((Relationship) identityType).getName(); } return value; }
/** * <p> * Creates a new {@link Role} instance using the API. This method also checks if the user was properly created by retrieving * his information from the store. * </p> * * @throws Exception */ @Test public void testCreate() throws Exception { Role newRoleInstance = loadOrCreateRole("someRole", true); IdentityManager identityManager = getIdentityManager(); Role storedRoleInstance = identityManager.getRole(newRoleInstance.getName()); assertNotNull(storedRoleInstance); assertEquals(newRoleInstance.getKey(), storedRoleInstance.getKey()); assertEquals(newRoleInstance.getName(), storedRoleInstance.getName()); }
@Override public GroupRole getMembership(IdentityType member, Group group, Role role) { GroupRole groupRole = null; List<?> resultList = Collections.emptyList(); DefaultIdentityQuery<IdentityType> defaultIdentityQuery = new DefaultIdentityQuery(member.getClass(), this); defaultIdentityQuery.setParameter(IdentityType.HAS_GROUP_ROLE, new SimpleGroupRole(member, role, group)); resultList = defaultIdentityQuery.getResultList(); if (!resultList.isEmpty()) { Agent storedAgent = getAgent(((Agent) member).getId()); Role storedRole = null; Group storedGroup = null; if (role != null) { storedRole = getRole(role.getName()); } if (group != null) { storedGroup = getGroup(group.getName()); } groupRole = new SimpleGroupRole(storedAgent, storedRole, storedGroup); } return groupRole; }
/** * <p> * Find an {@link Role} by id. * </p> * * @throws Exception */ @Test public void testFindByName() throws Exception { loadOrCreateRole("admin", true); IdentityManager identityManager = getIdentityManager(); IdentityQuery<Role> query = identityManager.<Role> createQuery(Role.class); query.setParameter(Role.NAME, "admin"); List<Role> result = query.getResultList(); assertFalse(result.isEmpty()); assertTrue(result.size() == 1); assertEquals("admin", result.get(0).getName()); }
/** * <p> * Loads from the LDAP tree an already stored role. * </p> * * @throws Exception */ @Test public void testGet() throws Exception { Role storedRoleInstance = getIdentityType(true); assertNotNull(storedRoleInstance); IdentityManager identityManager = getIdentityManager(); storedRoleInstance = identityManager.getRole(storedRoleInstance.getName()); assertNotNull(storedRoleInstance); assertEquals("ROLE://Administrator", storedRoleInstance.getKey()); assertEquals("Administrator", storedRoleInstance.getName()); }
/** * <p> * Finds roles by the creation date. * </p> * * @throws Exception */ @Test public void testFindCreationDate() throws Exception { Role role = loadOrCreateRole("someRole", false); IdentityManager identityManager = getIdentityManager(); IdentityQuery<Role> query = identityManager.<Role> createQuery(Role.class); query.setParameter(Role.CREATED_DATE, role.getCreatedDate()); Thread.sleep(500); // only the previously created role List<Role> result = query.getResultList(); assertFalse(result.isEmpty()); assertTrue(result.size() == 1); assertEquals("someRole", result.get(0).getName()); query = identityManager.<Role> createQuery(Role.class); query.setParameter(Role.CREATED_DATE, new Date()); // no roles result = query.getResultList(); assertTrue(result.isEmpty()); }
/** * <p> * Remove from the LDAP tree an already stored role. * </p> * * @throws Exception */ @Test public void testRemove() throws Exception { Role storedRoleInstance = getIdentityType(true); assertNotNull(storedRoleInstance); IdentityManager identityManager = getIdentityManager(); identityManager.remove(storedRoleInstance); Role removedRoleInstance = identityManager.getRole(storedRoleInstance.getName()); assertNull(removedRoleInstance); }
/** * <p> * Finds roles using the IDM specific attributes and role defined attributes. * </p> * * @throws Exception */ @Test public void testFindUsingMultipleParameters() throws Exception { Role role = loadOrCreateRole("admin", true); IdentityManager identityManager = getIdentityManager(); identityManager.update(role); role.setAttribute(new Attribute<String>("someAttribute", "someAttributeValue")); identityManager.update(role); IdentityQuery<Role> query = identityManager.<Role> createQuery(Role.class); query.setParameter(Role.NAME, "admin"); query.setParameter(IdentityType.ATTRIBUTE.byName("someAttribute"), "someAttributeValue"); List<Role> result = query.getResultList(); assertFalse(result.isEmpty()); assertTrue(contains(result, role.getName())); assertEquals(1, result.size()); query = identityManager.<Role> createQuery(Role.class); query.setParameter(Role.NAME, "admin"); query.setParameter(IdentityType.ATTRIBUTE.byName("someAttribute"), "someAttributeValue2"); result = query.getResultList(); assertTrue(result.isEmpty()); }