提交 cade5257 作者: obcy

添加权限判断接口

上级 a3d3d1a9
......@@ -128,4 +128,17 @@ public class KbAuthorizedUserController {
return authorizedUserService.knowBelongWho(knowledgeProjectId,knowledgeId);
}
/**
* 判断每条资讯是否有操作权限
* private String knowledgeProjectId;
* private String kbKnowledgeId;
* */
@GetMapping("/operationAuthority")
public Result<?> operationAuthority(
@RequestParam(name="knowledgeProjectId") String knowledgeProjectId,
@RequestParam(name="operation") String operation,
@RequestParam(name="kbKnowledgeId") String kbKnowledgeId){
return authorizedUserService.operationAuthority(knowledgeProjectId,kbKnowledgeId,operation);
}
}
......@@ -57,4 +57,13 @@ public interface KbAuthorizedUserMapper extends BaseMapper<KbAuthorizedUser> {
"GROUP BY a.id"
)
KbAuthorizedUser getOne(@Param(Constants.WRAPPER) QueryWrapper<KbAuthorizedUser> query);
@Select("SELECT a.user_id,a.knowledge_project_id,a.role_id,b.role_code,b.role_name,d.permission_code,d.permission_name FROM kb_user_role_map a " +
"LEFT JOIN kb_role b ON a.role_id = b.id " +
"LEFT JOIN kb_role_permission_map c ON b.id = c.role_id " +
"LEFT JOIN kb_permissions d ON c.permission_id = d.id " +
"${ew.customSqlSegment}"
)
List<UserKnowPermissionVo> getUserPermissionByquery(@Param(Constants.WRAPPER) QueryWrapper<KbAuthorizedUser> query);
}
......@@ -50,4 +50,5 @@ public interface KbAuthorizedUserService extends IService<KbAuthorizedUser> {
Result<?> editBatch(List<KbAuthorizedUser> authorizedUsers);
Result<?> operationAuthority(String knowledgeProjectId, String kbKnowledgeId, String operation);
}
......@@ -16,10 +16,7 @@ import com.zzsn.knowbase.mapper.KbAuthorizedUserMapper;
import com.zzsn.knowbase.mapper.KbRoleMapper;
import com.zzsn.knowbase.service.*;
import com.zzsn.knowbase.util.SpringContextUtils;
import com.zzsn.knowbase.vo.AddUserPermissKnowsVo;
import com.zzsn.knowbase.vo.Result;
import com.zzsn.knowbase.vo.RolePermissonVo;
import com.zzsn.knowbase.vo.UserInfoVo;
import com.zzsn.knowbase.vo.*;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
......@@ -491,6 +488,53 @@ public class KbAuthorizedUserServiceImpl extends ServiceImpl<KbAuthorizedUserMap
}
@Override
public Result<?> operationAuthority(String knowledgeProjectId, String kbKnowledgeId, String operation) {
KbAuthorizedUser userInfo = SpringContextUtils.getUserInfo();
if (userInfo.getIsAll() == 0){
QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>();
query.eq("a.id",userInfo.getId());
List<RolePermissonVo> rolePermission = kbRoleMapper.getRolePermission(query);
if (CollectionUtil.isNotEmpty(rolePermission)){
List<String> collect = rolePermission.stream().map(RolePermissonVo::getPermissionCode).collect(Collectors.toList());
if (collect.contains(operation)){
return Result.OK(true);
}
}
}else {
QueryWrapper<KbAuthorizedUser> query = new QueryWrapper<>();
query.eq("a.user_id",userInfo.getId());
query.eq("a.knowledge_project_id",knowledgeProjectId);
List<UserKnowPermissionVo> userPermissionByquery = authorizedUserMapper.getUserPermissionByquery(query);
if (CollectionUtil.isNotEmpty(userPermissionByquery)){
List<String> collect = userPermissionByquery.stream().map(UserKnowPermissionVo::getPermissionCode).collect(Collectors.toList());
if (collect.contains(operation)){
return Result.OK(true);
}
}
List<KbAuthuserKnowMap> list = kbAuthuserKnowMapService.list(Wrappers.<KbAuthuserKnowMap>lambdaQuery()
.eq(KbAuthuserKnowMap::getAuthUserId, userInfo.getId())
.eq(KbAuthuserKnowMap::getKnowledgeProjectId, knowledgeProjectId)
.eq(KbAuthuserKnowMap::getKnowledgeId, kbKnowledgeId));
HashSet<String> pre = new HashSet<>();
list.forEach(e->{
if (StringUtils.isNotBlank(e.getPermissonCodes())){
pre.addAll(new HashSet<>(Arrays.asList(e.getPermissonCodes().split(","))));
}
});
if (pre.contains(operation)){
return Result.OK(true);
}
}
return Result.OK(false);
}
@Override
@Transactional
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论