mirror of https://gitee.com/stylefeng/roses
【7.2.5】【user】更新添加管理员默认绑定所有权限
parent
8a46ec2b5d
commit
9e1affc841
|
@ -153,4 +153,12 @@ public interface RoleServiceApi {
|
|||
*/
|
||||
void del(SysRoleRequest sysRoleRequest);
|
||||
|
||||
/**
|
||||
* 角色绑定所有资源
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/29 14:05
|
||||
*/
|
||||
void grantResourceV2GrantAll(SysRoleRequest sysRoleRequest);
|
||||
|
||||
}
|
||||
|
|
|
@ -150,7 +150,7 @@ public class SysRoleAuthController {
|
|||
*/
|
||||
@PostResource(name = "角色绑定所有接口数据", path = "/sysRole/grantResourceV2/grantAll")
|
||||
public ResponseData<?> grantResourceV2GrantAll(@RequestBody @Validated(SysRoleRequest.grantAll.class) SysRoleRequest sysRoleRequest) {
|
||||
sysRoleResourceService.grantResourceV2GrantAll(sysRoleRequest);
|
||||
this.sysRoleService.grantResourceV2GrantAll(sysRoleRequest);
|
||||
return new SuccessResponseData<>();
|
||||
}
|
||||
|
||||
|
|
|
@ -82,11 +82,11 @@ public interface SysRoleResourceService extends IService<SysRoleResource> {
|
|||
void quickSaveAll(List<SysRoleResource> sysRoleResourceList);
|
||||
|
||||
/**
|
||||
* 角色绑定所有资源
|
||||
* 批量保存角色和资源的绑定
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/29 14:05
|
||||
* @date 2022/9/29 14:34
|
||||
*/
|
||||
void grantResourceV2GrantAll(SysRoleRequest sysRoleRequest);
|
||||
void batchSaveResCodes(Long roleId, List<String> totalResourceCode);
|
||||
|
||||
}
|
||||
|
|
|
@ -30,8 +30,6 @@ import cn.stylefeng.roses.kernel.cache.api.CacheOperatorApi;
|
|||
import cn.stylefeng.roses.kernel.db.api.context.DbOperatorContext;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.DbTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.ResourceServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.request.SysRoleRequest;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleResource;
|
||||
import cn.stylefeng.roses.kernel.system.modular.role.mapper.SysRoleResourceMapper;
|
||||
|
@ -59,9 +57,6 @@ public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMappe
|
|||
@Resource(name = "roleResourceCacheApi")
|
||||
private CacheOperatorApi<List<String>> roleResourceCacheApi;
|
||||
|
||||
@Resource
|
||||
private ResourceServiceApi resourceServiceApi;
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void grantResource(SysRoleRequest sysRoleRequest) {
|
||||
|
@ -157,33 +152,14 @@ public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMappe
|
|||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void grantResourceV2GrantAll(SysRoleRequest sysRoleRequest) {
|
||||
|
||||
// 删除角色绑定的所有资源
|
||||
this.deleteRoleResourceListByRoleId(sysRoleRequest.getRoleId());
|
||||
|
||||
// 获取是全部选中,还是全部取消,如果是全部取消,则直接返回
|
||||
if (!sysRoleRequest.getTotalSelectFlag()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果是全部选中,则查询一共有多少资源,将角色赋予全部资源
|
||||
ResBizTypeEnum resBizTypeEnum = null;
|
||||
if (ObjectUtil.isNotEmpty(sysRoleRequest.getResourceBizType())) {
|
||||
resBizTypeEnum = ResBizTypeEnum.DEFAULT.parseToEnum(sysRoleRequest.getResourceBizType().toString());
|
||||
}
|
||||
List<String> totalResourceCode = resourceServiceApi.getTotalResourceCode(resBizTypeEnum);
|
||||
this.batchSaveResCodes(sysRoleRequest.getRoleId(), totalResourceCode);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量保存角色和资源的绑定
|
||||
*
|
||||
* @author fengshuonan
|
||||
* @date 2022/9/29 14:34
|
||||
*/
|
||||
private void batchSaveResCodes(Long roleId, List<String> totalResourceCode) {
|
||||
@Override
|
||||
public void batchSaveResCodes(Long roleId, List<String> totalResourceCode) {
|
||||
ArrayList<SysRoleResource> sysRoleResourceList = new ArrayList<>();
|
||||
|
||||
if (ObjectUtil.isNotEmpty(totalResourceCode)) {
|
||||
|
|
|
@ -37,11 +37,13 @@ import cn.stylefeng.roses.kernel.db.api.factory.PageFactory;
|
|||
import cn.stylefeng.roses.kernel.db.api.factory.PageResultFactory;
|
||||
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
|
||||
import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
|
||||
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
|
||||
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.ResourceServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.UserServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants;
|
||||
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
|
||||
|
@ -112,6 +114,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
@Resource(name = "roleDataScopeCacheApi")
|
||||
private CacheOperatorApi<List<Long>> roleDataScopeCacheApi;
|
||||
|
||||
@Resource
|
||||
private ResourceServiceApi resourceServiceApi;
|
||||
|
||||
@Override
|
||||
public void add(SysRoleRequest sysRoleRequest) {
|
||||
|
||||
|
@ -165,6 +170,26 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
roleDataScopeCacheApi.remove(String.valueOf(sysRoleRequest.getRoleId()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void grantResourceV2GrantAll(SysRoleRequest sysRoleRequest) {
|
||||
|
||||
// 删除角色绑定的所有资源
|
||||
this.sysRoleResourceService.deleteRoleResourceListByRoleId(sysRoleRequest.getRoleId());
|
||||
|
||||
// 获取是全部选中,还是全部取消,如果是全部取消,则直接返回
|
||||
if (!sysRoleRequest.getTotalSelectFlag()) {
|
||||
return;
|
||||
}
|
||||
|
||||
// 如果是全部选中,则查询一共有多少资源,将角色赋予全部资源
|
||||
ResBizTypeEnum resBizTypeEnum = null;
|
||||
if (ObjectUtil.isNotEmpty(sysRoleRequest.getResourceBizType())) {
|
||||
resBizTypeEnum = ResBizTypeEnum.DEFAULT.parseToEnum(sysRoleRequest.getResourceBizType().toString());
|
||||
}
|
||||
List<String> totalResourceCode = resourceServiceApi.getTotalResourceCode(resBizTypeEnum);
|
||||
this.sysRoleResourceService.batchSaveResCodes(sysRoleRequest.getRoleId(), totalResourceCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void edit(SysRoleRequest sysRoleRequest) {
|
||||
|
@ -206,7 +231,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
|
|||
LambdaQueryWrapper<SysRole> wrapper = createWrapper(sysRoleRequest);
|
||||
|
||||
// 不查询管理员类型的
|
||||
wrapper.eq(SysRole::getRoleSystemFlag, YesOrNotEnum.N.getCode());
|
||||
wrapper.eq(SysRole::getAdminFlag, YesOrNotEnum.N.getCode());
|
||||
|
||||
Page<SysRole> sysRolePage = this.page(PageFactory.defaultPage(), wrapper);
|
||||
return PageResultFactory.createPageResult(sysRolePage);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.ResBizTypeEnum;
|
||||
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
|
||||
import cn.stylefeng.roses.kernel.system.api.RoleServiceApi;
|
||||
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO;
|
||||
|
@ -165,6 +166,13 @@ public class SysUserAdminServiceImpl implements SysUserAdminService {
|
|||
temp.setRoleId(sysRoleRequest.getRoleId());
|
||||
temp.setTotalSelectFlag(true);
|
||||
this.roleServiceApi.grantButtonGrantAll(temp);
|
||||
|
||||
// 添加用户默认的所有后端接口权限
|
||||
SysRoleRequest tempResRequest = new SysRoleRequest();
|
||||
tempResRequest.setRoleId(sysRoleRequest.getRoleId());
|
||||
tempResRequest.setTotalSelectFlag(true);
|
||||
tempResRequest.setResourceBizType(ResBizTypeEnum.SYSTEM.getCode());
|
||||
this.roleServiceApi.grantResourceV2GrantAll(tempResRequest);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue