Search in sources :

Example 31 with Role

use of com.agiletec.aps.system.services.role.Role in project entando-core by entando.

the class RoleAction method edit.

public String edit() {
    this.setStrutsAction(ApsAdminSystemConstants.EDIT);
    try {
        if (!this.existsRole()) {
            this.addActionError(this.getText("error.role.notExist"));
            return "roleList";
        }
        Role role = this.getRoleManager().getRole(this.getName());
        this.setDescription(role.getDescription());
        this.setPermissionNames(role.getPermissions());
    } catch (Throwable t) {
        _logger.error("error in edit", t);
        return FAILURE;
    }
    return SUCCESS;
}
Also used : Role(com.agiletec.aps.system.services.role.Role)

Example 32 with Role

use of com.agiletec.aps.system.services.role.Role in project entando-core by entando.

the class RoleAction method isRoleInUse.

/**
 * Verifica l'utilizzo del ruolo.
 * @return true in caso positivo, false nel caso il ruolo non sia utilizzato.
 * @throws ApsSystemException In caso di errore.
 */
protected boolean isRoleInUse() throws ApsSystemException {
    IRoleManager roleManager = this.getRoleManager();
    Role role = roleManager.getRole(this.getName());
    List<String> usernames = super.getAuthorizationManager().getUsersByRole(role, false);
    this.setReferences(usernames);
    return (null != usernames && !usernames.isEmpty());
}
Also used : Role(com.agiletec.aps.system.services.role.Role) IRoleManager(com.agiletec.aps.system.services.role.IRoleManager)

Example 33 with Role

use of com.agiletec.aps.system.services.role.Role in project entando-core by entando.

the class RoleAction method createRole.

/**
 * Prepara il ruolo con i dati ricevuti dal form.
 * @return Il ruolo popolato con tutti i dati.
 */
protected Role createRole() {
    Role role = new Role();
    role.setName(this.getName());
    role.setDescription(this.getDescription());
    Set<String> permissionNames = this.getPermissionNames();
    if (permissionNames != null) {
        role.getPermissions().addAll(permissionNames);
    }
    return role;
}
Also used : Role(com.agiletec.aps.system.services.role.Role)

Example 34 with Role

use of com.agiletec.aps.system.services.role.Role in project entando-core by entando.

the class RoleControllerIntegrationTest method testCrudRole.

/**
 * Add a role without permissions
 * </p>
 *
 * Update the role with 1 valid permissions
 * </p>
 *
 * Update the role by adding 1 invalid permissions
 * </p>
 *
 * Update the role by adding 1 valid permissions
 * </p>
 *
 * delete the role
 * </p>
 *
 * @throws Exception
 */
@Test
public void testCrudRole() throws Exception {
    String code = "test";
    try {
        UserDetails user = new OAuth2TestUtils.UserBuilder("jack_bauer", "0x24").grantedToRoleAdmin().build();
        String accessToken = mockOAuthInterceptor(user);
        ObjectMapper mapper = new ObjectMapper();
        RoleRequest request = new RoleRequest();
        request.setCode(code);
        request.setName(code);
        String payload = mapper.writeValueAsString(request);
        ResultActions result = mockMvc.perform(post("/roles").contentType(MediaType.APPLICATION_JSON_VALUE).content(payload).header("Authorization", "Bearer " + accessToken));
        result.andExpect(status().isOk());
        System.out.println("ADD");
        // {"payload":{"code":"test","name":"test","permissions":{"enterBackend":false,"managePages":false,"editContents":false,"validateContents":false,"manageResources":false,"superuser":false,"manageCategories":false}},"errors":[],"metaData":{}}
        System.out.println(result.andReturn().getResponse().getContentAsString());
        // --------------
        request = new RoleRequest();
        request.setCode(code);
        request.setName(code.toUpperCase());
        request.getPermissions().put("editContents", true);
        payload = mapper.writeValueAsString(request);
        result = mockMvc.perform(put("/roles/{code}", code).contentType(MediaType.APPLICATION_JSON_VALUE).content(payload).header("Authorization", "Bearer " + accessToken));
        result.andExpect(status().isOk());
        System.out.println("UPDATE");
        System.out.println(result.andReturn().getResponse().getContentAsString());
        // {"payload":{"code":"test","name":"TEST","permissions":{"enterBackend":false,"managePages":false,"editContents":true,"validateContents":false,"manageResources":false,"superuser":false,"manageCategories":false}},"errors":[],"metaData":{}}
        // --------------
        request = new RoleRequest();
        request.setCode(code);
        request.setName(code.toUpperCase());
        request.getPermissions().put("editContents", true);
        request.getPermissions().put("WRONG", true);
        payload = mapper.writeValueAsString(request);
        result = mockMvc.perform(put("/roles/{code}", code).contentType(MediaType.APPLICATION_JSON_VALUE).content(payload).header("Authorization", "Bearer " + accessToken));
        result.andExpect(status().isConflict());
        System.out.println("UPDATE-WRONG");
        System.out.println(result.andReturn().getResponse().getContentAsString());
        // {"payload":[],"errors":[{"code":"4","message":"role.permission.notFound"}],"metaData":{}}
        // --------------
        request = new RoleRequest();
        request.setCode(code);
        request.setName(code.toUpperCase());
        request.getPermissions().put("editContents", true);
        request.getPermissions().put("manageResources", true);
        request.getPermissions().put("manageCategories", false);
        payload = mapper.writeValueAsString(request);
        result = mockMvc.perform(put("/roles/{code}", code).contentType(MediaType.APPLICATION_JSON_VALUE).content(payload).header("Authorization", "Bearer " + accessToken));
        result.andExpect(status().isOk());
        System.out.println("UPDATE-OK");
        System.out.println(result.andReturn().getResponse().getContentAsString());
        // --------------
        result = mockMvc.perform(delete("/roles/{code}", code).contentType(MediaType.APPLICATION_JSON_VALUE).header("Authorization", "Bearer " + accessToken));
        result.andExpect(status().isOk());
        System.out.println("UPDATE-OK");
        System.out.println(result.andReturn().getResponse().getContentAsString());
    } finally {
        Role role = this.roleManager.getRole(code);
        if (null != role) {
            this.roleManager.removeRole(role);
        }
    }
}
Also used : Role(com.agiletec.aps.system.services.role.Role) UserDetails(com.agiletec.aps.system.services.user.UserDetails) ResultActions(org.springframework.test.web.servlet.ResultActions) ObjectMapper(com.fasterxml.jackson.databind.ObjectMapper) RoleRequest(org.entando.entando.web.role.model.RoleRequest) Test(org.junit.Test) AbstractControllerIntegrationTest(org.entando.entando.web.AbstractControllerIntegrationTest)

