1. 新增 permissionApi 查询当前用户权限级别的方法
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
package com.zt.plat.module.system.service.permission;
|
||||
|
||||
import com.zt.plat.framework.common.exception.ServiceException;
|
||||
import com.zt.plat.framework.common.enums.CommonStatusEnum;
|
||||
import com.zt.plat.framework.test.core.ut.BaseDbUnitTest;
|
||||
import com.zt.plat.framework.common.util.json.JsonUtils;
|
||||
import com.zt.plat.module.system.controller.admin.permission.vo.role.RoleSaveReqVO;
|
||||
import com.zt.plat.module.system.dal.dataobject.permission.RoleDO;
|
||||
import com.zt.plat.module.system.dal.dataobject.permission.RoleMenuDO;
|
||||
@@ -11,6 +13,7 @@ import com.zt.plat.module.system.dal.mysql.permission.RoleMapper;
|
||||
import com.zt.plat.module.system.dal.mysql.permission.RoleMenuMapper;
|
||||
import com.zt.plat.module.system.dal.mysql.permission.UserRoleMapper;
|
||||
import com.zt.plat.module.system.dal.mysql.rolemenuexclusion.RoleMenuExclusionMapper;
|
||||
import com.zt.plat.module.system.enums.permission.DataScopeEnum;
|
||||
import com.zt.plat.module.system.enums.permission.RoleTypeEnum;
|
||||
import com.zt.plat.module.system.service.dept.DeptService;
|
||||
import com.zt.plat.module.system.service.user.AdminUserService;
|
||||
@@ -408,4 +411,54 @@ public class PermissionServiceTest extends BaseDbUnitTest {
|
||||
assertEquals(1, exclusionDOS.size());
|
||||
assertEquals(101L, exclusionDOS.get(0).getMenuId());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetUserDataPermissionLevel_noRolesReturnSelf() {
|
||||
Long userId = 1000L;
|
||||
|
||||
DataScopeEnum result = permissionService.getUserDataPermissionLevel(userId);
|
||||
|
||||
assertEquals(DataScopeEnum.SELF, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetUserDataPermissionLevel_pickHighestPriority() {
|
||||
Long userId = 2000L;
|
||||
RoleDO roleCustom = randomPojo(RoleDO.class, o -> o
|
||||
.setStatus(CommonStatusEnum.ENABLE.getStatus())
|
||||
.setDataScope(DataScopeEnum.DEPT_CUSTOM.getScope())
|
||||
.setId(110L)
|
||||
.setTenantId(0L));
|
||||
roleMapper.insert(roleCustom);
|
||||
RoleDO roleCompany = randomPojo(RoleDO.class, o -> o
|
||||
.setStatus(CommonStatusEnum.ENABLE.getStatus())
|
||||
.setDataScope(DataScopeEnum.COMPANY_AND_DEPT.getScope())
|
||||
.setId(120L)
|
||||
.setTenantId(0L));
|
||||
roleMapper.insert(roleCompany);
|
||||
|
||||
userRoleMapper.insert(randomPojo(UserRoleDO.class, o -> o.setUserId(userId).setRoleId(roleCustom.getId())));
|
||||
userRoleMapper.insert(randomPojo(UserRoleDO.class, o -> o.setUserId(userId).setRoleId(roleCompany.getId())));
|
||||
|
||||
DataScopeEnum result = permissionService.getUserDataPermissionLevel(userId);
|
||||
|
||||
assertEquals(DataScopeEnum.COMPANY_AND_DEPT, result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetUserDataPermissionLevel_serializeAsNumber() {
|
||||
Long userId = 3000L;
|
||||
RoleDO roleAll = randomPojo(RoleDO.class, o -> o
|
||||
.setStatus(CommonStatusEnum.ENABLE.getStatus())
|
||||
.setDataScope(DataScopeEnum.ALL.getScope())
|
||||
.setId(210L)
|
||||
.setTenantId(0L));
|
||||
roleMapper.insert(roleAll);
|
||||
userRoleMapper.insert(randomPojo(UserRoleDO.class, o -> o.setUserId(userId).setRoleId(roleAll.getId())));
|
||||
|
||||
DataScopeEnum result = permissionService.getUserDataPermissionLevel(userId);
|
||||
|
||||
assertEquals(DataScopeEnum.ALL, result);
|
||||
assertEquals("1", JsonUtils.toJsonString(result));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user