diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index f9425d9d1..7735f4266 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -252,7 +252,7 @@ public class SysUserController { sysUserService.editUserWithRole(user, roles); if (ObjectUtils.isNotEmpty(roles)) { - //如果角色包含viewer,设置责任领域权限和品牌权限 + //如果角色包含viewer或者品牌管理员,设置责任领域权限和品牌权限 sysUserService.setBrandAndDutyTerritory(roles, dutyTerritories, brands, projectUserBrandList, projectUserDutyTerritoryList, id); } result.success("修改成功!"); diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java index 4a62c010a..aaf412c9c 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/enums/ProjectRoleEnum.java @@ -11,6 +11,7 @@ public enum ProjectRoleEnum { MANAGER("领导角色","11","R&H Manager"), ADMIN("系统管理员","12","admin"), VIEWER("Viewer","13","Viewer"), + BRAND_ADMINISTRATOR("品牌管理员","14","BrandAdministrator"), ; String name; diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 798a03a79..7fa268907 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -713,28 +713,33 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override public void setBrandAndDutyTerritory(String roles, String dutyTerritories, String brands, List projectUserBrandList, List projectUserDutyTerritoryList, String userId) { List roleCodes = sysRoleService.listByIds(Arrays.asList(roles.split(","))).stream().map(SysRole::getRoleCode).collect(Collectors.toList()); - if (roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())) { + if (roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())||roleCodes.contains(ProjectRoleEnum.BRAND_ADMINISTRATOR.getCode())) { + //viewer设置对应的责任领域 + if (roleCodes.contains(ProjectRoleEnum.VIEWER.getCode())) { + //先删后加 + QueryWrapper dutyTerritoryDelWrapper = new QueryWrapper<>(); + dutyTerritoryDelWrapper.eq("user_id", userId); + projectUserDutyTerritoryService.remove(dutyTerritoryDelWrapper); + + if (ObjectUtils.isNotEmpty(dutyTerritories)) { + List dictItemValue = sysDictItemService.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()).stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); + for (String dutyTerritory : dutyTerritories.split(",")) { + //校验责任领域是否合法 + if (dictItemValue.contains(dutyTerritory)) { + ProjectUserDutyTerritory projectUserDutyTerritory = new ProjectUserDutyTerritory(); + projectUserDutyTerritory.setUserId(userId); + projectUserDutyTerritory.setDutyTerritory(dutyTerritory); + projectUserDutyTerritoryList.add(projectUserDutyTerritory); + } + } + } + } + //先删后加 QueryWrapper brandDelWrapper = new QueryWrapper<>(); brandDelWrapper.eq("user_id", userId); projectUserBrandService.remove(brandDelWrapper); - QueryWrapper dutyTerritoryDelWrapper = new QueryWrapper<>(); - dutyTerritoryDelWrapper.eq("user_id", userId); - projectUserDutyTerritoryService.remove(dutyTerritoryDelWrapper); - - if (ObjectUtils.isNotEmpty(dutyTerritories)) { - List dictItemValue = sysDictItemService.selectItemsByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue()).stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); - for (String dutyTerritory : dutyTerritories.split(",")) { - //校验责任领域是否合法 - if (dictItemValue.contains(dutyTerritory)) { - ProjectUserDutyTerritory projectUserDutyTerritory = new ProjectUserDutyTerritory(); - projectUserDutyTerritory.setUserId(userId); - projectUserDutyTerritory.setDutyTerritory(dutyTerritory); - projectUserDutyTerritoryList.add(projectUserDutyTerritory); - } - } - } if (ObjectUtils.isNotEmpty(brands)) { List dictItemValue = sysDictItemService.selectItemsByDictCode(DictCodeEnum.BRAND.getValue()).stream().map(SysDictItem::getItemValue).collect(Collectors.toList()); for (String brand : brands.split(",")) { diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java index ece289216..6e0e0c9b8 100644 --- a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/project/service/impl/ProjectLibraryBaseServiceImpl.java @@ -768,14 +768,12 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl projectIds = new HashSet<>(); - if (isViewer == 0) { - //如果不是viewer,根据项目用户权限表筛选有权访问的项目 - Set permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId()); - if (ObjectUtils.isNotEmpty(permissionProjectIds)) { - projectIds.addAll(permissionProjectIds); - } + //根据项目用户权限表筛选有权访问的项目 + Set permissionProjectIds = projectUserPermissionMapper.queryProjectIdsByUserId(loginUser.getId()); + if (ObjectUtils.isNotEmpty(permissionProjectIds)) { + projectIds.addAll(permissionProjectIds); } - if (sysRoleMapper.queryUserRoleByCode(ProjectRoleEnum.VIEWER.getName(), loginUser.getId()) > 0) { + if (isViewer > 0) { //如果是Viewer,根据配置的品牌筛选可访问的项目 List brandTypes = projectUserBrandService.queryBrandByUserId(loginUser.getId()); if (ObjectUtils.isNotEmpty(brandTypes)) { @@ -874,10 +872,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl resultLast = new ArrayList<>(); //权限筛选 - if (isViewer != 0) { + if (sysUserService.isAdministrator()) { + //管理员查看全部 resultLast = resultNew; } else { - for (ProjectLibraryBase projectLibraryBase : resultNew) { //判断父项目是否有权限 if (!projectIds.contains(projectLibraryBase.getId())) { diff --git a/jero-web/src/views/projectManagement/components/ProjectDetails.vue b/jero-web/src/views/projectManagement/components/ProjectDetails.vue index ad4a6cc24..bed29b591 100644 --- a/jero-web/src/views/projectManagement/components/ProjectDetails.vue +++ b/jero-web/src/views/projectManagement/components/ProjectDetails.vue @@ -61,10 +61,8 @@
{{$t('brand')}} - {{queryForm.brand}} + {{queryForm.brandText}}
diff --git a/jero-web/src/views/projectManagement/projectLibrary/index.vue b/jero-web/src/views/projectManagement/projectLibrary/index.vue index 8615a0fe6..444b1ee8b 100644 --- a/jero-web/src/views/projectManagement/projectLibrary/index.vue +++ b/jero-web/src/views/projectManagement/projectLibrary/index.vue @@ -246,7 +246,7 @@ align: 'center', width: 180, ellipsis: true, - dataIndex: 'brand' + dataIndex: 'brandText' }, { title: this.$t('explain'), diff --git a/jero-web/src/views/system/modules/UserModal.vue b/jero-web/src/views/system/modules/UserModal.vue index 7a36a6149..638fdd786 100644 --- a/jero-web/src/views/system/modules/UserModal.vue +++ b/jero-web/src/views/system/modules/UserModal.vue @@ -85,7 +85,7 @@ - @@ -413,7 +413,7 @@ this.dutyTerritories = res.dutyTerritoryList.join(',') } if(res.brandList){ - this.brands = res.brandList.join(',') + this.brands = res.brandList } }) }, @@ -462,7 +462,7 @@ ids: this.userId, selectedroles: selectedRole.join(','), dutyTerritories: dutyTerritorie, - brands: brand + brands: brand.join(',') } postAction('/sys/user/setRole', param).then((res) => { if (res.success) {