add 权限增加是否外网展示
This commit is contained in:
+1
-1
@@ -210,7 +210,7 @@ public class LoginController {
|
||||
//update-end--Author:wangshuai Date:20200714 for:登出日志没有记录人员
|
||||
log.info(" 账号: " + sysUser.getRealname() + ",退出成功! ");
|
||||
//清空用户登录Token缓存
|
||||
redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + token);
|
||||
redisUtil.del(CommonConstant.PREFIX_USER_TOKEN + username);
|
||||
//清空用户登录Shiro权限缓存
|
||||
redisUtil.del(CommonConstant.PREFIX_USER_SHIRO_CACHE + sysUser.getId());
|
||||
//清空用户的缓存信息(包括部门信息),例如sys:cache:user::<username>
|
||||
|
||||
+2
@@ -30,6 +30,8 @@ public interface SysPermissionMapper extends BaseMapper<SysPermission> {
|
||||
* 根据用户查询用户权限
|
||||
*/
|
||||
public List<SysPermission> queryByUser(@Param("username") String username);
|
||||
|
||||
List<SysPermission> queryByUserExternal(@Param("username") String username);
|
||||
|
||||
/**
|
||||
* 修改菜单状态字段: 是否子节点
|
||||
|
||||
+37
-1
@@ -70,6 +70,42 @@
|
||||
) h order by h.sort_no ASC
|
||||
</select>
|
||||
|
||||
<select id="queryByUserExternal" resultMap="SysPermission">
|
||||
SELECT * FROM (
|
||||
SELECT p.*
|
||||
FROM sys_permission p
|
||||
WHERE (exists(
|
||||
select a.id
|
||||
from sys_role_permission a
|
||||
join sys_role b on a.role_id = b.id
|
||||
join sys_user_role c on c.role_id = b.id
|
||||
join sys_user d on d.id = c.user_id
|
||||
where p.id = a.permission_id
|
||||
AND d.username = #{username,jdbcType=VARCHAR}
|
||||
)
|
||||
or (p.url like '%:code' and p.url like '/online%' and p.hidden = 1)
|
||||
or p.url = '/online')
|
||||
and p.del_flag = 0
|
||||
and p.external_terminal_show = 1
|
||||
<!--update begin Author:lvdandan Date:20200213 for:加入部门权限 -->
|
||||
UNION
|
||||
SELECT p.*
|
||||
FROM sys_permission p
|
||||
WHERE exists(
|
||||
select a.id
|
||||
from sys_depart_role_permission a
|
||||
join sys_depart_role b on a.role_id = b.id
|
||||
join sys_depart_role_user c on c.drole_id = b.id
|
||||
join sys_user d on d.id = c.user_id
|
||||
where p.id = a.permission_id
|
||||
AND d.username = #{username,jdbcType=VARCHAR}
|
||||
)
|
||||
and p.del_flag = 0
|
||||
and p.external_terminal_show = 1
|
||||
<!--update end Author:lvdandan Date:20200213 for:加入部门权限 -->
|
||||
) h
|
||||
order by h.sort_no ASC
|
||||
</select>
|
||||
|
||||
<!-- 根据用户账号查询菜单权限 -->
|
||||
<select id="queryCountByUsername" parameterType="Object" resultType="int">
|
||||
@@ -103,6 +139,6 @@
|
||||
</if>
|
||||
) temp
|
||||
</select>
|
||||
|
||||
|
||||
|
||||
</mapper>
|
||||
+23
@@ -849,6 +849,22 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
return permissionSet;
|
||||
}
|
||||
|
||||
private Set<String> getUserPermissionSetExternal(String username) {
|
||||
Set<String> permissionSet = new HashSet<>();
|
||||
List<SysPermission> permissionList = sysPermissionMapper.queryByUserExternal(username);
|
||||
for (SysPermission po : permissionList) {
|
||||
// // TODO URL规则有问题?
|
||||
// if (oConvertUtils.isNotEmpty(po.getUrl())) {
|
||||
// permissionSet.add(po.getUrl());
|
||||
// }
|
||||
if (oConvertUtils.isNotEmpty(po.getPerms())) {
|
||||
permissionSet.add(po.getPerms());
|
||||
}
|
||||
}
|
||||
log.info("-------通过数据库读取用户拥有的权限Perms------username: "+ username+",Perms size: "+ (permissionSet==null?0:permissionSet.size()) );
|
||||
return permissionSet;
|
||||
}
|
||||
|
||||
/**
|
||||
* 判断online菜单是否有权限
|
||||
* @param onlineAuthDTO
|
||||
@@ -904,6 +920,13 @@ public class SysBaseApiImpl implements ISysBaseAPI {
|
||||
return getUserPermissionSet(username);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<String> queryUserAuthsExternal(String username) {
|
||||
return getUserPermissionSetExternal(username);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 36根据多个用户账号(逗号分隔),查询返回多个用户信息
|
||||
* @param usernames
|
||||
|
||||
+2
-2
@@ -730,8 +730,8 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
// 生成token
|
||||
String token = JwtUtil.sign(username, syspassword);
|
||||
// 设置token缓存有效时间
|
||||
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token);
|
||||
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME * 2 / 1000);
|
||||
redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + username, token);
|
||||
redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + username, JwtUtil.EXPIRE_TIME * 2 / 1000);
|
||||
|
||||
// 获取用户部门信息
|
||||
JSONObject obj = new JSONObject();
|
||||
|
||||
Reference in New Issue
Block a user