Search in sources :

Example 6 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class XUserMgr method createOrUpdateUserPermisson.

// Insert or Updating Mapping permissions depending upon roles
public void createOrUpdateUserPermisson(VXPortalUser portalUser, Long moduleId, boolean isCreate) {
    VXUserPermission vXUserPermission;
    XXUserPermission xUserPermission = daoManager.getXXUserPermission().findByModuleIdAndPortalUserId(portalUser.getId(), moduleId);
    if (xUserPermission == null) {
        vXUserPermission = new VXUserPermission();
        // When Creating XXUserPermission UI sends xUserId, to keep it consistent here xUserId should be used
        XXUser xUser = daoManager.getXXUser().findByPortalUserId(portalUser.getId());
        if (xUser == null) {
            logger.warn("Could not found corresponding xUser for username: [" + portalUser.getLoginId() + "], So not assigning permission to this user");
            return;
        } else {
            vXUserPermission.setUserId(xUser.getId());
        }
        vXUserPermission.setIsAllowed(RangerCommonEnums.IS_ALLOWED);
        vXUserPermission.setModuleId(moduleId);
        try {
            vXUserPermission = this.createXUserPermission(vXUserPermission);
            logger.info("Permission assigned to user: [" + vXUserPermission.getUserName() + "] For Module: [" + vXUserPermission.getModuleName() + "]");
        } catch (Exception e) {
            logger.error("Error while assigning permission to user: [" + portalUser.getLoginId() + "] for module: [" + moduleId + "]", e);
        }
    } else if (isCreate) {
        vXUserPermission = xUserPermissionService.populateViewBean(xUserPermission);
        vXUserPermission.setIsAllowed(RangerCommonEnums.IS_ALLOWED);
        vXUserPermission = this.updateXUserPermission(vXUserPermission);
        logger.info("Permission Updated for user: [" + vXUserPermission.getUserName() + "] For Module: [" + vXUserPermission.getModuleName() + "]");
    }
}
Also used : XXUser(org.apache.ranger.entity.XXUser) XXUserPermission(org.apache.ranger.entity.XXUserPermission)

Example 7 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class XUserMgr method createXGroupUserFromMap.

@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public VXGroupUserInfo createXGroupUserFromMap(VXGroupUserInfo vXGroupUserInfo) {
    checkAdminAccess();
    xaBizUtil.blockAuditorRoleUser();
    VXGroupUserInfo vxGUInfo = new VXGroupUserInfo();
    VXGroup vXGroup = vXGroupUserInfo.getXgroupInfo();
    // Add the group user mappings for a given group to x_group_user table
    /*XXGroup xGroup = daoManager.getXXGroup().findByGroupName(vXGroup.getName());
		if (xGroup == null) {
			return vxGUInfo;
		}*/
    List<VXUser> vxu = new ArrayList<VXUser>();
    for (VXUser vXUser : vXGroupUserInfo.getXuserInfo()) {
        XXUser xUser = daoManager.getXXUser().findByUserName(vXUser.getName());
        XXPortalUser xXPortalUser = daoManager.getXXPortalUser().findByLoginId(vXUser.getName());
        if (xUser != null) {
            // Add or update group user mapping only if the user already exists in x_user table.
            logger.debug(String.format("createXGroupUserFromMap(): Create or update group %s ", vXGroup.getName()));
            vXGroup = xGroupService.createXGroupWithOutLogin(vXGroup);
            vxGUInfo.setXgroupInfo(vXGroup);
            vxu.add(vXUser);
            VXGroupUser vXGroupUser = new VXGroupUser();
            vXGroupUser.setUserId(xUser.getId());
            vXGroupUser.setName(vXGroup.getName());
            if (xXPortalUser.getUserSource() == RangerCommonEnums.USER_EXTERNAL) {
                vXGroupUser = xGroupUserService.createXGroupUserWithOutLogin(vXGroupUser);
                logger.debug(String.format("createXGroupUserFromMap(): Create or update group user mapping with groupname =  " + vXGroup.getName() + " username = %s userId = %d", xXPortalUser.getLoginId(), xUser.getId()));
            }
            Collection<String> reqRoleList = vXUser.getUserRoleList();
            XXPortalUser xxPortalUser = daoManager.getXXPortalUser().findByLoginId(vXUser.getName());
            List<String> existingRole = daoManager.getXXPortalUserRole().findXPortalUserRolebyXPortalUserId(xxPortalUser.getId());
            VXPortalUser vxPortalUser = userManager.mapXXPortalUserToVXPortalUserForDefaultAccount(xxPortalUser);
            if (xxPortalUser.getUserSource() == RangerCommonEnums.USER_EXTERNAL) {
                vxPortalUser = userManager.updateRoleForExternalUsers(reqRoleList, existingRole, vxPortalUser);
                assignPermissionToUser(vxPortalUser, true);
            }
        }
    }
    vxGUInfo.setXuserInfo(vxu);
    return vxGUInfo;
}
Also used : XXUser(org.apache.ranger.entity.XXUser) XXPortalUser(org.apache.ranger.entity.XXPortalUser) ArrayList(java.util.ArrayList) Transactional(org.springframework.transaction.annotation.Transactional)

Example 8 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class TestXUserMgr method test15ModifyUserVisibilitySetEmpty.