Example 35 with Role

use of com.agiletec.aps.system.services.role.Role in project entando-core by entando.

the class UserControllerIntegrationTest method shouldAddUserAuthorities.

@Test
public void shouldAddUserAuthorities() throws Exception {
    Group group = createGroup(1);
    Role role = createRole(1);
    try {
        this.groupManager.addGroup(group);
        this.roleManager.addRole(role);
        UserDetails user = new OAuth2TestUtils.UserBuilder("jack_bauer", "0x24").grantedToRoleAdmin().build();
        String accessToken = mockOAuthInterceptor(user);
        String mockJson = "[{\"group\":\"group1\", \"role\":\"role1\"}]";
        ResultActions result = mockMvc.perform(put("/users/{target}/authorities", "mockuser").sessionAttr("user", user).content(mockJson).contentType(MediaType.APPLICATION_JSON).header("Authorization", "Bearer " + accessToken));
        result.andExpect(status().isOk());
        result.andExpect(jsonPath("$.payload[0].group", is("group1")));
    } finally {
        this.authorizationManager.deleteUserAuthorizations("mockuser");
        this.groupManager.removeGroup(group);
        this.roleManager.removeRole(role);
    }
}
Also used : Role(com.agiletec.aps.system.services.role.Role) Group(com.agiletec.aps.system.services.group.Group) UserDetails(com.agiletec.aps.system.services.user.UserDetails) ResultActions(org.springframework.test.web.servlet.ResultActions) Test(org.junit.Test) AbstractControllerIntegrationTest(org.entando.entando.web.AbstractControllerIntegrationTest)

Aggregations

Role (com.agiletec.aps.system.services.role.Role)40 Group (com.agiletec.aps.system.services.group.Group)13 ApsSystemException (com.agiletec.aps.system.exception.ApsSystemException)9 ArrayList (java.util.ArrayList)5 RoleDto (org.entando.entando.aps.system.services.role.model.RoleDto)5 SearcherDaoPaginatedResult (com.agiletec.aps.system.common.model.dao.SearcherDaoPaginatedResult)4 IRoleManager (com.agiletec.aps.system.services.role.IRoleManager)4 List (java.util.List)4 RestRourceNotFoundException (org.entando.entando.aps.system.exception.RestRourceNotFoundException)4 RestServerError (org.entando.entando.aps.system.exception.RestServerError)4 ValidationConflictException (org.entando.entando.web.common.exceptions.ValidationConflictException)4 PagedMetadata (org.entando.entando.web.common.model.PagedMetadata)4 FieldSearchFilter (com.agiletec.aps.system.common.FieldSearchFilter)3 UserDetails (com.agiletec.aps.system.services.user.UserDetails)3 UserDto (org.entando.entando.aps.system.services.user.model.UserDto)3 Filter (org.entando.entando.web.common.model.Filter)3 RoleRequest (org.entando.entando.web.role.model.RoleRequest)3 BeanPropertyBindingResult (org.springframework.validation.BeanPropertyBindingResult)3 Authorization (com.agiletec.aps.system.services.authorization.Authorization)2 IAuthorizationService (com.agiletec.aps.system.services.authorization.IAuthorizationService)2