Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xzxt-shiro
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
常超
xzxt-shiro
Commits
f6d5bccf
Commit
f6d5bccf
authored
Jul 25, 2018
by
chang_chao@founder.com.cn
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
bf86a1d0
6439ca0b
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
357 additions
and
91 deletions
+357
-91
doc/sql/A0005_20180725重建用户权限视图.txt
+38
-0
src/main/java/com/xzxtshiro/controller/AccessController.java
+9
-4
src/main/java/com/xzxtshiro/controller/admin/PermissionNewController.java
+27
-9
src/main/java/com/xzxtshiro/controller/admin/SysRoleController.java
+33
-16
src/main/java/com/xzxtshiro/controller/admin/SysUserController.java
+20
-19
src/main/java/com/xzxtshiro/dao/SysPermissionNewDao.java
+17
-0
src/main/java/com/xzxtshiro/dao/SysRoleDao.java
+1
-1
src/main/java/com/xzxtshiro/mapper/SysDictitemMapper.xml
+4
-1
src/main/java/com/xzxtshiro/mapper/SysPermissionNewMapper.xml
+31
-2
src/main/java/com/xzxtshiro/mapper/SysRoleMapper.xml
+19
-6
src/main/java/com/xzxtshiro/mapper/SysUserMapper.xml
+3
-2
src/main/java/com/xzxtshiro/pojo/SysRole.java
+2
-0
src/main/java/com/xzxtshiro/service/SysPermissionNewService.java
+7
-0
src/main/java/com/xzxtshiro/service/imp/SysPermissionNewServiceImpl.java
+10
-0
src/main/java/com/xzxtshiro/util/ZtreeDataUtil.java
+97
-0
src/main/webapp/WEB-INF/jsp/admin/permission/add.jsp
+5
-5
src/main/webapp/WEB-INF/jsp/admin/permission/update.jsp
+9
-10
src/main/webapp/WEB-INF/jsp/admin/role/update.jsp
+7
-7
src/main/webapp/WEB-INF/jsp/admin/user/update.jsp
+7
-4
src/main/webapp/WEB-INF/jsp/index.jsp
+0
-1
src/main/webapp/resources/common/common.js
+11
-4
No files found.
doc/sql/A0005_20180725重建用户权限视图.txt
0 → 100644
View file @
f6d5bccf
DROP VIEW XZXT.VW_USER_PERMISSION;
DROP VIEW XZXT.VW_USER_PERMISSION;
/* Formatted on 2018/7/25 星期三 17:03:37 (QP5 v5.115.810.9015) */
CREATE OR REPLACE FORCE VIEW XZXT.VW_USER_PERMISSION
(
ID,
NAME,
MENUNAME,
PERMISSION,
URL,
FLAG,
TYPE,
ZINDEX,
PID,
USERID
)
AS
SELECT sys_permission_new.id AS id,
sys_permission_new.name AS name,
sys_permission_new.MENUNAME AS MENUNAME,
sys_permission_new.PERMISSION AS PERMISSION,
sys_permission_new.url AS url,
sys_permission_new.FLAG AS FLAG,
sys_permission_new.TYPE AS TYPE,
sys_permission_new.zindex AS zindex,
sys_permission_new.PID AS PID,
sys_user_role.USER_ID AS userid
FROM ( ( sys_user_role
LEFT JOIN
Sys_role_permission
ON ( (sys_user_role.role_id = sys_role_permission.ROLEID
AND sys_user_role.scbz = 0)))
LEFT JOIN
sys_permission_new
ON ( (Sys_role_permission.PERMISSIONID = sys_permission_new.id
AND sys_permission_new.scbz = 0)));
src/main/java/com/xzxtshiro/controller/AccessController.java
View file @
f6d5bccf
...
...
@@ -9,9 +9,8 @@ import org.springframework.stereotype.Controller;
import
org.springframework.ui.Model
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
java.util.List
;
/**
...
...
@@ -26,6 +25,7 @@ public class AccessController {
SysUserService
userService
;
@RequestMapping
(
value
=
"/login"
,
method
=
RequestMethod
.
POST
)
@ResponseBody
public
String
login
(
SysUser
user
,
Model
model
){
String
msg
=
null
;
StringBuffer
perList
=
null
;
...
...
@@ -48,13 +48,18 @@ public class AccessController {
}
}
@RequestMapping
(
value
=
"/queryPermission"
,
method
=
RequestMethod
.
POST
)
public
String
queryPermission
(
SysUser
user
){
@ResponseBody
public
String
queryPermission
(
SysUser
user
,
Model
model
){
System
.
out
.
println
(
"id============================="
+
user
.
getId
());
List
<
SysPermissionNew
>
list
=
userService
.
selectSysPermissionNewByUserId
(
user
.
getId
());
StringBuffer
perList
=
new
StringBuffer
();
for
(
SysPermissionNew
per:
list
)
{
if
(
per
.
getId
()!=
null
){
perList
.
append
(
per
.
getId
()+
","
);
}
return
perList
.
toString
();
}
String
message
=
perList
.
toString
();
return
message
;
}
}
src/main/java/com/xzxtshiro/controller/admin/PermissionNewController.java
View file @
f6d5bccf
...
...
@@ -2,7 +2,11 @@ package com.xzxtshiro.controller.admin;
import
com.xzxtshiro.pojo.BaseModel
;
import
com.xzxtshiro.pojo.SysPermissionNew
;
import
com.xzxtshiro.pojo.SysUser
;
import
com.xzxtshiro.service.SysPermissionNewService
;
import
com.xzxtshiro.service.SysUserService
;
import
com.xzxtshiro.util.TokenUtil
;
import
com.xzxtshiro.util.ZtreeDataUtil
;
import
net.sf.json.JSONArray
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
...
...
@@ -26,6 +30,9 @@ public class PermissionNewController {
@Autowired
private
SysPermissionNewService
permissionService
;
@Autowired
private
SysUserService
userService
;
/**
* 跳转到权限列表
*
...
...
@@ -48,7 +55,15 @@ public class PermissionNewController {
@ResponseBody
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
BaseModel
list
(
SysPermissionNew
permission
)
{
return
permissionService
.
selectSysPermissionNewPage
(
permission
);
BaseModel
perPage
=
null
;
SysUser
user
=
TokenUtil
.
getUser
();
if
(
"admin"
.
equals
(
user
.
getUsername
())){
perPage
=
permissionService
.
selectSysPermissionNewPage
(
permission
);
}
else
{
permission
.
setUserId
(
user
.
getId
());
perPage
=
permissionService
.
selectSysPermissionNewPageByUserId
(
permission
);
}
return
perPage
;
}
/**
...
...
@@ -87,11 +102,9 @@ public class PermissionNewController {
Integer
add
=
permissionService
.
add
(
permission
);
if
(
add
==
0
)
{
//添加失败,重新添加
model
.
addAttribute
(
"
p
ermission"
,
permission
);
model
.
addAttribute
(
"
oldP
ermission"
,
permission
);
model
.
addAttribute
(
"msg"
,
"权限ID已存在,请重新输入!"
);
List
<
SysPermissionNew
>
parantMenus
=
permissionService
.
selectAllPermissions
();
JSONArray
json
=
JSONArray
.
fromObject
(
parantMenus
);
model
.
addAttribute
(
"parantMenus"
,
json
);
setZtreeData
(
model
,
userService
,
permissionService
);
return
"/admin/permission/add"
;
}
else
{
return
"redirect:/admin/permission/index?msg=success"
;
...
...
@@ -108,10 +121,8 @@ public class PermissionNewController {
@RequestMapping
(
value
=
"/update/{id}"
,
method
=
RequestMethod
.
GET
)
public
String
updateIndex
(
@PathVariable
(
"id"
)
String
id
,
Model
model
)
{
SysPermissionNew
permission
=
permissionService
.
selectPermissionById
(
id
);
List
<
SysPermissionNew
>
parantMenus
=
permissionService
.
selectAllPermissions
();
JSONArray
json
=
JSONArray
.
fromObject
(
parantMenus
);
model
.
addAttribute
(
"parantMenus"
,
json
);
model
.
addAttribute
(
"permission"
,
permission
);
setZtreeData
(
model
,
userService
,
permissionService
);
model
.
addAttribute
(
"oldPermission"
,
permission
);
return
"admin/permission/update"
;
}
...
...
@@ -144,4 +155,11 @@ public class PermissionNewController {
}
}
/**
* 设置添加与修改页面的ztree数据
*/
public
static
void
setZtreeData
(
Model
model
,
SysUserService
userService
,
SysPermissionNewService
sysPermissionService
){
new
ZtreeDataUtil
().
setPermissionZtreeData
(
model
,
userService
,
sysPermissionService
);
}
}
src/main/java/com/xzxtshiro/controller/admin/SysRoleController.java
View file @
f6d5bccf
...
...
@@ -2,9 +2,12 @@ package com.xzxtshiro.controller.admin;
import
com.xzxtshiro.pojo.BaseModel
;
import
com.xzxtshiro.pojo.SysRole
;
import
com.xzxtshiro.pojo.SysUser
;
import
com.xzxtshiro.service.SysPermissionNewService
;
import
com.xzxtshiro.service.SysRoleService
;
import
net.sf.json.JSONArray
;
import
com.xzxtshiro.service.SysUserService
;
import
com.xzxtshiro.util.TokenUtil
;
import
com.xzxtshiro.util.ZtreeDataUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
...
...
@@ -30,6 +33,9 @@ public class SysRoleController {
@Autowired
private
SysPermissionNewService
sysPermissionService
;
@Autowired
private
SysUserService
userService
;
/**
* 跳转到角色列表
*
...
...
@@ -44,14 +50,28 @@ public class SysRoleController {
}
/**
* 根据条件获取角色列表
*
* 在用户界面,角色的赋值和查询作了如下控制
* 角色显示,应当满足这两点:
* 1.除admin用户之外,所有用户只显示它自己拥有的角色,
* 2.举个栗子:市级管理员/县级管理员在给下面的人赋角色时,只能看到admin给他
* 赋予的角色,不能看到更高的角色,需要更高权限,需要向admin申请
* 所以,在角色列表展示部分,应当满足如下要求:
* 除admin用户只展示登陆用户所拥有的角色
* @param
* @return
*/
@ResponseBody
@RequestMapping
(
value
=
"/list"
,
method
=
RequestMethod
.
GET
)
public
BaseModel
list
(
SysRole
role
)
{
//获取当前登录用户
SysUser
dlUser
=
TokenUtil
.
getUser
();
if
(
"admin"
.
equals
(
dlUser
.
getUsername
())){
return
sysRoleService
.
selectSysRolePage
(
role
);
}
else
{
role
.
setUserId
(
dlUser
.
getId
());
return
sysRoleService
.
selectSysRolePage
(
role
);
}
}
...
...
@@ -63,13 +83,7 @@ public class SysRoleController {
*/
@RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
GET
)
public
String
addIndex
(
Model
model
)
{
/**所有的权限*/
JSONArray
json
=
sysPermissionService
.
selectAllPermissions
();
model
.
addAttribute
(
"permission"
,
json
);
/**获取所有的角色*/
JSONArray
rolejson
=
sysRoleService
.
selectSysRolesByCondition
(
null
);
model
.
addAttribute
(
"role"
,
rolejson
);
setZtreeData
(
model
,
userService
,
sysRoleService
,
sysPermissionService
);
return
"admin/role/add"
;
}
...
...
@@ -89,6 +103,14 @@ public class SysRoleController {
}
/**
* 设置更新和添加页面所需要的权限和角色ztree数据
*/
public
static
void
setZtreeData
(
Model
model
,
SysUserService
userService
,
SysRoleService
roleService
,
SysPermissionNewService
sysPermissionService
){
new
ZtreeDataUtil
().
setRoleAndPermission
(
model
,
userService
,
roleService
,
sysPermissionService
);
}
/**
* 跳转到角色修改页面
*
* @param
...
...
@@ -97,15 +119,10 @@ public class SysRoleController {
*/
@RequestMapping
(
value
=
"/update/{roleId}"
,
method
=
RequestMethod
.
GET
)
public
String
updateIndex
(
@PathVariable
(
"roleId"
)
String
roleId
,
Model
model
)
{
setZtreeData
(
model
,
userService
,
sysRoleService
,
sysPermissionService
);
Map
<
String
,
Object
>
roleMap
=
sysRoleService
.
selectSysRoleById
(
roleId
);
/**所有的权限*/
JSONArray
json
=
sysPermissionService
.
selectAllPermissions
();
/**获取所有的角色*/
JSONArray
rolejson
=
sysRoleService
.
selectSysRolesByCondition
(
null
);
model
.
addAttribute
(
"AllPermission"
,
json
);
model
.
addAttribute
(
"oldPermission"
,
roleMap
.
get
(
"oldPermission"
));
model
.
addAttribute
(
"AllRole"
,
rolejson
);
model
.
addAttribute
(
"role"
,
roleMap
.
get
(
"role"
));
model
.
addAttribute
(
"oldRole"
,
roleMap
.
get
(
"role"
));
return
"admin/role/update"
;
}
...
...
src/main/java/com/xzxtshiro/controller/admin/SysUserController.java
View file @
f6d5bccf
...
...
@@ -9,6 +9,7 @@ import com.xzxtshiro.service.SysRoleService;
import
com.xzxtshiro.service.SysUserService
;
import
com.xzxtshiro.util.Base64PasswordEncrypter
;
import
com.xzxtshiro.util.TokenUtil
;
import
com.xzxtshiro.util.ZtreeDataUtil
;
import
net.sf.json.JSONArray
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
...
...
@@ -46,7 +47,7 @@ public class SysUserController {
/*if (msg!=null&&msg!=""){
model.addAttribute("msg","用户添加成功!");
}*/
set
AddCS
(
model
,
dictitemService
,
roleService
);
set
ZtreeData
(
model
,
userService
,
dictitemService
,
roleService
);
return
"admin/user/list"
;
}
...
...
@@ -73,19 +74,19 @@ public class SysUserController {
System
.
out
.
println
(
"usergrade===================="
+
usergrade
);
if
(
usergrade
!=
null
&&!
""
.
equals
(
usergrade
)){
dw
=
getString
(
usergrade
,
dlUser
.
getUnitcode
(),
dw
);
dw
=
subUnitCode
(
usergrade
,
dlUser
.
getUnitcode
(),
dw
);
}
}
else
{
//unitcode不为空,则根据unitcode+countycode双层查询
if
(
usergrade
!=
null
&&!
""
.
equals
(
usergrade
)){
dw
=
getString
(
usergrade
,
user
.
getUnitcode
(),
dw
);
dw
=
subUnitCode
(
usergrade
,
user
.
getUnitcode
(),
dw
);
}
}
user
.
setCountycode
(
dw
);
return
userService
.
selectSysUserPage
(
user
);
}
private
static
String
getString
(
String
usergrade
,
String
unitcode
,
String
dw
)
{
private
static
String
subUnitCode
(
String
usergrade
,
String
unitcode
,
String
dw
)
{
if
(
usergrade
.
equals
(
"S"
)
||
usergrade
.
equals
(
"T"
))
{
dw
=
unitcode
.
substring
(
0
,
2
);
}
else
if
(
usergrade
.
equals
(
"D"
))
{
...
...
@@ -109,26 +110,26 @@ public class SysUserController {
*/
@RequestMapping
(
value
=
"/add"
,
method
=
RequestMethod
.
GET
)
public
String
addIndex
(
Model
model
)
{
set
AddCS
(
model
,
dictitemService
,
roleService
);
set
ZtreeData
(
model
,
userService
,
dictitemService
,
roleService
);
return
"admin/user/add"
;
}
/**
* 设置添加用户页面所需要的
参数
* 设置添加用户页面所需要的
角色和单位代码数据
*/
private
static
void
setAddCS
(
Model
model
,
SysDictitemService
dictitemService
,
SysRoleService
roleService
)
{
SysUser
user
=
TokenUtil
.
getUser
();
String
unitStr
=
user
.
getUnitcode
();
SysDictitem
dictitem
=
new
SysDictitem
();
dictitem
.
setGroupid
(
"CODE_UNIT"
);
dictitem
.
setCodeStr
(
unitStr
.
substring
(
0
,
2
)+
"%"
);
JSONArray
unit
=
dictitemService
.
selectDictitemByCondition
(
dictitem
);
JSONArray
roles
=
roleService
.
selectSysRolesByCondition
(
null
);
model
.
addAttribute
(
"role"
,
roles
);
model
.
addAttribute
(
"unit"
,
unit
);
private
static
void
setZtreeData
(
Model
model
,
SysUserService
userService
,
SysDictitemService
dictitemService
,
SysRoleService
roleService
)
{
new
ZtreeDataUtil
().
setUnitAndRole
(
model
,
dictitemService
,
userService
,
roleService
);
}
/**
* 为方便调用现在将role和unit进行拆分,并写入到service层,
* 因为这些东西在roleController中,userController都会不止一次调用
*
*
*/
/**
* 添加用户---提交
*
* @param user
...
...
@@ -140,7 +141,7 @@ public class SysUserController {
public
String
add
(
SysUser
user
,
Model
model
)
{
SysUser
add
=
userService
.
add
(
user
);
if
(
add
.
getUsername
()
==
null
)
{
set
AddCS
(
model
,
dictitemService
,
roleService
);
set
ZtreeData
(
model
,
userService
,
dictitemService
,
roleService
);
model
.
addAttribute
(
"user"
,
user
);
model
.
addAttribute
(
"msg"
,
"用户名已存在,请修改用户名!"
);
return
"admin/user/add"
;
...
...
@@ -163,7 +164,7 @@ public class SysUserController {
user
.
setPassword
(
new
Base64PasswordEncrypter
().
decryptPassword
(
user
.
getPassword
()));
List
<
SysRole
>
roles
=
userService
.
selectSysRoleByUserId
(
id
);
JSONArray
oldRole
=
JSONArray
.
fromObject
(
roles
);
set
AddCS
(
model
,
dictitemService
,
roleService
);
set
ZtreeData
(
model
,
userService
,
dictitemService
,
roleService
);
model
.
addAttribute
(
"oldRole"
,
oldRole
);
model
.
addAttribute
(
"user"
,
user
);
return
"admin/user/update"
;
...
...
@@ -185,7 +186,7 @@ public class SysUserController {
//查询用户原先的角色
List
<
SysRole
>
roles
=
userService
.
selectSysRoleByUserId
(
user
.
getId
());
JSONArray
oldRole
=
JSONArray
.
fromObject
(
roles
);
set
AddCS
(
model
,
dictitemService
,
roleService
);
set
ZtreeData
(
model
,
userService
,
dictitemService
,
roleService
);
model
.
addAttribute
(
"oldRole"
,
oldRole
);
model
.
addAttribute
(
"user"
,
user
);
model
.
addAttribute
(
"msg"
,
"用户修改失败!"
);
...
...
src/main/java/com/xzxtshiro/dao/SysPermissionNewDao.java
View file @
f6d5bccf
...
...
@@ -18,9 +18,26 @@ public interface SysPermissionNewDao {
*/
List
<
SysPermissionNew
>
selectPermission
();
/**
* 查询所有的权限list
* @param sysPermission
* @return
*/
List
<
SysPermissionNew
>
selectSysPermissionNewByCondition
(
SysPermissionNew
sysPermission
);
Integer
selectSysPermissionNewCountByCondition
(
SysPermissionNew
sysPermission
);
/**
* 根据userId查询用户所拥有的权限
* @param userId
* @return
*/
List
<
SysPermissionNew
>
selectSysPermissionNewByUserId
(
SysPermissionNew
sysPermission
);
Integer
selectSysPermissionNewCountByUserId
(
SysPermissionNew
sysPermission
);
/**
* 查询所以权限
* @return
*/
List
<
SysPermissionNew
>
selectAllPermissions
();
/**
...
...
src/main/java/com/xzxtshiro/dao/SysRoleDao.java
View file @
f6d5bccf
...
...
@@ -34,7 +34,7 @@ public interface SysRoleDao {
* @param sysrole
* @return
*/
Integer
selectSysRoleCountByCondition
(
@Param
(
"SysRole"
)
SysRole
sysrole
);
Integer
selectSysRoleCountByCondition
(
SysRole
sysrole
);
/**
* 添加角色
*
...
...
src/main/java/com/xzxtshiro/mapper/SysDictitemMapper.xml
View file @
f6d5bccf
...
...
@@ -150,7 +150,10 @@
<select
id=
"selectDictitemByCondition"
resultMap=
"BaseResultMap"
parameterType=
"com.xzxtshiro.pojo.SysDictitem"
>
select
<include
refid=
"Base_Column_List"
/>
ID, CODE, NAME ||'['||CODE||']' as NAME, GROUPID, LEVELID, SPELL, WBZX, LRR, LRSJ, GXR, GXSJ, SIMPLE, LRDWDM,
LRDWMC, GROUPNAME, SCBZ, YYCJ1, YYCJ2, YYCJ3, YYCJ4, PID, ISPARENT, YYCJ7, YYCJ5,
YYCJ6, DESCRIPTION, ENDCODE, STARTCODE, YYCJ8, SFQYBMPDBZ, DMMCBM, GXDWDM, GXDWMC,
GABXF
from SYS_DICTITEM
where SCBZ=0
<include
refid=
"queryWhere"
/>
...
...
src/main/java/com/xzxtshiro/mapper/SysPermissionNewMapper.xml
View file @
f6d5bccf
...
...
@@ -38,12 +38,41 @@
) where rn > ${(page-1)*limit}
</select>
<select
id=
"selectSysPermissionNewByUserId"
resultMap=
"BaseResultMap"
>
select * from (
select t.*,rownum rn from (
SELECT
id,NAME,menuname,permission,url,flag,zindex,pid,userid
FROM
VW_USER_PERMISSION
WHERE
userid=#{userId,jdbcType=VARCHAR}
and id is not NULL
and name is not NULL
) t where ROWNUM
<![CDATA[<=]]>
${limit*page}
) where rn > ${(page-1)*limit}
</select>
<select
id=
"selectSysPermissionNewCountByUserId"
resultType=
"integer"
>
<!---->
SELECT
count(1)
FROM
VW_USER_PERMISSION
WHERE
userid=#{userId,jdbcType=VARCHAR}
and id is not NULL
and name is not NULL
</select>
<select
id=
"selectAllPermissions"
resultMap=
"BaseResultMap"
>
select
<include
refid=
"Base_Column_List"
/>
ID, NAME ||'['||ID||']' as NAME, MENUNAME, PID, PERMISSION, URL, DESCRIPTION, TYPE, LRR, LRSJ, GXR, GXSJ,
LRDWDM, LRDWMC, SCBZ, IP, ZINDEX,FLAG
from sys_permission_new
where SCBZ='0'
</select>
<select
id=
"selectSysPermissionNewById"
resultMap=
"BaseResultMap"
>
select
...
...
src/main/java/com/xzxtshiro/mapper/SysRoleMapper.xml
View file @
f6d5bccf
...
...
@@ -31,9 +31,16 @@
select * from (
select t.*,rownum rn from (
select
<include
refid=
"Base_Column_List"
/>
from SYS_ROLE
where SCBZ='0'
b.ID, b.ROLENAME, b.DESCRIPTION, b.LRR, b.LRSJ, b.GXR, b.GXSJ, b.LRDWDM, b.LRDWMC, b.SCBZ, b.IP, b.SFFB , b.PID , b.TYPE
<if
test=
"userId != null"
>
from sys_user_role a,sys_role b
where b.SCBZ='0'
AND A.USER_ID=#{userId,jdbcType=VARCHAR} and A.ROLE_ID=b.id
</if>
<if
test=
"userId == null"
>
from sys_role b
where b.SCBZ='0'
</if>
) t where ROWNUM
<![CDATA[<=]]>
${limit*page}
) where rn > ${(page-1)*limit}
...
...
@@ -42,9 +49,15 @@
<!---->
SELECT
count(1)
FROM
SYS_ROLE
WHERE scbz='0'
<if
test=
"userId != null"
>
from sys_user_role a,sys_role b
where b.SCBZ='0'
AND A.USER_ID=#{userId,jdbcType=VARCHAR} and A.ROLE_ID=b.id
</if>
<if
test=
"userId == null"
>
from sys_role b
where b.SCBZ='0'
</if>
</select>
<select
id=
"selectSysRolesByCondition"
parameterType=
"com.xzxtshiro.pojo.SysRole"
resultMap=
"BaseResultMap"
>
SELECT
...
...
src/main/java/com/xzxtshiro/mapper/SysUserMapper.xml
View file @
f6d5bccf
...
...
@@ -437,12 +437,13 @@
<!--根据userId查询用户拥有的权限-->
<select
id=
"selectSysPermissionsByUserId"
resultType=
"com.xzxtshiro.pojo.SysPermissionNew"
parameterType=
"java.lang.String"
>
SELECT
id,
name
,menuname,permission,url,flag,zindex,pid,userid
id,
NAME ||'['||id||']' as NAME
,menuname,permission,url,flag,zindex,pid,userid
FROM
VW_USER_PERMISSION
WHERE
userid=#{userId,jdbcType=VARCHAR}
and id is not NULL
and name is not NULL
</select>
<!--根据userid查询角色名-->
<select
id=
"selectSysRolesByUserId"
parameterType=
"string"
resultType=
"com.xzxtshiro.pojo.SysRole"
>
...
...
src/main/java/com/xzxtshiro/pojo/SysRole.java
View file @
f6d5bccf
...
...
@@ -16,6 +16,8 @@ public class SysRole extends BaseModel implements Serializable {
private
static
final
long
serialVersionUID
=
1L
;
protected
String
id
;
protected
String
userId
;
protected
String
rolename
;
protected
String
description
;
...
...
src/main/java/com/xzxtshiro/service/SysPermissionNewService.java
View file @
f6d5bccf
...
...
@@ -28,6 +28,13 @@ public interface SysPermissionNewService {
BaseModel
selectSysPermissionNewPage
(
SysPermissionNew
permission
);
/**
* 根据userId获取权限列表
* @param sysPermission
* @return
*/
BaseModel
selectSysPermissionNewPageByUserId
(
SysPermissionNew
sysPermission
);
/**
* 获取所有父级菜单
*
...
...
src/main/java/com/xzxtshiro/service/imp/SysPermissionNewServiceImpl.java
View file @
f6d5bccf
...
...
@@ -68,6 +68,16 @@ public class SysPermissionNewServiceImpl implements SysPermissionNewService {
}
@Override
public
BaseModel
selectSysPermissionNewPageByUserId
(
SysPermissionNew
sysPermission
)
{
List
<
SysPermissionNew
>
permissions
=
permissionNewDao
.
selectSysPermissionNewByUserId
(
sysPermission
);
Integer
count
=
permissionNewDao
.
selectSysPermissionNewCountByUserId
(
sysPermission
);
BaseModel
permissionPage
=
new
BaseModel
();
permissionPage
.
setCount
(
count
);
permissionPage
.
setData
(
permissions
);
return
permissionPage
;
}
@Override
public
JSONArray
selectAllPermissions
()
{
List
<
SysPermissionNew
>
parantMenus
=
permissionNewDao
.
selectAllPermissions
();
JSONArray
json
=
JSONArray
.
fromObject
(
parantMenus
);
...
...
src/main/java/com/xzxtshiro/util/ZtreeDataUtil.java
0 → 100644
View file @
f6d5bccf
package
com
.
xzxtshiro
.
util
;
import
com.xzxtshiro.pojo.SysDictitem
;
import
com.xzxtshiro.pojo.SysPermissionNew
;
import
com.xzxtshiro.pojo.SysRole
;
import
com.xzxtshiro.pojo.SysUser
;
import
com.xzxtshiro.service.SysDictitemService
;
import
com.xzxtshiro.service.SysPermissionNewService
;
import
com.xzxtshiro.service.SysRoleService
;
import
com.xzxtshiro.service.SysUserService
;
import
net.sf.json.JSONArray
;
import
org.springframework.ui.Model
;
import
java.util.List
;
/**
* @author liuys
* @desc
* @date 2018-07-25 11:20
*/
public
class
ZtreeDataUtil
{
/**
* 设置单位和角色ztree数据
* @param model
* @param dictitemService
* @param userService
* @param roleService
*/
public
static
void
setUnitAndRole
(
Model
model
,
SysDictitemService
dictitemService
,
SysUserService
userService
,
SysRoleService
roleService
)
{
setUnitZtreeData
(
model
,
dictitemService
);
setRoleZtreeData
(
model
,
userService
,
roleService
);
}
public
static
void
setRoleAndPermission
(
Model
model
,
SysUserService
userService
,
SysRoleService
roleService
,
SysPermissionNewService
sysPermissionService
){
setRoleZtreeData
(
model
,
userService
,
roleService
);
setPermissionZtreeData
(
model
,
userService
,
sysPermissionService
);
}
/**
* 设置单位ztree
* @param model
* @param dictitemService
*/
public
static
void
setUnitZtreeData
(
Model
model
,
SysDictitemService
dictitemService
){
SysUser
user
=
TokenUtil
.
getUser
();
String
unitStr
=
user
.
getUnitcode
();
SysDictitem
dictitem
=
new
SysDictitem
();
dictitem
.
setGroupid
(
"CODE_UNIT"
);
dictitem
.
setCodeStr
(
unitStr
.
substring
(
0
,
2
)+
"%"
);
JSONArray
unit
=
dictitemService
.
selectDictitemByCondition
(
dictitem
);
model
.
addAttribute
(
"unit"
,
unit
);
}
/**
* 设置角色ztree
* @param model
* @param userService
* @param roleService
*/
public
static
void
setRoleZtreeData
(
Model
model
,
SysUserService
userService
,
SysRoleService
roleService
){
/**
* 角色显示,应当满足这两点:
* 1.除admin用户之外,所有用户只显示它自己拥有的角色,
* 2.举个栗子:市级管理员/县级管理员在给下面的人赋角色时,只能看到admin给他
* 赋予的角色,不能看到更高的角色,需要更高权限,需要向admin申请
*/
//获取当前登录用户
SysUser
dlUser
=
TokenUtil
.
getUser
();
JSONArray
roles
=
null
;
if
(
"admin"
.
equals
(
dlUser
.
getUsername
())){
roles
=
roleService
.
selectSysRolesByCondition
(
null
);
}
else
{
List
<
SysRole
>
roleList
=
userService
.
selectSysRoleByUserId
(
dlUser
.
getId
());
roles
=
JSONArray
.
fromObject
(
roleList
);
}
model
.
addAttribute
(
"role"
,
roles
);
}
public
static
void
setPermissionZtreeData
(
Model
model
,
SysUserService
userService
,
SysPermissionNewService
sysPermissionService
){
//获取当前登录用户
SysUser
user
=
TokenUtil
.
getUser
();
JSONArray
permission
=
null
;
if
(
"admin"
.
equals
(
user
.
getUsername
())){
permission
=
sysPermissionService
.
selectAllPermissions
();
}
else
{
List
<
SysPermissionNew
>
list
=
userService
.
selectSysPermissionNewByUserId
(
user
.
getId
());
permission
=
JSONArray
.
fromObject
(
list
);
}
model
.
addAttribute
(
"permission"
,
permission
);
}
}
src/main/webapp/WEB-INF/jsp/admin/permission/add.jsp
View file @
f6d5bccf
...
...
@@ -42,14 +42,14 @@
<label
class=
"layui-form-label"
>
权限ID
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"id"
lay-verify=
"required"
placeholder=
"请输入权限ID"
value=
"${
p
ermission.id}"
class=
"layui-input"
>
value=
"${
oldP
ermission.id}"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
权限名称
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"name"
lay-verify=
"required"
placeholder=
"请输入权限名称"
value=
"${
p
ermission.name}"
class=
"layui-input"
>
value=
"${
oldP
ermission.name}"
class=
"layui-input"
>
</div>
</div>
...
...
@@ -57,14 +57,14 @@
<label
class=
"layui-form-label"
>
权限代码
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"permission"
lay-verify=
"required"
placeholder=
"请输入权限代码"
value=
"${
p
ermission.permission}"
class=
"layui-input"
>
value=
"${
oldP
ermission.permission}"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
权限URL
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"url"
lay-verify=
"required"
placeholder=
"请输入权限URL"
value=
"${
p
ermission.url}"
class=
"layui-input"
>
value=
"${
oldP
ermission.url}"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
...
...
@@ -197,7 +197,7 @@
layer
.
msg
(
msg
,
{
icon
:
5
});
$
(
"#msg"
).
text
(
""
);
}
var
data
=
$
{
p
arantMenus
};
var
data
=
$
{
p
ermission
};
var
zNodes
=
[];
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
zNodes
.
push
({
id
:
data
[
i
].
id
,
pId
:
data
[
i
].
pid
,
name
:
data
[
i
].
name
,
open
:
false
,
file
:
"core/simpleData"
});
...
...
src/main/webapp/WEB-INF/jsp/admin/permission/update.jsp
View file @
f6d5bccf
...
...
@@ -44,14 +44,14 @@
<label
class=
"layui-form-label"
>
权限ID
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"id"
lay-verify=
"required"
placeholder=
"请输入权限ID"
value=
"${
p
ermission.id}"
class=
"layui-input"
>
value=
"${
oldP
ermission.id}"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
权限名称
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"name"
lay-verify=
"required"
placeholder=
"请输入权限名称"
value=
"${
p
ermission.name}"
class=
"layui-input"
>
value=
"${
oldP
ermission.name}"
class=
"layui-input"
>
</div>
</div>
...
...
@@ -59,14 +59,14 @@
<label
class=
"layui-form-label"
>
权限代码
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"permission"
lay-verify=
"required"
placeholder=
"请输入权限代码"
value=
"${
p
ermission.permission}"
class=
"layui-input"
>
value=
"${
oldP
ermission.permission}"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
权限URL
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"url"
lay-verify=
"required"
placeholder=
"请输入权限URL"
value=
"${
p
ermission.url}"
class=
"layui-input"
>
value=
"${
oldP
ermission.url}"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
>
...
...
@@ -135,17 +135,16 @@
layer
.
msg
(
msg
,
{
icon
:
5
});
}
//设置角色类型
var
type
=
"${
p
ermission.type}"
;
var
type
=
"${
oldP
ermission.type}"
;
$
(
"#type"
).
val
(
type
);
form
.
render
(
'select'
);
var
data
=
$
{
p
arantMenus
};
var
data
=
$
{
p
ermission
};
var
zNodes
=
[];
var
bool
;
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
zNodes
.
push
({
id
:
data
[
i
].
id
,
pId
:
data
[
i
].
pid
,
name
:
data
[
i
].
name
,
open
:
false
,
file
:
"core/simpleData"
});
if
(
data
[
i
].
id
==
"${
p
ermission.pid}"
){
$
(
"#pid"
).
val
(
data
[
i
].
id
);
$
(
"#pidName"
).
val
(
data
[
i
].
name
);
if
(
data
[
i
].
id
==
"${
oldP
ermission.pid}"
){
$
(
"#pid"
).
val
(
"${oldPermission.id}"
);
$
(
"#pidName"
).
val
(
"${oldPermission.name}"
);
}
}
setTree
(
zNodes
,
"tree"
,
"nocheck"
,
"pid"
,
"pidName"
);
...
...
src/main/webapp/WEB-INF/jsp/admin/role/update.jsp
View file @
f6d5bccf
...
...
@@ -40,12 +40,12 @@
action=
"${pageContext.request.contextPath}/admin/role/update/"
method=
"post"
>
<input
type=
"text"
name=
"id"
lay-verify=
"required"
placeholder=
"角色id"
value=
"${
r
ole.id}"
hidden
>
value=
"${
oldR
ole.id}"
hidden
>
<div
class=
"layui-form-item"
>
<label
class=
"layui-form-label"
>
角色名称
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"rolename"
lay-verify=
"required"
placeholder=
"请输入角色名称"
value=
"${
r
ole.rolename}"
value=
"${
oldR
ole.rolename}"
class=
"layui-input"
>
</div>
</div>
...
...
@@ -89,7 +89,7 @@
<label
class=
"layui-form-label"
>
描述
</label>
<div
class=
"layui-input-block"
>
<input
type=
"text"
name=
"description"
placeholder=
"请输入角色描述信息"
class=
"layui-input"
value=
"${
r
ole.description}"
>
class=
"layui-input"
value=
"${
oldR
ole.description}"
>
</div>
</div>
<div
class=
"layui-form-item"
style=
"text-align: center"
>
...
...
@@ -134,11 +134,11 @@
layer
.
msg
(
msg
,
{
icon
:
5
});
}
//设置角色类型
var
type
=
"${
r
ole.type}"
;
var
type
=
"${
oldR
ole.type}"
;
$
(
"#type"
).
val
(
type
);
form
.
render
(
'select'
);
//权限树
var
data
=
$
{
AllP
ermission
};
var
data
=
$
{
p
ermission
};
var
checkData
=
$
{
oldPermission
};
var
zNodes
=
[];
var
oldPerStr
=
""
,
oldPerIdStr
=
""
;
...
...
@@ -160,11 +160,11 @@
$
(
"#permissionName"
).
val
(
oldPerStr
);
//设置权限树
setTree
(
zNodes
,
"permissionTree"
,
"check"
,
"permissionId"
,
"permissionName"
);
data
=
$
{
AllR
ole
};
data
=
$
{
r
ole
};
console
.
log
(
data
);
var
zNodes
=
[];
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
if
(
data
[
i
].
id
==
"${
r
ole.pid}"
){
if
(
data
[
i
].
id
==
"${
oldR
ole.pid}"
){
//设置原有角色回显
$
(
"#pidName"
).
val
(
data
[
i
].
rolename
);
$
(
"#pid"
).
val
(
data
[
i
].
id
);
...
...
src/main/webapp/WEB-INF/jsp/admin/user/update.jsp
View file @
f6d5bccf
...
...
@@ -168,16 +168,19 @@
if
(
msg
.
length
!=
""
){
layer
.
msg
(
msg
,
{
icon
:
5
});
}
//设置用户等级
//设置原有单位回显
var
unitname
=
"${user.unitname}"
;
var
unitcode
=
"${user.unitcode}"
;
$
(
"#unitname"
).
val
(
unitname
);
$
(
"#unitcode"
).
val
(
unitcode
);
//设置用户等级回显
var
grade
=
"${user.grade}"
;
$
(
"#grade"
).
val
(
grade
);
form
.
render
(
'select'
);
var
data
=
$
{
unit
};
var
zNodes
=
[];
for
(
var
i
=
0
;
i
<
data
.
length
;
i
++
){
//设置原有单位回显
$
(
"#unitname"
).
val
(
data
[
i
].
name
);
$
(
"#unitcode"
).
val
(
data
[
i
].
codeStr
);
zNodes
.
push
({
id
:
data
[
i
].
codeStr
,
pId
:
data
[
i
].
pid
,
name
:
data
[
i
].
name
,
open
:
false
,
file
:
"core/simpleData"
});
}
setTree
(
zNodes
,
"unit"
,
"nocheck"
,
"unitcode"
,
"unitname"
);
...
...
src/main/webapp/WEB-INF/jsp/index.jsp
View file @
f6d5bccf
...
...
@@ -225,7 +225,6 @@
});
//判断当前登录用户
debugger
;
var
username
=
"${sessionScope.user.username }"
;
console
.
log
(
username
);
if
(
username
==
'8888'
)
{
...
...
src/main/webapp/resources/common/common.js
View file @
f6d5bccf
...
...
@@ -37,7 +37,11 @@ function setTree(data,treeId,type,kid,vid) {
nodes
=
treeObj
.
getCheckedNodes
(
true
),
v
=
""
,
k
=
""
;
for
(
var
i
=
0
;
i
<
nodes
.
length
;
i
++
){
v
+=
nodes
[
i
].
name
+
","
;
var
thisName
=
nodes
[
i
].
name
;
if
(
thisName
.
indexOf
(
"["
)
>-
1
){
thisName
=
thisName
.
substring
(
0
,
thisName
.
indexOf
(
"["
));
}
v
+=
thisName
+
","
;
k
+=
nodes
[
i
].
id
+
","
;
console
.
log
(
"节点id:"
+
k
+
"节点名称"
+
v
);
//获取选中节点的值
}
...
...
@@ -68,8 +72,11 @@ function setTree(data,treeId,type,kid,vid) {
var
treeObj
=
$
.
fn
.
zTree
.
getZTreeObj
(
treeNode
);
var
selectedNode
=
treeObj
.
getSelectedNodes
()[
0
];
$
(
"#"
+
kid
).
val
(
selectedNode
.
id
);
console
.
log
(
selectedNode
.
name
);
$
(
"#"
+
vid
).
val
(
selectedNode
.
name
);
var
thisName
=
selectedNode
.
name
;
if
(
thisName
.
indexOf
(
"["
)
>-
1
){
thisName
=
thisName
.
substring
(
0
,
thisName
.
indexOf
(
"["
));
}
$
(
"#"
+
vid
).
val
(
thisName
);
closeTree
();
},
}
...
...
@@ -95,7 +102,7 @@ function setTree(data,treeId,type,kid,vid) {
function
checkTree
(
treeId
){
layer
.
open
({
type
:
1
,
area
:[
'
350px'
,
'40
0px'
],
area
:[
'
500px'
,
'53
0px'
],
title
:
'请选择'
,
skin
:
'layui-layer-demo'
,
//加上边框
content
:
$
(
"#"
+
treeId
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment