use of org.pentaho.platform.api.engine.security.userroledao.IPentahoUser in project pentaho-platform by pentaho.
the class UserRoleDaoResource method assignUserToRole.
/**
* Associate list of users to the selected role
*
* @param tenantPath (tenant path where the user exist, null of empty string assumes default tenant)
* @param userNames (list of tab (\t) separated user names
* @param roleName (role name)
* @return
*/
@PUT
@Path("/assignUserToRole")
@Consumes({ MediaType.WILDCARD })
@Facet(name = "Unsupported")
public Response assignUserToRole(@QueryParam("tenant") String tenantPath, @QueryParam("userNames") String userNames, @QueryParam("roleName") String roleName) {
if (canAdminister()) {
IUserRoleDao roleDao = getUserRoleDao();
StringTokenizer tokenizer = new StringTokenizer(userNames, "\t");
Set<String> assignedUserNames = new HashSet<String>();
for (IPentahoUser pentahoUser : roleDao.getRoleMembers(getTenant(tenantPath), roleName)) {
assignedUserNames.add(pentahoUser.getUsername());
}
while (tokenizer.hasMoreTokens()) {
assignedUserNames.add(tokenizer.nextToken());
}
try {
roleDao.setRoleMembers(getTenant(tenantPath), roleName, assignedUserNames.toArray(new String[0]));
if (assignedUserNames.contains(getSession().getName())) {
updateRolesForCurrentSession();
}
return Response.ok().build();
} catch (Throwable th) {
return processErrorResponse(th.getLocalizedMessage());
}
} else {
return Response.status(Response.Status.UNAUTHORIZED).build();
}
}
use of org.pentaho.platform.api.engine.security.userroledao.IPentahoUser in project pentaho-platform by pentaho.
the class UserRoleDaoResource method removeUserFromRole.
/**
* Remove user(s) from a particular role
*
* @param tenantPath (tenant path where the user exist, null of empty string assumes default tenant)
* @param userNames (list of tab (\t) separated user names
* @param roleName (role name)
* @return
*/
@PUT
@Path("/removeUserFromRole")
@Consumes({ MediaType.WILDCARD })
@Facet(name = "Unsupported")
public Response removeUserFromRole(@QueryParam("tenant") String tenantPath, @QueryParam("userNames") String userNames, @QueryParam("roleName") String roleName) {
if (canAdminister()) {
try {
IUserRoleDao roleDao = getUserRoleDao();
StringTokenizer tokenizer = new StringTokenizer(userNames, "\t");
Set<String> assignedUserNames = new HashSet<String>();
for (IPentahoUser pentahoUser : roleDao.getRoleMembers(getTenant(tenantPath), roleName)) {
assignedUserNames.add(pentahoUser.getUsername());
}
while (tokenizer.hasMoreTokens()) {
assignedUserNames.remove(tokenizer.nextToken());
}
roleDao.setRoleMembers(getTenant(tenantPath), roleName, assignedUserNames.toArray(new String[0]));
if (assignedUserNames.contains(getSession().getName())) {
updateRolesForCurrentSession();
}
return Response.ok().build();
} catch (Throwable th) {
return processErrorResponse(th.getLocalizedMessage());
}
} else {
return Response.status(Response.Status.UNAUTHORIZED).build();
}
}
use of org.pentaho.platform.api.engine.security.userroledao.IPentahoUser in project pentaho-platform by pentaho.
the class UserRoleDaoServiceTest method createMockPentahoUser.
private IPentahoUser createMockPentahoUser(String username, String password) {
IPentahoUser pentahoUser = mock(IPentahoUser.class);
doReturn(username).when(pentahoUser).getUsername();
doReturn(password).when(pentahoUser).getPassword();
return pentahoUser;
}
use of org.pentaho.platform.api.engine.security.userroledao.IPentahoUser in project pentaho-platform by pentaho.
the class UserRoleDaoServiceTest method testDeleteUsers.
@Test
public void testDeleteUsers() {
String users = "admin\tsuzy\t";
setupMockSessionUser(SESSION_USER_NAME, true);
IPentahoUser user = mock(IPentahoUser.class);
IUserRoleDao roleDao = mock(IUserRoleDao.class);
when(roleDao.getUser(any(ITenant.class), anyString())).thenReturn(user);
PentahoSystem.registerObject(roleDao);
userRoleService.deleteUsers(users);
verify(roleDao, times(2)).deleteUser(any(IPentahoUser.class));
}
use of org.pentaho.platform.api.engine.security.userroledao.IPentahoUser in project pentaho-platform by pentaho.
the class AbstractJcrBackedUserRoleDao method getRoleMembers.
public List<IPentahoUser> getRoleMembers(Session session, final ITenant theTenant, final String roleName) throws RepositoryException {
List<IPentahoUser> users = new ArrayList<IPentahoUser>();
Group jackrabbitGroup = getJackrabbitGroup(theTenant, roleName, session);
if ((jackrabbitGroup != null) && TenantUtils.isAccessibleTenant(theTenant == null ? tenantedRoleNameUtils.getTenant(jackrabbitGroup.getID()) : theTenant)) {
Iterator<Authorizable> authorizables = jackrabbitGroup.getMembers();
while (authorizables.hasNext()) {
Authorizable authorizable = authorizables.next();
if (authorizable instanceof User) {
users.add(convertToPentahoUser((User) authorizable));
}
}
}
return users;
}
Aggregations