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
534e5615
Commit
534e5615
authored
Feb 01, 2019
by
Junling Bu
Browse files
fix[litemall-admin-api]: 后端返回前端权限API,而不是权限值。
parent
d95d42cc
Changes
1
Hide whitespace changes
Inline
Side-by-side
litemall-admin-api/src/main/java/org/linlinjava/litemall/admin/web/AdminAuthController.java
View file @
534e5615
...
...
@@ -9,6 +9,8 @@ import org.apache.shiro.authc.UnknownAccountException;
import
org.apache.shiro.authc.UsernamePasswordToken
;
import
org.apache.shiro.authz.annotation.RequiresAuthentication
;
import
org.apache.shiro.subject.Subject
;
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
;
import
org.linlinjava.litemall.db.domain.LitemallAdmin
;
...
...
@@ -16,6 +18,7 @@ import org.linlinjava.litemall.db.service.LitemallAdminService;
import
org.linlinjava.litemall.db.service.LitemallPermissionService
;
import
org.linlinjava.litemall.db.service.LitemallRoleService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.context.ApplicationContext
;
import
org.springframework.util.StringUtils
;
import
org.springframework.validation.annotation.Validated
;
import
org.springframework.web.bind.annotation.*
;
...
...
@@ -89,10 +92,44 @@ public class AdminAuthController {
Set
<
String
>
roles
=
roleService
.
queryByIds
(
roleIds
);
Set
<
String
>
permissions
=
permissionService
.
queryByRoleIds
(
roleIds
);
data
.
put
(
"roles"
,
roles
);
data
.
put
(
"perms"
,
permissions
);
// NOTE
// 这里需要转换perms结构,因为对于前端而已API形式的权限更容易理解
data
.
put
(
"perms"
,
toAPI
(
permissions
));
return
ResponseUtil
.
ok
(
data
);
}
@Autowired
private
ApplicationContext
context
;
private
HashMap
<
String
,
String
>
systemPermissionsMap
=
null
;
private
Collection
<
String
>
toAPI
(
Set
<
String
>
permissions
)
{
if
(
systemPermissionsMap
==
null
)
{
systemPermissionsMap
=
new
HashMap
<>();
final
String
basicPackage
=
"org.linlinjava.litemall.admin"
;
List
<
Permission
>
systemPermissions
=
PermissionUtil
.
listPermission
(
context
,
basicPackage
);
for
(
Permission
permission
:
systemPermissions
)
{
String
perm
=
permission
.
getRequiresPermissions
().
value
()[
0
];
String
api
=
permission
.
getApi
();
systemPermissionsMap
.
put
(
perm
,
api
);
}
}
Collection
<
String
>
apis
=
new
HashSet
<>();
for
(
String
perm
:
permissions
)
{
String
api
=
systemPermissionsMap
.
get
(
perm
);
apis
.
add
(
api
);
if
(
perm
.
equals
(
"*"
))
{
apis
.
clear
();
apis
.
add
(
"*"
);
return
apis
;
// return systemPermissionsMap.values();
}
}
return
apis
;
}
@GetMapping
(
"/401"
)
public
Object
page401
()
{
return
ResponseUtil
.
unlogin
();
...
...
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