@Test
public void test15ModifyUserVisibilitySetEmpty() {
    XXUserDao xxUserDao = Mockito.mock(XXUserDao.class);
    XXUser xxUser = Mockito.mock(XXUser.class);
    VXUser vxUser = vxUser();
    Mockito.when(xUserService.updateResource(vxUser)).thenReturn(vxUser);
    HashMap<Long, Integer> visibilityMap = new HashMap<Long, Integer>();
    visibilityMap.put(userId, emptyValue);
    Mockito.when(daoManager.getXXUser()).thenReturn(xxUserDao);
    Mockito.when(xxUserDao.getById(userId)).thenReturn(xxUser);
    Mockito.when(xUserService.populateViewBean(xxUser)).thenReturn(vxUser);
    xUserMgr.modifyUserVisibility(visibilityMap);
    Assert.assertEquals(emptyValue, vxUser.getIsVisible());
    Assert.assertEquals(userId, vxUser.getId());
    Mockito.verify(xUserService).updateResource(vxUser);
    Mockito.verify(daoManager).getXXUser();
    Mockito.verify(xUserService).populateViewBean(xxUser);
}
Also used : XXUser(org.apache.ranger.entity.XXUser) HashMap(java.util.HashMap) XXUserDao(org.apache.ranger.db.XXUserDao) VXUser(org.apache.ranger.view.VXUser) Test(org.junit.Test)

Example 9 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class TestXUserMgr method test14ModifyUserVisibilitySetZero.

@Test
public void test14ModifyUserVisibilitySetZero() {
    XXUserDao xxUserDao = Mockito.mock(XXUserDao.class);
    XXUser xxUser = Mockito.mock(XXUser.class);
    VXUser vxUser = vxUser();
    Mockito.when(xUserService.updateResource(vxUser)).thenReturn(vxUser);
    HashMap<Long, Integer> visibilityMap = new HashMap<Long, Integer>();
    Integer value = 0;
    visibilityMap.put(userId, value);
    Mockito.when(daoManager.getXXUser()).thenReturn(xxUserDao);
    Mockito.when(xxUserDao.getById(userId)).thenReturn(xxUser);
    Mockito.when(xUserService.populateViewBean(xxUser)).thenReturn(vxUser);
    xUserMgr.modifyUserVisibility(visibilityMap);
    Assert.assertEquals(value, vxUser.getIsVisible());
    Assert.assertEquals(userId, vxUser.getId());
    Mockito.verify(xUserService).updateResource(vxUser);
    Mockito.verify(daoManager).getXXUser();
    Mockito.verify(xUserService).populateViewBean(xxUser);
}
Also used : XXUser(org.apache.ranger.entity.XXUser) HashMap(java.util.HashMap) XXUserDao(org.apache.ranger.db.XXUserDao) VXUser(org.apache.ranger.view.VXUser) Test(org.junit.Test)

Example 10 with XXUser

use of org.apache.ranger.entity.XXUser in project ranger by apache.

the class TestXUserMgr method test13ModifyUserVisibilitySetOne.

@Test
public void test13ModifyUserVisibilitySetOne() {
    XXUserDao xxUserDao = Mockito.mock(XXUserDao.class);
    XXUser xxUser = Mockito.mock(XXUser.class);
    VXUser vxUser = vxUser();
    Mockito.when(xUserService.updateResource(vxUser)).thenReturn(vxUser);
    HashMap<Long, Integer> visibilityMap = new HashMap<Long, Integer>();
    Integer value = 1;
    visibilityMap.put(userId, value);
    Mockito.when(daoManager.getXXUser()).thenReturn(xxUserDao);
    Mockito.when(xxUserDao.getById(userId)).thenReturn(xxUser);
    Mockito.when(xUserService.populateViewBean(xxUser)).thenReturn(vxUser);
    xUserMgr.modifyUserVisibility(visibilityMap);
    Assert.assertEquals(value, vxUser.getIsVisible());
    Assert.assertEquals(userId, vxUser.getId());
    Mockito.verify(xUserService).updateResource(vxUser);
    Mockito.verify(daoManager).getXXUser();
    Mockito.verify(xUserService).populateViewBean(xxUser);
}
Also used : XXUser(org.apache.ranger.entity.XXUser) HashMap(java.util.HashMap) XXUserDao(org.apache.ranger.db.XXUserDao) VXUser(org.apache.ranger.view.VXUser) Test(org.junit.Test)

Aggregations

XXUser (org.apache.ranger.entity.XXUser)36 ArrayList (java.util.ArrayList)15 XXPortalUser (org.apache.ranger.entity.XXPortalUser)12 XXGroup (org.apache.ranger.entity.XXGroup)10 XXUserDao (org.apache.ranger.db.XXUserDao)9 XXTrxLog (org.apache.ranger.entity.XXTrxLog)9 UserSessionBase (org.apache.ranger.common.UserSessionBase)8 VXUser (org.apache.ranger.view.VXUser)8 Test (org.junit.Test)7 HashMap (java.util.HashMap)6 XXPortalUserDao (org.apache.ranger.db.XXPortalUserDao)5 XXUserPermission (org.apache.ranger.entity.XXUserPermission)5 VXString (org.apache.ranger.view.VXString)5 XXPermMap (org.apache.ranger.entity.XXPermMap)4 Field (java.lang.reflect.Field)3 SearchCriteria (org.apache.ranger.common.SearchCriteria)3 SearchField (org.apache.ranger.common.SearchField)3 VTrxLogAttr (org.apache.ranger.common.view.VTrxLogAttr)3 XXAuditMapDao (org.apache.ranger.db.XXAuditMapDao)3 XXGroupUserDao (org.apache.ranger.db.XXGroupUserDao)3