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
571fde93
Commit
571fde93
authored
Oct 18, 2018
by
xushihong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
新增用户角色和权限角色搜索功能
parent
a127b7f2
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
251 additions
and
48 deletions
+251
-48
src/main/java/com/xzxtshiro/controller/admin/PermissionNewController.java
+3
-1
src/main/java/com/xzxtshiro/controller/admin/SysRoleController.java
+5
-2
src/main/java/com/xzxtshiro/mapper/SysPermissionNewMapper.xml
+3
-0
src/main/java/com/xzxtshiro/mapper/SysRoleMapper.xml
+14
-0
src/main/java/com/xzxtshiro/service/imp/SysRoleServiceImpl.java
+33
-7
src/main/webapp/WEB-INF/jsp/admin/permission/list.jsp
+97
-19
src/main/webapp/WEB-INF/jsp/admin/role/list.jsp
+96
-19
No files found.
src/main/java/com/xzxtshiro/controller/admin/PermissionNewController.java
View file @
571fde93
...
@@ -62,7 +62,9 @@ public class PermissionNewController {
...
@@ -62,7 +62,9 @@ public class PermissionNewController {
public
BaseModel
list
(
SysPermissionNew
permission
)
{
public
BaseModel
list
(
SysPermissionNew
permission
)
{
BaseModel
perPage
=
null
;
BaseModel
perPage
=
null
;
SysUser
user
=
TokenUtil
.
getUser
();
SysUser
user
=
TokenUtil
.
getUser
();
if
(
"admin"
.
equals
(
user
.
getUsername
())){
if
(
"admin"
.
equals
(
user
.
getUsername
())
&&
permission
.
getId
()
==
null
&&
permission
.
getPid
()
==
null
&&
permission
.
getName
()
==
null
){
perPage
=
permissionService
.
selectSysPermissionNewPage
(
permission
);
}
if
(
permission
.
getId
()
!=
null
||
permission
.
getPid
()
!=
null
||
permission
.
getName
()
!=
null
){
perPage
=
permissionService
.
selectSysPermissionNewPage
(
permission
);
perPage
=
permissionService
.
selectSysPermissionNewPage
(
permission
);
}
else
{
}
else
{
permission
.
setUserId
(
user
.
getId
());
permission
.
setUserId
(
user
.
getId
());
...
...
src/main/java/com/xzxtshiro/controller/admin/SysRoleController.java
View file @
571fde93
...
@@ -65,9 +65,12 @@ public class SysRoleController {
...
@@ -65,9 +65,12 @@ public class SysRoleController {
public
BaseModel
list
(
SysRole
role
)
{
public
BaseModel
list
(
SysRole
role
)
{
//获取当前登录用户
//获取当前登录用户
SysUser
dlUser
=
TokenUtil
.
getUser
();
SysUser
dlUser
=
TokenUtil
.
getUser
();
if
(
"admin"
.
equals
(
dlUser
.
getUsername
())){
if
(
"admin"
.
equals
(
dlUser
.
getUsername
())
&&
role
.
getRolename
()
==
null
&&
role
.
getPermissionName
()
==
null
){
return
sysRoleService
.
selectSysRolePage
(
role
);
return
sysRoleService
.
selectSysRolePage
(
role
);
}
else
{
}
if
(
role
.
getRolename
()
!=
null
||
role
.
getPermissionName
()
!=
null
){
return
sysRoleService
.
selectSysRolePage
(
role
);
}
else
{
role
.
setUserId
(
dlUser
.
getId
());
role
.
setUserId
(
dlUser
.
getId
());
return
sysRoleService
.
selectSysRolePage
(
role
);
return
sysRoleService
.
selectSysRolePage
(
role
);
}
}
...
...
src/main/java/com/xzxtshiro/mapper/SysPermissionNewMapper.xml
View file @
571fde93
...
@@ -34,6 +34,9 @@
...
@@ -34,6 +34,9 @@
<include
refid=
"Base_Column_List"
/>
<include
refid=
"Base_Column_List"
/>
from sys_permission_new
from sys_permission_new
where SCBZ='0'
where SCBZ='0'
<if
test=
"id != null"
>
and id = #{id,jdbcType=VARCHAR}
</if>
<if
test=
"name != null"
>
and name like '%'||#{name,jdbcType=VARCHAR}||'%'
</if>
<if
test=
"pid != null"
>
and pid like '%'||#{pid,jdbcType=VARCHAR}||'%'
</if>
) t where ROWNUM
<![CDATA[<=]]>
) t where ROWNUM
<![CDATA[<=]]>
${limit*page}
${limit*page}
) where rn > ${(page-1)*limit}
) where rn > ${(page-1)*limit}
...
...
src/main/java/com/xzxtshiro/mapper/SysRoleMapper.xml
View file @
571fde93
...
@@ -37,10 +37,12 @@
...
@@ -37,10 +37,12 @@
from sys_user_role a,sys_role b
from sys_user_role a,sys_role b
where b.SCBZ='0'
where b.SCBZ='0'
AND A.USER_ID=#{userId,jdbcType=VARCHAR} and A.ROLE_ID=b.id
AND A.USER_ID=#{userId,jdbcType=VARCHAR} and A.ROLE_ID=b.id
<if
test=
"rolename != null"
>
and b.ROLENAME like '%'||#{rolename,jdbcType=VARCHAR}||'%'
</if>
</if>
</if>
<if
test=
"userId == null"
>
<if
test=
"userId == null"
>
from sys_role b
from sys_role b
where b.SCBZ='0'
where b.SCBZ='0'
<if
test=
"rolename != null"
>
and b.ROLENAME like '%'||#{rolename,jdbcType=VARCHAR}||'%'
</if>
</if>
</if>
) t where ROWNUM
<![CDATA[<=]]>
) t where ROWNUM
<![CDATA[<=]]>
${limit*page}
${limit*page}
...
@@ -239,6 +241,18 @@
...
@@ -239,6 +241,18 @@
where ROLEID=#{id,jdbcType=VARCHAR})
where ROLEID=#{id,jdbcType=VARCHAR})
</select>
</select>
<!--根据角色id查询角色所拥有的权限名(暂时用权限描述代替)-->
<select
id=
"selectPermissionBySysRoleIdPermissionName"
resultType=
"com.xzxtshiro.pojo.SysPermissionNew"
>
select id,name from sys_permission_new a where id in (SELECT
permissionid description
FROM
sys_role_permission
where ROLEID=#{id,jdbcType=VARCHAR})
<if
test=
"permissionName !=null"
>
and a.name like '%'||#{permissionName, jdbcType=VARCHAR}||'%'
</if>
</select>
<delete
id=
"delectPermissionByRoleId"
>
<delete
id=
"delectPermissionByRoleId"
>
DELETE
DELETE
FROM
FROM
...
...
src/main/java/com/xzxtshiro/service/imp/SysRoleServiceImpl.java
View file @
571fde93
...
@@ -33,16 +33,42 @@ public class SysRoleServiceImpl implements SysRoleService{
...
@@ -33,16 +33,42 @@ public class SysRoleServiceImpl implements SysRoleService{
public
BaseModel
selectSysRolePage
(
SysRole
SysRole
)
{
public
BaseModel
selectSysRolePage
(
SysRole
SysRole
)
{
List
<
SysRole
>
data
=
sysRoleDao
.
selectSysRoles
(
SysRole
);
List
<
SysRole
>
data
=
sysRoleDao
.
selectSysRoles
(
SysRole
);
for
(
SysRole
role1
:
data
)
{
for
(
SysRole
role1
:
data
)
{
List
<
SysPermissionNew
>
permissionNews
=
sysRoleDao
.
selectPermissionBySysRoleId
(
role1
.
getId
());
List
<
SysPermissionNew
>
permissionNews
=
sysRoleDao
.
selectPermissionBySysRoleId
(
role1
.
getId
());
StringBuffer
permission
=
new
StringBuffer
();
StringBuffer
permission
=
new
StringBuffer
();
for
(
SysPermissionNew
per
:
permissionNews
)
{
for
(
SysPermissionNew
per
:
permissionNews
)
{
if
(
permissionNews
!=
null
)
{
if
(
permissionNews
!=
null
)
{
permission
.
append
(
per
.
getName
()
+
","
);
permission
.
append
(
per
.
getName
()
+
","
);
}
}
}
}
role1
.
setPermissionName
(
permission
.
toString
());
role1
.
setPermissionName
(
permission
.
toString
());
}
}
Integer
count
=
sysRoleDao
.
selectSysRoleCountByCondition
(
SysRole
);
Integer
count
=
sysRoleDao
.
selectSysRoleCountByCondition
(
SysRole
);
//过滤permissmionName查询
if
(
SysRole
.
getPermissionName
()
!=
null
){
for
(
int
i
=
0
;
i
<
count
;
i
++){
Iterator
<
SysRole
>
it
=
data
.
iterator
();
while
(
it
.
hasNext
()){
SysRole
role
=
it
.
next
();
if
(
role
.
getPermissionName
()
==
null
){
role
.
setPermissionName
(
"1"
);
}
Integer
test
=
role
.
getPermissionName
().
indexOf
(
SysRole
.
getPermissionName
());
System
.
out
.
println
(
test
);
if
(
role
.
getPermissionName
().
indexOf
(
SysRole
.
getPermissionName
())
!=
-
1
){
}
else
{
data
.
remove
(
role
);
break
;
}
}
}
}
BaseModel
rolePage
=
new
BaseModel
();
BaseModel
rolePage
=
new
BaseModel
();
rolePage
.
setCount
(
count
);
rolePage
.
setCount
(
count
);
rolePage
.
setData
(
data
);
rolePage
.
setData
(
data
);
...
...
src/main/webapp/WEB-INF/jsp/admin/permission/list.jsp
View file @
571fde93
...
@@ -29,25 +29,41 @@
...
@@ -29,25 +29,41 @@
<i
class=
"fa fa-refresh line-size"
></i></a>
<i
class=
"fa fa-refresh line-size"
></i></a>
</div>
</div>
</div>
</div>
<a
class=
"layui-btn layui-btn-normal"
role=
"button"
<div
class=
"layui-col-xs12 layui-col-sm12 layui-col-md12 searchDiv"
>
style=
"margin-right: 10px;float: right"
href=
"${pageContext.request.contextPath}/admin/permission/add"
>
添加权限
</a>
<div
class=
"layui-form-mid"
>
<div
class=
"layui-col-xs12 layui-col-sm12 layui-col-md12"
>
<label
class=
"layui-form-label"
>
权限ID
</label>
<table
class=
"layui-table"
<div
class=
"layui-input-inline"
>
lay-data=
"{height: 'full-110',even: true,url:'${pageContext.request.contextPath}/admin/permission/list',limits:[10,30,50,100], limit: 10,page:true,id:'id'}"
<input
type=
"text"
name=
"id"
id=
"id"
lay-verify=
"required"
lay-filter=
"user"
>
class=
"layui-input"
>
<thead>
</div>
<tr>
</div>
<th
lay-data=
"{field:'rn',align:'center', width:60, sort: true}"
>
序号
</th>
<div
class=
"layui-form-mid"
>
<th
lay-data=
"{field:'id',align:'center', width:100}"
>
权限ID
</th>
<label
class=
"layui-form-label"
>
权限名称
</label>
<th
lay-data=
"{field:'name',align:'center', width:150, sort: true}"
>
权限名称
</th>
<div
class=
"layui-input-block"
>
<
%
--
<
th
lay-data=
"{field:'permission', align:'center',width:150, sort: true}"
>
权限代码
</th>
--%>
<input
type=
"text"
name=
"name"
id=
"name"
lay-verify=
"required"
<th
lay-data=
"{field:'url', align:'center',width:200, sort: true}"
>
权限URL
</th>
class=
"layui-input"
>
<th
lay-data=
"{field:'pid', align:'center',width:100, sort: true}"
>
父级权限ID
</th>
</div>
<th
lay-data=
"{width:200, align:'center', toolbar: '#toolBar'}"
>
操作
</th>
</div>
</tr>
<div
class=
"layui-form-mid"
>
</thead>
<label
class=
"layui-form-label"
>
父级权限
</label>
</table>
<div
class=
"layui-input-block"
>
</div>
<input
type=
"text"
name=
"pid"
id=
"pid"
lay-verify=
"required"
class=
"layui-input"
>
</div>
</div>
<div
class=
"layui-form-item"
style=
"display: inline-block;width:100%;text-align: center;"
>
<div
class=
"layui-form-item demoTable"
>
<button
class=
"layui-btn layui-btn-normal queryUserList"
data-type=
"reload"
style=
"margin-left: 20px;"
>
查询
</button>
<button
class=
"layui-btn layui-btn-normal"
style=
"margin-left: 20px;"
onclick=
"reset();"
>
清空
</button>
<a
class=
"layui-btn layui-btn-normal"
role=
"button"
style=
"margin-right: 20px;"
href=
"${pageContext.request.contextPath}/admin/permission/add"
>
添加权限
</a>
</div>
</div>
<table
class=
"layui-table"
id=
"userTable"
lay-filter=
"user"
>
</table>
</div>
</div>
</div>
</div>
<script
type=
"text/html"
id=
"toolBar"
>
<script
type=
"text/html"
id=
"toolBar"
>
...
@@ -135,6 +151,67 @@
...
@@ -135,6 +151,67 @@
}
}
});
});
</script>
</script>
<script>
layui
.
use
(
'table'
,
function
(){
var
table
=
layui
.
table
;
//方法级渲染
table
.
render
({
id
:
"id"
,
elem
:
'#userTable'
,
limit
:
50
,
//默认采用10
url
:
'${pageContext.request.contextPath}/admin/permission/list'
,
cols
:
[[
{
field
:
'rn'
,
title
:
'序号'
,
align
:
'center'
,
width
:
60
},
{
field
:
'id'
,
title
:
'权限ID'
,
align
:
'center'
,
width
:
100
,
sort
:
true
},
{
field
:
'name'
,
title
:
'权限名称'
,
align
:
'center'
,
width
:
150
,
sort
:
true
},
{
field
:
'url'
,
title
:
'权限URL'
,
align
:
'center'
,
width
:
200
,
sort
:
true
},
{
field
:
'pid'
,
title
:
'父级权限ID'
,
align
:
'center'
,
width
:
100
,
sort
:
true
},
{
width
:
200
,
title
:
'操作'
,
align
:
'center'
,
toolbar
:
'#toolBar'
}
]],
id
:
'testReload'
,
page
:
true
,
height
:
480
});
var
$
=
layui
.
$
,
active
=
{
reload
:
function
(){
var
id
=
cheNull
(
$
(
'#id'
).
val
());
var
name
=
cheNull
(
$
(
'#name'
).
val
());
var
pid
=
cheNull
(
$
(
'#pid'
).
val
());
table
.
reload
(
'testReload'
,
{
where
:
{
id
:
id
,
name
:
name
,
pid
:
pid
},
page
:
{
curr
:
1
//重新从第 1 页开始
},
done
:
function
(
res
,
curr
,
count
){
this
.
where
=
{};
}
});
}
};
$
(
'.queryUserList'
).
on
(
'click'
,
function
(){
var
type
=
$
(
this
).
data
(
'type'
);
active
[
type
]
?
active
[
type
].
call
(
this
)
:
''
;
});
});
function
cheNull
(
str
)
{
if
(
str
==
""
){
return
undefined
;
}
else
{
return
str
;
}
}
</script>
</body>
</body>
</html>
</html>
\ No newline at end of file
src/main/webapp/WEB-INF/jsp/admin/role/list.jsp
View file @
571fde93
...
@@ -29,27 +29,39 @@
...
@@ -29,27 +29,39 @@
<i
class=
"fa fa-refresh line-size"
></i></a>
<i
class=
"fa fa-refresh line-size"
></i></a>
</div>
</div>
</div>
</div>
<a
class=
"layui-btn layui-btn-normal"
role=
"button"
style=
"margin-right: 10px;float: right"
href=
"${pageContext.request.contextPath}/admin/role/add"
>
添加角色
</a>
<div
class=
"layui-col-xs12 layui-col-sm12 layui-col-md12 searchDiv"
>
<div
class=
"layui-col-xs12 layui-col-sm12 layui-col-md12"
>
<div
class=
"layui-form-mid"
>
<table
class=
"layui-table"
<label
class=
"layui-form-label"
>
角色名称
</label>
lay-data=
"{height: 'full-110',even: true,url:'${pageContext.request.contextPath}/admin/role/list',limits:[10,30,50,100], limit: 10,page:true,id:'id'}"
<div
class=
"layui-input-inline"
>
lay-filter=
"user"
>
<input
type=
"text"
name=
"rolename"
id=
"rolename"
lay-verify=
"required"
<thead>
class=
"layui-input"
>
<tr>
</div>
<!--<th lay-data="{checkbox:true, fixed: true}"></th>-->
</div>
<th
lay-data=
"{field:'rn',align:'center', width:100, sort: true}"
>
序号
</th>
<div
class=
"layui-form-mid"
>
<th
lay-data=
"{field:'id',align:'center', width:200, sort: true}"
>
ID
</th>
<label
class=
"layui-form-label"
>
拥有权限
</label>
<th
lay-data=
"{field:'rolename',align:'center', width:200, sort: true}"
>
角色名称
</th>
<div
class=
"layui-input-block"
>
<
%
--
<
th
lay-data=
"{field:'sn', align:'center',width:100, sort: true}"
>
角色类型
</th>
<input
type=
"text"
name=
"permissionName"
id=
"permissionName"
lay-verify=
"required"
<th
lay-data=
"{field:'permission', align:'center',width:300, sort: true,templet: '#permissionTpl'}"
>
拥有权限
</th>
--%>
class=
"layui-input"
>
<th
lay-data=
"{field:'permissionName', align:'center',width:400, sort: true}"
>
拥有权限
</th>
</div>
<th
lay-data=
"{width:200, align:'center', toolbar: '#toolBar'}"
>
操作
</th>
</div>
</tr>
</thead>
<div
class=
"layui-form-item"
style=
"display: inline-block;width:100%;text-align: center;"
>
</table>
<div
class=
"layui-form-item demoTable"
>
<button
class=
"layui-btn layui-btn-normal queryUserList"
data-type=
"reload"
style=
"margin-left: 20px;"
>
查询
</button>
<button
class=
"layui-btn layui-btn-normal"
style=
"margin-left: 20px;"
onclick=
"reset();"
>
清空
</button>
<a
class=
"layui-btn layui-btn-normal"
role=
"button"
style=
"margin-left: 20px;"
href=
"${pageContext.request.contextPath}/admin/role/add"
>
添加角色
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<table
class=
"layui-table"
id=
"userTable"
lay-filter=
"user"
>
</table>
</div>
</div>
</div>
<script
type=
"text/html"
id=
"toolBar"
>
<script
type=
"text/html"
id=
"toolBar"
>
<
a
class
=
"color1 lineheight28"
lay
-
event
=
"update"
>
修改
<
/a
>
<
a
class
=
"color1 lineheight28"
lay
-
event
=
"update"
>
修改
<
/a
>
...
@@ -76,6 +88,7 @@
...
@@ -76,6 +88,7 @@
//console.log(elem)
//console.log(elem)
layer
.
msg
(
elem
.
text
());
layer
.
msg
(
elem
.
text
());
});
});
//监听工具条
//监听工具条
table
.
on
(
'tool(user)'
,
function
(
obj
)
{
table
.
on
(
'tool(user)'
,
function
(
obj
)
{
var
data
=
obj
.
data
;
var
data
=
obj
.
data
;
...
@@ -111,6 +124,69 @@
...
@@ -111,6 +124,69 @@
}
}
});
});
</script>
</script>
<script>
layui
.
use
(
'table'
,
function
(){
var
table
=
layui
.
table
;
//方法级渲染
table
.
render
({
id
:
"id"
,
elem
:
'#userTable'
,
limit
:
50
,
//默认采用10
url
:
'${pageContext.request.contextPath}/admin/role/list'
,
cols
:
[[
{
field
:
'rn'
,
title
:
'序号'
,
align
:
'center'
,
width
:
100
},
{
field
:
'id'
,
title
:
'ID'
,
align
:
'center'
,
width
:
200
,
sort
:
true
},
{
field
:
'rolename'
,
title
:
'角色名称'
,
align
:
'center'
,
width
:
400
,
sort
:
true
},
{
field
:
'permissionName'
,
title
:
'拥有权限'
,
align
:
'center'
,
width
:
200
,
sort
:
true
},
{
width
:
200
,
title
:
'操作'
,
align
:
'center'
,
toolbar
:
'#toolBar'
}
]],
id
:
'testReload'
,
page
:
true
,
// done: function(res, curr, count){
// $("[data-field='id']").css('display','none');
// },
height
:
480
});
var
$
=
layui
.
$
,
active
=
{
reload
:
function
(){
var
rolename
=
cheNull
(
$
(
'#rolename'
).
val
());
var
permissionName
=
cheNull
(
$
(
'#permissionName'
).
val
());
console
.
log
(
rolename
);
console
.
log
(
permissionName
);
table
.
reload
(
'testReload'
,
{
where
:
{
rolename
:
rolename
,
permissionName
:
permissionName
},
page
:
{
curr
:
1
//重新从第 1 页开始
},
done
:
function
(
res
,
curr
,
count
){
this
.
where
=
{};
}
});
}
};
$
(
'.queryUserList'
).
on
(
'click'
,
function
(){
var
type
=
$
(
this
).
data
(
'type'
);
active
[
type
]
?
active
[
type
].
call
(
this
)
:
''
;
});
});
function
cheNull
(
str
)
{
if
(
str
==
""
){
return
undefined
;
}
else
{
return
str
;
}
}
</script>
</body>
</body>
</html>
</html>
\ No newline at end of file
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