Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
d95d42cc
Commit
d95d42cc
authored
Feb 01, 2019
by
Junling Bu
Browse files
fix[litemall-admin-api]: 权限值列表修复
parent
7dba6ce5
Changes
4
Show whitespace changes
Inline
Side-by-side
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/util/PermissionUtil.java
View file @
d95d42cc
...
...
@@ -13,15 +13,12 @@ import org.springframework.web.bind.annotation.PostMapping;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
java.lang.reflect.Method
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.*
;
public
class
PermissionUtil
{
public
static
List
<
PermVo
>
listPerm
issions
(
ApplicationContext
context
,
String
basicPackage
)
{
public
static
List
<
PermVo
>
listPerm
Vo
(
List
<
Permission
>
permissions
)
{
List
<
PermVo
>
root
=
new
ArrayList
<>();
List
<
Permission
>
permissions
=
findPermissions
(
context
,
basicPackage
);
for
(
Permission
permission
:
permissions
)
{
RequiresPermissions
requiresPermissions
=
permission
.
getRequiresPermissions
();
RequiresPermissionsDesc
requiresPermissionsDesc
=
permission
.
getRequiresPermissionsDesc
();
...
...
@@ -88,7 +85,7 @@ public class PermissionUtil {
return
root
;
}
public
static
List
<
Permission
>
find
Permission
s
(
ApplicationContext
context
,
String
basicPackage
)
{
public
static
List
<
Permission
>
list
Permission
(
ApplicationContext
context
,
String
basicPackage
)
{
Map
<
String
,
Object
>
map
=
context
.
getBeansWithAnnotation
(
Controller
.
class
);
List
<
Permission
>
permissions
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
String
,
Object
>
entry
:
map
.
entrySet
())
{
...
...
@@ -143,4 +140,11 @@ public class PermissionUtil {
return
permissions
;
}
public
static
Set
<
String
>
listPermissionString
(
List
<
Permission
>
permissions
)
{
Set
<
String
>
permissionsString
=
new
HashSet
<>();
for
(
Permission
permission
:
permissions
){
permissionsString
.
add
(
permission
.
getRequiresPermissions
().
value
()[
0
]);
}
return
permissionsString
;
}
}
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminCouponController.java
View file @
d95d42cc
...
...
@@ -50,7 +50,7 @@ public class AdminCouponController {
return
ResponseUtil
.
ok
(
data
);
}
@RequiresPermissions
(
"admin:coupon:list"
)
@RequiresPermissions
(
"admin:coupon:list
user
"
)
@RequiresPermissionsDesc
(
menu
={
"推广管理"
,
"优惠券管理"
},
button
=
"查询用户"
)
@GetMapping
(
"/listuser"
)
public
Object
listuser
(
Integer
userId
,
Integer
couponId
,
Short
status
,
...
...
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminRoleController.java
View file @
d95d42cc
...
...
@@ -8,6 +8,7 @@ import org.apache.shiro.subject.Subject;
import
org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc
;
import
org.linlinjava.litemall.admin.util.AdminResponseCode
;
import
org.linlinjava.litemall.admin.util.PermVo
;
import
org.linlinjava.litemall.admin.util.Permission
;
import
org.linlinjava.litemall.admin.util.PermissionUtil
;
import
org.linlinjava.litemall.core.util.JacksonUtil
;
import
org.linlinjava.litemall.core.util.ResponseUtil
;
...
...
@@ -138,30 +139,25 @@ public class AdminRoleController {
@Autowired
private
ApplicationContext
context
;
private
List
<
PermVo
>
systemPermissions
=
null
;
private
Set
<
String
>
systemPermissionsString
=
null
;
private
List
<
PermVo
>
getSystemPermissions
(){
final
String
basicPackage
=
"org.linlinjava.litemall.admin"
;
if
(
systemPermissions
==
null
){
systemPermissions
=
PermissionUtil
.
listPermissions
(
context
,
basicPackage
);
List
<
Permission
>
permissions
=
PermissionUtil
.
listPermission
(
context
,
basicPackage
);
systemPermissions
=
PermissionUtil
.
listPermVo
(
permissions
);
systemPermissionsString
=
PermissionUtil
.
listPermissionString
(
permissions
);
}
return
systemPermissions
;
}
private
Set
<
String
>
getSystemPermissionsString
(){
getSystemPermissions
();
Set
<
String
>
permissions
=
new
HashSet
<
String
>();
for
(
PermVo
permVo
:
systemPermissions
){
permissions
.
add
(
permVo
.
getId
());
}
return
permissions
;
}
private
Set
<
String
>
getAssignedPermissions
(
Integer
roleId
){
// 这里需要注意的是,如果存在超级权限*,那么这里需要转化成当前所有系统权限。
// 之所以这么做,是因为前端不能识别超级权限,所以这里需要转换一下。
Set
<
String
>
assignedPermissions
=
null
;
if
(
permissionService
.
checkSuperPermission
(
roleId
)){
assignedPermissions
=
getSystemPermissionsString
();
getSystemPermissions
();
assignedPermissions
=
systemPermissionsString
;
}
else
{
assignedPermissions
=
permissionService
.
queryByRoleId
(
roleId
);
...
...
@@ -175,7 +171,7 @@ public class AdminRoleController {
*
* @return 系统所有权限列表和管理员已分配权限
*/
@RequiresPermissions
(
"admin:role:permission"
)
@RequiresPermissions
(
"admin:role:permission
:get
"
)
@RequiresPermissionsDesc
(
menu
={
"系统管理"
,
"角色管理"
},
button
=
"权限详情"
)
@GetMapping
(
"/permissions"
)
public
Object
getPermissions
(
Integer
roleId
)
{
...
...
@@ -195,7 +191,7 @@ public class AdminRoleController {
* @param body
* @return
*/
@RequiresPermissions
(
"admin:role:permission"
)
@RequiresPermissions
(
"admin:role:permission
:update
"
)
@RequiresPermissionsDesc
(
menu
={
"系统管理"
,
"角色管理"
},
button
=
"权限变更"
)
@PostMapping
(
"/permissions"
)
public
Object
updatePermissions
(
@RequestBody
String
body
)
{
...
...
litemall-admin-api/src/test/java/org/linlinjava/litemall/admin/PermissionTest.java
View file @
d95d42cc
...
...
@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.linlinjava.litemall.admin.util.PermVo
;
import
org.linlinjava.litemall.admin.util.Permission
;
import
org.linlinjava.litemall.admin.util.PermissionUtil
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
...
...
@@ -23,7 +24,8 @@ public class PermissionTest {
@Test
public
void
test
()
{
final
String
basicPackage
=
"org.linlinjava.litemall.admin"
;
List
<
PermVo
>
permVoList
=
PermissionUtil
.
listPermissions
(
context
,
basicPackage
);
List
<
Permission
>
permissionList
=
PermissionUtil
.
listPermission
(
context
,
basicPackage
);
List
<
PermVo
>
permVoList
=
PermissionUtil
.
listPermVo
(
permissionList
);
permVoList
.
stream
().
forEach
(
System
.
out
::
println
);
}
}
Write
Preview
Supports
Markdown
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