Search in sources :

Example 1 with CreateGroupParams

use of com.enonic.xp.security.CreateGroupParams in project xp by enonic.

the class SecurityServiceImplTest method testGetUserMemberships.

@Test
public void testGetUserMemberships() throws Exception {
    runAsAdmin(() -> {
        final PrincipalKey userKey = PrincipalKey.ofUser(SYSTEM, "User1");
        final CreateUserParams createUser = CreateUserParams.create().userKey(userKey).displayName("User 1").email("user1@enonic.com").login("User1").password("123456").build();
        final PrincipalKey groupKey1 = PrincipalKey.ofGroup(SYSTEM, "Group-a");
        final CreateGroupParams createGroup1 = CreateGroupParams.create().groupKey(groupKey1).displayName("Group A").build();
        final PrincipalKey groupKey2 = PrincipalKey.ofGroup(SYSTEM, "group-b");
        final CreateGroupParams createGroup2 = CreateGroupParams.create().groupKey(groupKey2).displayName("Group B").build();
        securityService.createUser(createUser);
        securityService.createGroup(createGroup1);
        securityService.createGroup(createGroup2);
        securityService.addRelationship(PrincipalRelationship.from(groupKey1).to(userKey));
        securityService.addRelationship(PrincipalRelationship.from(groupKey2).to(userKey));
        refresh();
        final PrincipalKeys memberships = securityService.getMemberships(userKey);
        assertTrue(memberships.contains(groupKey1));
        assertTrue(memberships.contains(groupKey2));
        assertEquals(2, memberships.getSize());
    });
}
Also used : CreateUserParams(com.enonic.xp.security.CreateUserParams) CreateGroupParams(com.enonic.xp.security.CreateGroupParams) PrincipalKeys(com.enonic.xp.security.PrincipalKeys) PrincipalKey(com.enonic.xp.security.PrincipalKey) AbstractElasticsearchIntegrationTest(com.enonic.xp.repo.impl.elasticsearch.AbstractElasticsearchIntegrationTest) Test(org.junit.jupiter.api.Test)

Example 2 with CreateGroupParams

use of com.enonic.xp.security.CreateGroupParams in project xp by enonic.

the class SecurityServiceImplTest method testUpdateGroup.

@Test
public void testUpdateGroup() throws Exception {
    runAsAdmin(() -> {
        final CreateGroupParams createGroup = CreateGroupParams.create().groupKey(PrincipalKey.ofGroup(SYSTEM, "Group-a")).displayName("Group A").build();
        final Group group = securityService.createGroup(createGroup);
        refresh();
        final UpdateGroupParams groupUpdate = UpdateGroupParams.create(group).displayName("___Group B___").description("description").build();
        final Group updatedGroupResult = securityService.updateGroup(groupUpdate);
        refresh();
        final Group updatedGroup = securityService.getGroup(group.getKey()).get();
        assertEquals("___Group B___", updatedGroupResult.getDisplayName());
        assertEquals("___Group B___", updatedGroup.getDisplayName());
        assertEquals("description", updatedGroupResult.getDescription());
        assertEquals("description", updatedGroup.getDescription());
    });
}
Also used : Group(com.enonic.xp.security.Group) UpdateGroupParams(com.enonic.xp.security.UpdateGroupParams) CreateGroupParams(com.enonic.xp.security.CreateGroupParams) AbstractElasticsearchIntegrationTest(com.enonic.xp.repo.impl.elasticsearch.AbstractElasticsearchIntegrationTest) Test(org.junit.jupiter.api.Test)

Example 3 with CreateGroupParams

use of com.enonic.xp.security.CreateGroupParams in project xp by enonic.

the class SecurityServiceImplTest method testGetAllMemberships.

@Test
public void testGetAllMemberships() throws Exception {
    runAsAdmin(() -> {
        final PrincipalKey userKey = PrincipalKey.ofUser(SYSTEM, "user1");
        final CreateUserParams createUser = CreateUserParams.create().userKey(userKey).displayName("User 1").email("user1@enonic.com").login("user1").password("123456").build();
        final PrincipalKey groupKey1 = PrincipalKey.ofGroup(SYSTEM, "group-a");
        final CreateGroupParams createGroup1 = CreateGroupParams.create().groupKey(groupKey1).displayName("Group A").build();
        final PrincipalKey groupKey2 = PrincipalKey.ofGroup(SYSTEM, "group-b");
        final CreateGroupParams createGroup2 = CreateGroupParams.create().groupKey(groupKey2).displayName("Group B").build();
        final PrincipalKey roleKey1 = PrincipalKey.ofRole("role-a");
        final CreateRoleParams createRole = CreateRoleParams.create().roleKey(roleKey1).displayName("Role A").description("Group A Description").build();
        securityService.createUser(createUser);
        securityService.createGroup(createGroup1);
        securityService.createGroup(createGroup2);
        securityService.createRole(createRole);
        securityService.addRelationship(PrincipalRelationship.from(groupKey1).to(userKey));
        securityService.addRelationship(PrincipalRelationship.from(groupKey2).to(groupKey1));
        securityService.addRelationship(PrincipalRelationship.from(roleKey1).to(groupKey2));
        refresh();
        final PrincipalKeys memberships = securityService.getAllMemberships(userKey);
        assertTrue(memberships.contains(groupKey1));
        assertTrue(memberships.contains(groupKey2));
        assertTrue(memberships.contains(roleKey1));
        assertEquals(3, memberships.getSize());
    });
}
Also used : CreateRoleParams(com.enonic.xp.security.CreateRoleParams) CreateUserParams(com.enonic.xp.security.CreateUserParams) CreateGroupParams(com.enonic.xp.security.CreateGroupParams) PrincipalKeys(com.enonic.xp.security.PrincipalKeys) PrincipalKey(com.enonic.xp.security.PrincipalKey) AbstractElasticsearchIntegrationTest(com.enonic.xp.repo.impl.elasticsearch.AbstractElasticsearchIntegrationTest) Test(org.junit.jupiter.api.Test)

