feat:企标新权限
This commit is contained in:
@@ -62,6 +62,11 @@ public class FieldCommon {
|
|||||||
public static final String COLLECTION_FLAG = "collectionFlag";
|
public static final String COLLECTION_FLAG = "collectionFlag";
|
||||||
// 查看详情权限标识
|
// 查看详情权限标识
|
||||||
public static final String DETAIL_FLAG = "detailFlag";
|
public static final String DETAIL_FLAG = "detailFlag";
|
||||||
|
// 编辑删除权限标识
|
||||||
|
public static final String EDIT_FLAG = "editFlag";
|
||||||
|
// 创建人字段
|
||||||
|
public static final String CREATE_BY = "create_by";
|
||||||
|
|
||||||
// 我的收藏
|
// 我的收藏
|
||||||
public static final String MY_COLLECTION = "MyCollection";
|
public static final String MY_COLLECTION = "MyCollection";
|
||||||
// 主键
|
// 主键
|
||||||
|
|||||||
@@ -63,5 +63,7 @@ public class ResultCommon {
|
|||||||
|
|
||||||
public static final String TASK_HANDLER_ERROR = "task.handler.error"; // 只有处理人可以操作
|
public static final String TASK_HANDLER_ERROR = "task.handler.error"; // 只有处理人可以操作
|
||||||
|
|
||||||
|
public static final String NO_AUTH = "no.auth"; // 只有处理人可以操作
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+11
@@ -36,6 +36,7 @@ import com.jero.modules.personal.service.ILawsBrowsingHistoryService;
|
|||||||
import com.jero.modules.personal.service.ILawsStandardCollectionService;
|
import com.jero.modules.personal.service.ILawsStandardCollectionService;
|
||||||
import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
import com.jero.modules.split.entity.SarFileSplitInfoEO;
|
||||||
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
import com.jero.modules.split.service.ISarFileSplitInfoService;
|
||||||
|
import com.jero.modules.sys.utils.UserUtils;
|
||||||
import com.jero.modules.system.entity.SysDepart;
|
import com.jero.modules.system.entity.SysDepart;
|
||||||
import com.jero.modules.system.entity.SysDictItem;
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
@@ -166,6 +167,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) {
|
||||||
// 是否能查看详情
|
// 是否能查看详情
|
||||||
esAuthUserService.detailFlagSet(infoPage.getRecords());
|
esAuthUserService.detailFlagSet(infoPage.getRecords());
|
||||||
|
// 是否能编辑删除
|
||||||
|
esAuthUserService.editFlagSet(infoPage.getRecords());
|
||||||
}
|
}
|
||||||
// 是否收藏判断标识
|
// 是否收藏判断标识
|
||||||
collectionFlag(infoPage.getRecords());
|
collectionFlag(infoPage.getRecords());
|
||||||
@@ -1047,6 +1050,14 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
**/
|
**/
|
||||||
@Override
|
@Override
|
||||||
public String deleteByIdsAndModule(String ids, String module) {
|
public String deleteByIdsAndModule(String ids, String module) {
|
||||||
|
// 如果是企标的话 校验删除的ids是否有权限
|
||||||
|
if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)) {
|
||||||
|
boolean auth = esAuthUserService.verifyESDeleteAuth(ids, UserUtils.getUserId());
|
||||||
|
if (!auth) {
|
||||||
|
throw new JeroBootException(MessageUtils.getMessage(ResultCommon.NO_AUTH));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 获取要操作的表名
|
// 获取要操作的表名
|
||||||
String tableName = TableNameEnum.getTableName(module);
|
String tableName = TableNameEnum.getTableName(module);
|
||||||
// 获取要删除的id集合
|
// 获取要删除的id集合
|
||||||
|
|||||||
+12
@@ -16,7 +16,19 @@ public interface EnterpriseStandardAuthUserService extends IService<EnterpriseSt
|
|||||||
|
|
||||||
void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission);
|
void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查看详情权限设置
|
||||||
|
* @param records
|
||||||
|
*/
|
||||||
void detailFlagSet(List<Map<String, Object>> records);
|
void detailFlagSet(List<Map<String, Object>> records);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编辑权限设置
|
||||||
|
* @param records
|
||||||
|
*/
|
||||||
|
void editFlagSet(List<Map<String, Object>> records);
|
||||||
|
|
||||||
boolean detailPermissionByUser(String standardNumber, String userId, String user);
|
boolean detailPermissionByUser(String standardNumber, String userId, String user);
|
||||||
|
|
||||||
|
boolean verifyESDeleteAuth(String ids, String userId);
|
||||||
}
|
}
|
||||||
|
|||||||
+78
-12
@@ -18,10 +18,14 @@ import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
|
|||||||
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
|
import com.jero.modules.sys.entity.LawsEnterpriseStandardLevel;
|
||||||
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
|
import com.jero.modules.sys.service.ILawsEnterpriseStandardLevelService;
|
||||||
import com.jero.modules.sys.utils.UserUtils;
|
import com.jero.modules.sys.utils.UserUtils;
|
||||||
|
import com.jero.modules.system.entity.SysDepart;
|
||||||
import com.jero.modules.system.entity.SysUser;
|
import com.jero.modules.system.entity.SysUser;
|
||||||
|
import com.jero.modules.system.service.ISysDepartService;
|
||||||
|
import com.jero.modules.system.service.ISysRoleService;
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
import com.jero.modules.system.service.ISysUserService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -45,12 +49,23 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|||||||
@Resource
|
@Resource
|
||||||
private ISysUserService sysUserService;
|
private ISysUserService sysUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysDepartService sysDepartService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ILawsEnterpriseStandardService enterpriseStandardService;
|
private ILawsEnterpriseStandardService enterpriseStandardService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private ILawsEnterpriseStandardLevelService standardLevelService;
|
private ILawsEnterpriseStandardLevelService standardLevelService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysRoleService sysRoleService;
|
||||||
|
|
||||||
|
// 注入draftDepartName
|
||||||
|
@Value("${draftDepartName}")
|
||||||
|
private String draftDepartName;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission) {
|
public void saveTempPermission(LawsStandardTempPermission lawsStandardTempPermission) {
|
||||||
List<EnterpriseStandardAuthUser> esAuthUsers = new ArrayList<>();
|
List<EnterpriseStandardAuthUser> esAuthUsers = new ArrayList<>();
|
||||||
@@ -74,6 +89,7 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|||||||
SysUser currentUser = sysUserService.getById(UserUtils.getUserId());
|
SysUser currentUser = sysUserService.getById(UserUtils.getUserId());
|
||||||
String userId = currentUser.getId();
|
String userId = currentUser.getId();
|
||||||
String deptId = currentUser.getDepartIds();
|
String deptId = currentUser.getDepartIds();
|
||||||
|
SysDepart dept = sysDepartService.getById(deptId);
|
||||||
List<String> standardIds = new ArrayList<>();
|
List<String> standardIds = new ArrayList<>();
|
||||||
records.forEach(kv -> standardIds.add(String.valueOf(kv.get(FieldCommon.ID))));
|
records.forEach(kv -> standardIds.add(String.valueOf(kv.get(FieldCommon.ID))));
|
||||||
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
|
List<LawsEnterpriseStandard> esList = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>()
|
||||||
@@ -103,11 +119,22 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|||||||
List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list();
|
List<LawsEnterpriseStandardLevel> standardLevelList = standardLevelService.list();
|
||||||
List<String> levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
|
List<String> levelDeptIds = standardLevelList.stream().map(LawsEnterpriseStandardLevel::getDeptId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 起草部门有所有企标的查看权限
|
||||||
|
if (dept.getDepartName().equals(draftDepartName)) {
|
||||||
|
// 全部设置为有权限
|
||||||
|
records.forEach(kv -> kv.put(FieldCommon.DETAIL_FLAG, true));
|
||||||
|
}
|
||||||
for (Map<String, Object> map : records) {
|
for (Map<String, Object> map : records) {
|
||||||
String standardId = (String) map.get(FieldCommon.ID);
|
String standardId = (String) map.get(FieldCommon.ID);
|
||||||
LawsEnterpriseStandard es = esMap.get(standardId);
|
LawsEnterpriseStandard es = esMap.get(standardId);
|
||||||
// 等级分类
|
// 等级分类
|
||||||
String gradeClassification = es.getGradeClassification();
|
String gradeClassification = es.getGradeClassification();
|
||||||
|
String mainDraftUser = es.getMainDraftingUser();
|
||||||
|
// 主起草人可以看
|
||||||
|
if (userId.equals(mainDraftUser)) {
|
||||||
|
map.put(FieldCommon.DETAIL_FLAG, true);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
// 全公司可以看
|
// 全公司可以看
|
||||||
if (gradeClassification.equals("1")) {
|
if (gradeClassification.equals("1")) {
|
||||||
map.put(FieldCommon.DETAIL_FLAG, true);
|
map.put(FieldCommon.DETAIL_FLAG, true);
|
||||||
@@ -132,21 +159,40 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|||||||
map.put(FieldCommon.DETAIL_FLAG, true);
|
map.put(FieldCommon.DETAIL_FLAG, true);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// 起草部门
|
|
||||||
String mainDraftDeptId = es.getMainDraftingUnit();
|
|
||||||
if (deptId.equals(mainDraftDeptId)) {
|
|
||||||
map.put(FieldCommon.DETAIL_FLAG, true);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
map.put(FieldCommon.DETAIL_FLAG, false);
|
map.put(FieldCommon.DETAIL_FLAG, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void editFlagSet(List<Map<String, Object>> records) {
|
||||||
|
// 只有创建人和管理员才有维护的权限
|
||||||
|
String userId = UserUtils.getUserId();
|
||||||
|
SysUser currentUser = sysUserService.getById(userId);
|
||||||
|
if (currentUser.getRoleCode().equals(FieldCommon.ROLE_ADMIN)) {
|
||||||
|
records.forEach(kv -> kv.put(FieldCommon.EDIT_FLAG, true));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
for (Map<String, Object> map : records) {
|
||||||
|
String createBy = (String) map.get(FieldCommon.CREATE_BY);
|
||||||
|
if (userId.equals(createBy)) {
|
||||||
|
map.put(FieldCommon.EDIT_FLAG, true);
|
||||||
|
} else {
|
||||||
|
map.put(FieldCommon.EDIT_FLAG, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean detailPermissionByUser(String standardId, String standardNumber, String userId) {
|
public boolean detailPermissionByUser(String standardId, String standardNumber, String userId) {
|
||||||
SysUser user = sysUserService.getById(userId);
|
SysUser user = sysUserService.getById(userId);
|
||||||
String deptId = user.getDepartIds();
|
String deptId = user.getDepartIds();
|
||||||
|
SysDepart dept = sysDepartService.getById(deptId);
|
||||||
|
// 起草部门有全部企标的查看权限
|
||||||
|
if (dept.getDepartName().equals(draftDepartName)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
if (StringUtils.isBlank(standardId) && StringUtils.isBlank(standardNumber)) {
|
if (StringUtils.isBlank(standardId) && StringUtils.isBlank(standardNumber)) {
|
||||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "id和标准号不能同时为空");
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "id和标准号不能同时为空");
|
||||||
}
|
}
|
||||||
@@ -168,12 +214,6 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|||||||
if (levelDeptIds.contains(deptId)) {
|
if (levelDeptIds.contains(deptId)) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
// 主起草部门
|
|
||||||
String mainDraftDeptId = es.getMainDraftingUnit();
|
|
||||||
if (deptId.equals(mainDraftDeptId)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询临时授权人员
|
// 查询临时授权人员
|
||||||
@@ -197,6 +237,32 @@ public class EnterpriseStandardAuthUserServiceImpl extends ServiceImpl<Enterpris
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验用户是否有删除权限
|
||||||
|
* @param ids
|
||||||
|
* @param userId
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean verifyESDeleteAuth(String ids, String userId) {
|
||||||
|
if (StringUtils.isBlank(ids)) {
|
||||||
|
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "ids不能为空");
|
||||||
|
}
|
||||||
|
// 管理员有所有权限
|
||||||
|
SysUser user = sysUserService.getById(userId);
|
||||||
|
if (user.getRoleCode().equals("admin")) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
// 创建人可以删除
|
||||||
|
List<LawsEnterpriseStandard> list = enterpriseStandardService.list(new LambdaQueryWrapper<LawsEnterpriseStandard>().in(LawsEnterpriseStandard::getId, ids));
|
||||||
|
// 如果不是创建人,则直接返回false
|
||||||
|
for (LawsEnterpriseStandard es : list) {
|
||||||
|
if (!es.getCreateBy().equals(userId)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -47,4 +47,5 @@ select.level.two.tree.node=\u8BF7\u5148\u9009\u62E9\u4E8C\u7EA7\u53CA\u4EE5\u4E0
|
|||||||
export.error=\u5BFC\u51FA\u9519\u8BEF
|
export.error=\u5BFC\u51FA\u9519\u8BEF
|
||||||
import.error=\u5BFC\u5165\u9519\u8BEF
|
import.error=\u5BFC\u5165\u9519\u8BEF
|
||||||
please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305
|
please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305
|
||||||
task.handler.error=\u53EA\u6709\u5904\u7406\u4EBA\u53EF\u4EE5\u64CD\u4F5C
|
task.handler.error=\u53EA\u6709\u5904\u7406\u4EBA\u53EF\u4EE5\u64CD\u4F5C
|
||||||
|
no.auth=\u6CA1\u6709\u64CD\u4F5C\u6743\u9650
|
||||||
@@ -50,4 +50,5 @@ select.level.two.tree.node=Please select a level 2 or lower system first
|
|||||||
export.error=Export error
|
export.error=Export error
|
||||||
import.error=Import error
|
import.error=Import error
|
||||||
please.upload.zip.archive=Data import failed, please upload zip archive
|
please.upload.zip.archive=Data import failed, please upload zip archive
|
||||||
task.handler.error=Only the handler can operate
|
task.handler.error=Only the handler can operate
|
||||||
|
no.auth=No permission to operate
|
||||||
@@ -16,7 +16,7 @@ message.exists.standard.number=\u6807\u51C6\u7F16\u53F7\u5DF2\u7ECF\u5B58\u5728
|
|||||||
message.no.exists.param=\u53C2\u6570{0}\u4E0D\u5B58\u5728
|
message.no.exists.param=\u53C2\u6570{0}\u4E0D\u5B58\u5728
|
||||||
message.no.permission=\u6CA1\u6709\u6570\u636E\u64CD\u4F5C\u6743\u9650
|
message.no.permission=\u6CA1\u6709\u6570\u636E\u64CD\u4F5C\u6743\u9650
|
||||||
message.select.data=\u8BF7\u9009\u62E9\u6570\u636E
|
message.select.data=\u8BF7\u9009\u62E9\u6570\u636E
|
||||||
message.exist.sub.folders=文件夹下有子文件夹 ,该文件夹不允许删除
|
message.exist.sub.folders=\u6587\u4EF6\u5939\u4E0B\u6709\u5B50\u6587\u4EF6\u5939 \uFF0C\u8BE5\u6587\u4EF6\u5939\u4E0D\u5141\u8BB8\u5220\u9664
|
||||||
|
|
||||||
successfully.cleared=\u6E05\u9664\u6210\u529F
|
successfully.cleared=\u6E05\u9664\u6210\u529F
|
||||||
successfully.deleted=\u5220\u9664\u6210\u529F
|
successfully.deleted=\u5220\u9664\u6210\u529F
|
||||||
@@ -49,4 +49,5 @@ select.level.two.tree.node=\u8BF7\u5148\u9009\u62E9\u4E8C\u7EA7\u53CA\u4EE5\u4E0
|
|||||||
export.zip.archive.error=\u5BFC\u51FA\u9519\u8BEF
|
export.zip.archive.error=\u5BFC\u51FA\u9519\u8BEF
|
||||||
import.zip.archive.error=\u5BFC\u5165\u9519\u8BEF
|
import.zip.archive.error=\u5BFC\u5165\u9519\u8BEF
|
||||||
please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305
|
please.upload.zip.archive=\u6570\u636E\u5BFC\u5165\u5931\u8D25\uFF0C\u8BF7\u4E0A\u4F20zip\u538B\u7F29\u5305
|
||||||
task.handler.error=\u53EA\u6709\u5904\u7406\u4EBA\u53EF\u4EE5\u64CD\u4F5C
|
task.handler.error=\u53EA\u6709\u5904\u7406\u4EBA\u53EF\u4EE5\u64CD\u4F5C
|
||||||
|
no.auth=\u6CA1\u6709\u64CD\u4F5C\u6743\u9650
|
||||||
Reference in New Issue
Block a user