【7.2.5】【user】更新添加管理员默认绑定所有权限

pull/37/head
fengshuonan 2022-09-30 16:07:27 +08:00
parent 8a46ec2b5d
commit 9e1affc841
6 changed files with 48 additions and 31 deletions

View File

@ -153,4 +153,12 @@ public interface RoleServiceApi {
*/ */
void del(SysRoleRequest sysRoleRequest); void del(SysRoleRequest sysRoleRequest);
/**
*
*
* @author fengshuonan
* @date 2022/9/29 14:05
*/
void grantResourceV2GrantAll(SysRoleRequest sysRoleRequest);
} }

View File

@ -150,7 +150,7 @@ public class SysRoleAuthController {
*/ */
@PostResource(name = "角色绑定所有接口数据", path = "/sysRole/grantResourceV2/grantAll") @PostResource(name = "角色绑定所有接口数据", path = "/sysRole/grantResourceV2/grantAll")
public ResponseData<?> grantResourceV2GrantAll(@RequestBody @Validated(SysRoleRequest.grantAll.class) SysRoleRequest sysRoleRequest) { public ResponseData<?> grantResourceV2GrantAll(@RequestBody @Validated(SysRoleRequest.grantAll.class) SysRoleRequest sysRoleRequest) {
sysRoleResourceService.grantResourceV2GrantAll(sysRoleRequest); this.sysRoleService.grantResourceV2GrantAll(sysRoleRequest);
return new SuccessResponseData<>(); return new SuccessResponseData<>();
} }

View File

@ -82,11 +82,11 @@ public interface SysRoleResourceService extends IService<SysRoleResource> {
void quickSaveAll(List<SysRoleResource> sysRoleResourceList); void quickSaveAll(List<SysRoleResource> sysRoleResourceList);
/** /**
* *
* *
* @author fengshuonan * @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);
} }

View File

@ -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.db.api.context.DbOperatorContext;
import cn.stylefeng.roses.kernel.rule.constants.RuleConstants; import cn.stylefeng.roses.kernel.rule.constants.RuleConstants;
import cn.stylefeng.roses.kernel.rule.enums.DbTypeEnum; 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.api.pojo.role.request.SysRoleRequest;
import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleResource; import cn.stylefeng.roses.kernel.system.modular.role.entity.SysRoleResource;
import cn.stylefeng.roses.kernel.system.modular.role.mapper.SysRoleResourceMapper; import cn.stylefeng.roses.kernel.system.modular.role.mapper.SysRoleResourceMapper;
@ -59,9 +57,6 @@ public class SysRoleResourceServiceImpl extends ServiceImpl<SysRoleResourceMappe
@Resource(name = "roleResourceCacheApi") @Resource(name = "roleResourceCacheApi")
private CacheOperatorApi<List<String>> roleResourceCacheApi; private CacheOperatorApi<List<String>> roleResourceCacheApi;
@Resource
private ResourceServiceApi resourceServiceApi;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void grantResource(SysRoleRequest sysRoleRequest) { 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 * @author fengshuonan
* @date 2022/9/29 14:34 * @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<>(); ArrayList<SysRoleResource> sysRoleResourceList = new ArrayList<>();
if (ObjectUtil.isNotEmpty(totalResourceCode)) { if (ObjectUtil.isNotEmpty(totalResourceCode)) {

View File

@ -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.factory.PageResultFactory;
import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult; import cn.stylefeng.roses.kernel.db.api.pojo.page.PageResult;
import cn.stylefeng.roses.kernel.rule.constants.SymbolConstant; 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.StatusEnum;
import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum; import cn.stylefeng.roses.kernel.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException; import cn.stylefeng.roses.kernel.rule.exception.base.ServiceException;
import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict; import cn.stylefeng.roses.kernel.rule.pojo.dict.SimpleDict;
import cn.stylefeng.roses.kernel.system.api.MenuServiceApi; 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.UserServiceApi;
import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants; import cn.stylefeng.roses.kernel.system.api.constants.SystemConstants;
import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum; import cn.stylefeng.roses.kernel.system.api.enums.AntdvFrontTypeEnum;
@ -112,6 +114,9 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
@Resource(name = "roleDataScopeCacheApi") @Resource(name = "roleDataScopeCacheApi")
private CacheOperatorApi<List<Long>> roleDataScopeCacheApi; private CacheOperatorApi<List<Long>> roleDataScopeCacheApi;
@Resource
private ResourceServiceApi resourceServiceApi;
@Override @Override
public void add(SysRoleRequest sysRoleRequest) { public void add(SysRoleRequest sysRoleRequest) {
@ -165,6 +170,26 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
roleDataScopeCacheApi.remove(String.valueOf(sysRoleRequest.getRoleId())); 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 @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void edit(SysRoleRequest sysRoleRequest) { public void edit(SysRoleRequest sysRoleRequest) {
@ -206,7 +231,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
LambdaQueryWrapper<SysRole> wrapper = createWrapper(sysRoleRequest); 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); Page<SysRole> sysRolePage = this.page(PageFactory.defaultPage(), wrapper);
return PageResultFactory.createPageResult(sysRolePage); return PageResultFactory.createPageResult(sysRolePage);

View File

@ -1,6 +1,7 @@
package cn.stylefeng.roses.kernel.system.modular.user.service.impl; package cn.stylefeng.roses.kernel.system.modular.user.service.impl;
import cn.hutool.core.util.ObjectUtil; 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.rule.enums.YesOrNotEnum;
import cn.stylefeng.roses.kernel.system.api.RoleServiceApi; import cn.stylefeng.roses.kernel.system.api.RoleServiceApi;
import cn.stylefeng.roses.kernel.system.api.pojo.role.dto.SysRoleDTO; 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.setRoleId(sysRoleRequest.getRoleId());
temp.setTotalSelectFlag(true); temp.setTotalSelectFlag(true);
this.roleServiceApi.grantButtonGrantAll(temp); this.roleServiceApi.grantButtonGrantAll(temp);
// 添加用户默认的所有后端接口权限
SysRoleRequest tempResRequest = new SysRoleRequest();
tempResRequest.setRoleId(sysRoleRequest.getRoleId());
tempResRequest.setTotalSelectFlag(true);
tempResRequest.setResourceBizType(ResBizTypeEnum.SYSTEM.getCode());
this.roleServiceApi.grantResourceV2GrantAll(tempResRequest);
} }
} }