Example 4 with CreateGroupParams

use of com.enonic.xp.security.CreateGroupParams in project xp by enonic.

the class SecurityServiceImplTest method testCreateGroup.

@Test
public void testCreateGroup() throws Exception {
    runAsAdmin(() -> {
        final PrincipalKey groupKey1 = PrincipalKey.ofGroup(SYSTEM, "Group-a");
        final CreateGroupParams createGroup = CreateGroupParams.create().groupKey(groupKey1).displayName("Group A").description("Group A Description").build();
        final PrincipalKey groupKey2 = PrincipalKey.ofGroup(SYSTEM, "group-b");
        final CreateGroupParams createGroup2 = CreateGroupParams.create().groupKey(groupKey2).displayName("Group B").build();
        final Group group1 = securityService.createGroup(createGroup);
        final Group group2 = securityService.createGroup(createGroup2);
        refresh();
        final Group createdGroup1 = securityService.getGroup(groupKey1).get();
        final Group createdGroup2 = securityService.getGroup(groupKey2).get();
        assertEquals("Group A", group1.getDisplayName());
        assertEquals("Group A", createdGroup1.getDisplayName());
        assertEquals("Group A Description", group1.getDescription());
        assertEquals("Group A Description", createdGroup1.getDescription());
        assertEquals("Group B", group2.getDisplayName());
        assertEquals("Group B", createdGroup2.getDisplayName());
        assertNull(group2.getDescription());
        assertNull(createdGroup2.getDescription());
    });
}
Also used : Group(com.enonic.xp.security.Group) CreateGroupParams(com.enonic.xp.security.CreateGroupParams) PrincipalKey(com.enonic.xp.security.PrincipalKey) AbstractElasticsearchIntegrationTest(com.enonic.xp.repo.impl.elasticsearch.AbstractElasticsearchIntegrationTest) Test(org.junit.jupiter.api.Test)

Example 5 with CreateGroupParams

use of com.enonic.xp.security.CreateGroupParams in project xp by enonic.

the class SecurityServiceImplTest method testRemoveRelationship.

@Test
public void testRemoveRelationship() throws Exception {
    runAsAdmin(() -> {
        // set up
        final PrincipalKey userKey1 = PrincipalKey.ofUser(SYSTEM, "User1");
        final CreateUserParams createUser1 = CreateUserParams.create().userKey(userKey1).displayName("User 1").email("user1@enonic.com").login("User1").password("123456").build();
        final PrincipalKey userKey2 = PrincipalKey.ofUser(SYSTEM, "user2");
        final CreateUserParams createUser2 = CreateUserParams.create().userKey(userKey2).displayName("User 2").email("user2@enonic.com").login("user2").build();
        final PrincipalKey groupKey1 = PrincipalKey.ofGroup(SYSTEM, "Group-a");
        final CreateGroupParams createGroup = CreateGroupParams.create().groupKey(groupKey1).displayName("Group A").build();
        securityService.createUser(createUser1);
        securityService.createUser(createUser2);
        securityService.createGroup(createGroup);
        refresh();
        PrincipalRelationship membership = PrincipalRelationship.from(groupKey1).to(userKey1);
        PrincipalRelationship membership2 = PrincipalRelationship.from(groupKey1).to(userKey2);
        securityService.addRelationship(membership);
        securityService.addRelationship(membership2);
        refresh();
        // exercise
        securityService.removeRelationship(membership);
        refresh();
        // verify
        final PrincipalRelationships relationships = securityService.getRelationships(groupKey1);
        assertEquals(1, relationships.getSize());
        assertEquals(membership2, relationships.get(0));
    });
}
Also used : CreateUserParams(com.enonic.xp.security.CreateUserParams) CreateGroupParams(com.enonic.xp.security.CreateGroupParams) PrincipalRelationship(com.enonic.xp.security.PrincipalRelationship) PrincipalKey(com.enonic.xp.security.PrincipalKey) PrincipalRelationships(com.enonic.xp.security.PrincipalRelationships) AbstractElasticsearchIntegrationTest(com.enonic.xp.repo.impl.elasticsearch.AbstractElasticsearchIntegrationTest) Test(org.junit.jupiter.api.Test)

Aggregations

AbstractElasticsearchIntegrationTest (com.enonic.xp.repo.impl.elasticsearch.AbstractElasticsearchIntegrationTest)7 CreateGroupParams (com.enonic.xp.security.CreateGroupParams)7 Test (org.junit.jupiter.api.Test)7 PrincipalKey (com.enonic.xp.security.PrincipalKey)6 CreateUserParams (com.enonic.xp.security.CreateUserParams)5 PrincipalRelationship (com.enonic.xp.security.PrincipalRelationship)3 PrincipalRelationships (com.enonic.xp.security.PrincipalRelationships)3 Group (com.enonic.xp.security.Group)2 PrincipalKeys (com.enonic.xp.security.PrincipalKeys)2 CreateRoleParams (com.enonic.xp.security.CreateRoleParams)1 UpdateGroupParams (com.enonic.xp.security.UpdateGroupParams)1