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;
}
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());
}
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;
}
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);
}
}
}
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);
}
}
Aggregations