Commit 4c3c758b authored by Junling Bu's avatar Junling Bu
Browse files

feat[litemall-admin, litemall-admin-api, litemall-db]: 支持权限管理

parent 835fd6f8
package org.linlinjava.litemall.admin.annotation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface RequiresPermissionsDesc {
String[] menu();
String button();
}
...@@ -10,6 +10,8 @@ import org.apache.shiro.subject.PrincipalCollection; ...@@ -10,6 +10,8 @@ import org.apache.shiro.subject.PrincipalCollection;
import org.linlinjava.litemall.core.util.bcrypt.BCryptPasswordEncoder; import org.linlinjava.litemall.core.util.bcrypt.BCryptPasswordEncoder;
import org.linlinjava.litemall.db.domain.LitemallAdmin; import org.linlinjava.litemall.db.domain.LitemallAdmin;
import org.linlinjava.litemall.db.service.LitemallAdminService; import org.linlinjava.litemall.db.service.LitemallAdminService;
import org.linlinjava.litemall.db.service.LitemallPermissionService;
import org.linlinjava.litemall.db.service.LitemallRoleService;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -17,12 +19,17 @@ import org.springframework.util.Assert; ...@@ -17,12 +19,17 @@ import org.springframework.util.Assert;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import java.util.List; import java.util.List;
import java.util.Set;
public class AdminAuthorizingRealm extends AuthorizingRealm { public class AdminAuthorizingRealm extends AuthorizingRealm {
private static final Logger log = LoggerFactory.getLogger(AdminAuthorizingRealm.class); private static final Logger log = LoggerFactory.getLogger(AdminAuthorizingRealm.class);
@Autowired @Autowired
private LitemallAdminService adminService; private LitemallAdminService adminService;
@Autowired
private LitemallRoleService roleService;
@Autowired
private LitemallPermissionService permissionService;
@Override @Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) { protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
...@@ -30,9 +37,13 @@ public class AdminAuthorizingRealm extends AuthorizingRealm { ...@@ -30,9 +37,13 @@ public class AdminAuthorizingRealm extends AuthorizingRealm {
throw new AuthorizationException("PrincipalCollection method argument cannot be null."); throw new AuthorizationException("PrincipalCollection method argument cannot be null.");
} }
LitemallAdmin admin = (LitemallAdmin) getAvailablePrincipal(principals);
Integer[] roleIds = admin.getRoleIds();
Set<String> roles = roleService.queryByIds(roleIds);
Set<String> permissions = permissionService.queryByRoleIds(roleIds);
SimpleAuthorizationInfo info = new SimpleAuthorizationInfo(); SimpleAuthorizationInfo info = new SimpleAuthorizationInfo();
info.addRole("admin"); info.setRoles(roles);
info.addStringPermission("*"); info.setStringPermissions(permissions);
return info; return info;
} }
......
...@@ -17,5 +17,6 @@ public class AdminResponseCode { ...@@ -17,5 +17,6 @@ public class AdminResponseCode {
public static final Integer USER_INVALID_MOBILE = 632; public static final Integer USER_INVALID_MOBILE = 632;
public static final Integer USER_NAME_EXIST = 633; public static final Integer USER_NAME_EXIST = 633;
public static final Integer USER_MOBILE_EXIST = 634; public static final Integer USER_MOBILE_EXIST = 634;
public static final Integer ROLE_NAME_EXIST = 640;
public static final Integer ROLE_SUPER_SUPERMISSION = 641;
} }
package org.linlinjava.litemall.admin.util;
import java.util.List;
public class PermVo {
private String id;
private String label;
private List<PermVo> children;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public List<PermVo> getChildren() {
return children;
}
public void setChildren(List<PermVo> children) {
this.children = children;
}
}
package org.linlinjava.litemall.admin.util;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.reflect.MethodUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.springframework.context.ApplicationContext;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.stereotype.Controller;
import org.springframework.util.ClassUtils;
import java.lang.reflect.Method;
import java.util.*;
import java.util.stream.Collectors;
public class PermissionUtil {
public static Map<RequiresPermissions, RequiresPermissionsDesc> findPermissions(ApplicationContext context, String basicPackage) {
Map<String, Object> map = context.getBeansWithAnnotation(Controller.class);
Map<RequiresPermissions, RequiresPermissionsDesc> permissions = new HashMap<>();
for(Map.Entry<String, Object> entry : map.entrySet()){
Object bean = entry.getValue();
if(!StringUtils.contains(ClassUtils.getPackageName(bean.getClass()), basicPackage)){
continue;
}
Class<?> clz = bean.getClass();
Class controllerClz = clz.getSuperclass();
List<Method> methods = MethodUtils.getMethodsListWithAnnotation(controllerClz, RequiresPermissions.class);
for(Method method : methods){
RequiresPermissions requiresPermissions = AnnotationUtils.getAnnotation(method, RequiresPermissions.class);
RequiresPermissionsDesc requiresPermissionsDesc = AnnotationUtils.getAnnotation(method, RequiresPermissionsDesc.class);
if(requiresPermissions == null || requiresPermissionsDesc == null){
continue;
}
permissions.put(requiresPermissions, requiresPermissionsDesc);
}
}
return permissions;
}
public static List<PermVo> listPermissions(ApplicationContext context, String basicPackage) {
List<PermVo> root = new ArrayList<>();
Map<RequiresPermissions, RequiresPermissionsDesc> map = findPermissions(context, basicPackage);
for(Map.Entry<RequiresPermissions, RequiresPermissionsDesc> entry : map.entrySet()) {
RequiresPermissions requiresPermissions = entry.getKey();
RequiresPermissionsDesc requiresPermissionsDesc = entry.getValue();
String[] menus = requiresPermissionsDesc.menu();
if(menus.length != 2){
throw new RuntimeException("目前只支持两级菜单");
}
String menu1 = menus[0];
PermVo perm1 = null;
for(PermVo permVo : root){
if(permVo.getLabel().equals(menu1)){
perm1 = permVo;
break;
}
}
if(perm1 == null){
perm1 = new PermVo();
perm1.setId(menu1);
perm1.setLabel(menu1);
perm1.setChildren(new ArrayList<>());
root.add(perm1);
}
String menu2 = menus[1];
PermVo perm2 = null;
for(PermVo permVo : perm1.getChildren()){
if(permVo.getLabel().equals(menu2)){
perm2 = permVo;
break;
}
}
if(perm2 == null){
perm2 = new PermVo();
perm2.setId(menu2);
perm2.setLabel(menu2);
perm2.setChildren(new ArrayList<>());
perm1.getChildren().add(perm2);
}
PermVo leftPerm = new PermVo();
leftPerm.setId(requiresPermissions.value()[0]);
leftPerm.setLabel(requiresPermissionsDesc.button());
perm2.getChildren().add(leftPerm);
}
return root;
}
}
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -28,6 +29,7 @@ public class AdminAdController { ...@@ -28,6 +29,7 @@ public class AdminAdController {
private LitemallAdService adService; private LitemallAdService adService;
@RequiresPermissions("admin:ad:list") @RequiresPermissions("admin:ad:list")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="查询")
@RequestMapping("/list") @RequestMapping("/list")
public Object list(String name, String content, public Object list(String name, String content,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -56,6 +58,7 @@ public class AdminAdController { ...@@ -56,6 +58,7 @@ public class AdminAdController {
} }
@RequiresPermissions("admin:ad:create") @RequiresPermissions("admin:ad:create")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="添加")
@PostMapping("/create") @PostMapping("/create")
public Object create(@RequestBody LitemallAd ad) { public Object create(@RequestBody LitemallAd ad) {
Object error = validate(ad); Object error = validate(ad);
...@@ -67,6 +70,7 @@ public class AdminAdController { ...@@ -67,6 +70,7 @@ public class AdminAdController {
} }
@RequiresPermissions("admin:ad:read") @RequiresPermissions("admin:ad:read")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="详情")
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
LitemallAd brand = adService.findById(id); LitemallAd brand = adService.findById(id);
...@@ -74,6 +78,7 @@ public class AdminAdController { ...@@ -74,6 +78,7 @@ public class AdminAdController {
} }
@RequiresPermissions("admin:ad:update") @RequiresPermissions("admin:ad:update")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="编辑")
@PostMapping("/update") @PostMapping("/update")
public Object update(@RequestBody LitemallAd ad) { public Object update(@RequestBody LitemallAd ad) {
Object error = validate(ad); Object error = validate(ad);
...@@ -88,6 +93,7 @@ public class AdminAdController { ...@@ -88,6 +93,7 @@ public class AdminAdController {
} }
@RequiresPermissions("admin:ad:delete") @RequiresPermissions("admin:ad:delete")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallAd ad) { public Object delete(@RequestBody LitemallAd ad) {
Integer id = ad.getId(); Integer id = ad.getId();
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.RegexUtil; import org.linlinjava.litemall.core.util.RegexUtil;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.util.bcrypt.BCryptPasswordEncoder; import org.linlinjava.litemall.core.util.bcrypt.BCryptPasswordEncoder;
...@@ -32,6 +33,7 @@ public class AdminAdminController { ...@@ -32,6 +33,7 @@ public class AdminAdminController {
private LitemallAdminService adminService; private LitemallAdminService adminService;
@RequiresPermissions("admin:admin:list") @RequiresPermissions("admin:admin:list")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String username, public Object list(String username,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -63,6 +65,7 @@ public class AdminAdminController { ...@@ -63,6 +65,7 @@ public class AdminAdminController {
} }
@RequiresPermissions("admin:admin:create") @RequiresPermissions("admin:admin:create")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="添加")
@PostMapping("/create") @PostMapping("/create")
public Object create(@RequestBody LitemallAdmin admin) { public Object create(@RequestBody LitemallAdmin admin) {
Object error = validate(admin); Object error = validate(admin);
...@@ -85,6 +88,7 @@ public class AdminAdminController { ...@@ -85,6 +88,7 @@ public class AdminAdminController {
} }
@RequiresPermissions("admin:admin:read") @RequiresPermissions("admin:admin:read")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="详情")
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
LitemallAdmin admin = adminService.findById(id); LitemallAdmin admin = adminService.findById(id);
...@@ -92,6 +96,7 @@ public class AdminAdminController { ...@@ -92,6 +96,7 @@ public class AdminAdminController {
} }
@RequiresPermissions("admin:admin:update") @RequiresPermissions("admin:admin:update")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="编辑")
@PostMapping("/update") @PostMapping("/update")
public Object update(@RequestBody LitemallAdmin admin) { public Object update(@RequestBody LitemallAdmin admin) {
Object error = validate(admin); Object error = validate(admin);
...@@ -117,6 +122,7 @@ public class AdminAdminController { ...@@ -117,6 +122,7 @@ public class AdminAdminController {
} }
@RequiresPermissions("admin:admin:delete") @RequiresPermissions("admin:admin:delete")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallAdmin admin) { public Object delete(@RequestBody LitemallAdmin admin) {
Integer anotherAdminId = admin.getId(); Integer anotherAdminId = admin.getId();
......
...@@ -13,15 +13,14 @@ import org.linlinjava.litemall.core.util.JacksonUtil; ...@@ -13,15 +13,14 @@ import org.linlinjava.litemall.core.util.JacksonUtil;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.db.domain.LitemallAdmin; import org.linlinjava.litemall.db.domain.LitemallAdmin;
import org.linlinjava.litemall.db.service.LitemallAdminService; 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.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.ArrayList; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.linlinjava.litemall.admin.util.AdminResponseCode.ADMIN_INVALID_ACCOUNT; import static org.linlinjava.litemall.admin.util.AdminResponseCode.ADMIN_INVALID_ACCOUNT;
...@@ -33,6 +32,10 @@ public class AdminAuthController { ...@@ -33,6 +32,10 @@ public class AdminAuthController {
@Autowired @Autowired
private LitemallAdminService adminService; private LitemallAdminService adminService;
@Autowired
private LitemallRoleService roleService;
@Autowired
private LitemallPermissionService permissionService;
/* /*
* { username : value, password : value } * { username : value, password : value }
...@@ -82,12 +85,11 @@ public class AdminAuthController { ...@@ -82,12 +85,11 @@ public class AdminAuthController {
data.put("name", admin.getUsername()); data.put("name", admin.getUsername());
data.put("avatar", admin.getAvatar()); data.put("avatar", admin.getAvatar());
// 目前roles不支持,这里简单设置admin Integer[] roleIds = admin.getRoleIds();
List<String> roles = new ArrayList<>(); Set<String> roles = roleService.queryByIds(roleIds);
roles.add("admin"); Set<String> permissions = permissionService.queryByRoleIds(roleIds);
data.put("roles", roles); data.put("roles", roles);
data.put("perms", "*"); data.put("perms", permissions);
data.put("introduction", "admin introduction");
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} }
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -29,6 +30,7 @@ public class AdminBrandController { ...@@ -29,6 +30,7 @@ public class AdminBrandController {
private LitemallBrandService brandService; private LitemallBrandService brandService;
@RequiresPermissions("admin:brand:list") @RequiresPermissions("admin:brand:list")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String id, String name, public Object list(String id, String name,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -63,6 +65,7 @@ public class AdminBrandController { ...@@ -63,6 +65,7 @@ public class AdminBrandController {
} }
@RequiresPermissions("admin:brand:create") @RequiresPermissions("admin:brand:create")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="添加")
@PostMapping("/create") @PostMapping("/create")
public Object create(@RequestBody LitemallBrand brand) { public Object create(@RequestBody LitemallBrand brand) {
Object error = validate(brand); Object error = validate(brand);
...@@ -74,6 +77,7 @@ public class AdminBrandController { ...@@ -74,6 +77,7 @@ public class AdminBrandController {
} }
@RequiresPermissions("admin:brand:read") @RequiresPermissions("admin:brand:read")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="详情")
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
LitemallBrand brand = brandService.findById(id); LitemallBrand brand = brandService.findById(id);
...@@ -81,6 +85,7 @@ public class AdminBrandController { ...@@ -81,6 +85,7 @@ public class AdminBrandController {
} }
@RequiresPermissions("admin:brand:update") @RequiresPermissions("admin:brand:update")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="编辑")
@PostMapping("/update") @PostMapping("/update")
public Object update(@RequestBody LitemallBrand brand) { public Object update(@RequestBody LitemallBrand brand) {
Object error = validate(brand); Object error = validate(brand);
...@@ -94,6 +99,7 @@ public class AdminBrandController { ...@@ -94,6 +99,7 @@ public class AdminBrandController {
} }
@RequiresPermissions("admin:brand:delete") @RequiresPermissions("admin:brand:delete")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallBrand brand) { public Object delete(@RequestBody LitemallBrand brand) {
Integer id = brand.getId(); Integer id = brand.getId();
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -29,6 +30,7 @@ public class AdminCategoryController { ...@@ -29,6 +30,7 @@ public class AdminCategoryController {
private LitemallCategoryService categoryService; private LitemallCategoryService categoryService;
@RequiresPermissions("admin:category:list") @RequiresPermissions("admin:category:list")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String id, String name, public Object list(String id, String name,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -67,6 +69,7 @@ public class AdminCategoryController { ...@@ -67,6 +69,7 @@ public class AdminCategoryController {
} }
@RequiresPermissions("admin:category:create") @RequiresPermissions("admin:category:create")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="添加")
@PostMapping("/create") @PostMapping("/create")
public Object create(@RequestBody LitemallCategory category) { public Object create(@RequestBody LitemallCategory category) {
Object error = validate(category); Object error = validate(category);
...@@ -78,6 +81,7 @@ public class AdminCategoryController { ...@@ -78,6 +81,7 @@ public class AdminCategoryController {
} }
@RequiresPermissions("admin:category:read") @RequiresPermissions("admin:category:read")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="详情")
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
LitemallCategory category = categoryService.findById(id); LitemallCategory category = categoryService.findById(id);
...@@ -85,6 +89,7 @@ public class AdminCategoryController { ...@@ -85,6 +89,7 @@ public class AdminCategoryController {
} }
@RequiresPermissions("admin:category:update") @RequiresPermissions("admin:category:update")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="编辑")
@PostMapping("/update") @PostMapping("/update")
public Object update(@RequestBody LitemallCategory category) { public Object update(@RequestBody LitemallCategory category) {
Object error = validate(category); Object error = validate(category);
...@@ -99,6 +104,7 @@ public class AdminCategoryController { ...@@ -99,6 +104,7 @@ public class AdminCategoryController {
} }
@RequiresPermissions("admin:category:delete") @RequiresPermissions("admin:category:delete")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallCategory category) { public Object delete(@RequestBody LitemallCategory category) {
Integer id = category.getId(); Integer id = category.getId();
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -30,6 +31,7 @@ public class AdminCollectController { ...@@ -30,6 +31,7 @@ public class AdminCollectController {
@RequiresPermissions("admin:collect:list") @RequiresPermissions("admin:collect:list")
@RequiresPermissionsDesc(menu={"用户管理" , "用户收藏"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String userId, String valueId, public Object list(String userId, String valueId,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -26,6 +27,7 @@ public class AdminCommentController { ...@@ -26,6 +27,7 @@ public class AdminCommentController {
private LitemallCommentService commentService; private LitemallCommentService commentService;
@RequiresPermissions("admin:comment:list") @RequiresPermissions("admin:comment:list")
@RequiresPermissionsDesc(menu={"商品管理" , "评论管理"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String userId, String valueId, public Object list(String userId, String valueId,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -42,6 +44,7 @@ public class AdminCommentController { ...@@ -42,6 +44,7 @@ public class AdminCommentController {
} }
@RequiresPermissions("admin:comment:delete") @RequiresPermissions("admin:comment:delete")
@RequiresPermissionsDesc(menu={"商品管理" , "评论管理"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallComment comment) { public Object delete(@RequestBody LitemallComment comment) {
Integer id = comment.getId(); Integer id = comment.getId();
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -33,6 +34,7 @@ public class AdminCouponController { ...@@ -33,6 +34,7 @@ public class AdminCouponController {
private LitemallCouponUserService couponUserService; private LitemallCouponUserService couponUserService;
@RequiresPermissions("admin:coupon:list") @RequiresPermissions("admin:coupon:list")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String name, Short type, Short status, public Object list(String name, Short type, Short status,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -49,6 +51,7 @@ public class AdminCouponController { ...@@ -49,6 +51,7 @@ public class AdminCouponController {
} }
@RequiresPermissions("admin:coupon:list") @RequiresPermissions("admin:coupon:list")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="查询")
@GetMapping("/listuser") @GetMapping("/listuser")
public Object listuser(Integer userId, Integer couponId, Short status, public Object listuser(Integer userId, Integer couponId, Short status,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -73,6 +76,7 @@ public class AdminCouponController { ...@@ -73,6 +76,7 @@ public class AdminCouponController {
} }
@RequiresPermissions("admin:coupon:create") @RequiresPermissions("admin:coupon:create")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="添加")
@PostMapping("/create") @PostMapping("/create")
public Object create(@RequestBody LitemallCoupon coupon) { public Object create(@RequestBody LitemallCoupon coupon) {
Object error = validate(coupon); Object error = validate(coupon);
...@@ -91,6 +95,7 @@ public class AdminCouponController { ...@@ -91,6 +95,7 @@ public class AdminCouponController {
} }
@RequiresPermissions("admin:coupon:read") @RequiresPermissions("admin:coupon:read")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="详情")
@GetMapping("/read") @GetMapping("/read")
public Object read(@NotNull Integer id) { public Object read(@NotNull Integer id) {
LitemallCoupon coupon = couponService.findById(id); LitemallCoupon coupon = couponService.findById(id);
...@@ -98,6 +103,7 @@ public class AdminCouponController { ...@@ -98,6 +103,7 @@ public class AdminCouponController {
} }
@RequiresPermissions("admin:coupon:update") @RequiresPermissions("admin:coupon:update")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="编辑")
@PostMapping("/update") @PostMapping("/update")
public Object update(@RequestBody LitemallCoupon coupon) { public Object update(@RequestBody LitemallCoupon coupon) {
Object error = validate(coupon); Object error = validate(coupon);
...@@ -111,6 +117,7 @@ public class AdminCouponController { ...@@ -111,6 +117,7 @@ public class AdminCouponController {
} }
@RequiresPermissions("admin:coupon:delete") @RequiresPermissions("admin:coupon:delete")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallCoupon coupon) { public Object delete(@RequestBody LitemallCoupon coupon) {
couponService.deleteById(coupon.getId()); couponService.deleteById(coupon.getId());
......
...@@ -2,7 +2,6 @@ package org.linlinjava.litemall.admin.web; ...@@ -2,7 +2,6 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.db.service.LitemallGoodsProductService; import org.linlinjava.litemall.db.service.LitemallGoodsProductService;
import org.linlinjava.litemall.db.service.LitemallGoodsService; import org.linlinjava.litemall.db.service.LitemallGoodsService;
...@@ -32,7 +31,6 @@ public class AdminDashbordController { ...@@ -32,7 +31,6 @@ public class AdminDashbordController {
@Autowired @Autowired
private LitemallOrderService orderService; private LitemallOrderService orderService;
@RequiresPermissions("admin:dashboard:info")
@GetMapping("") @GetMapping("")
public Object info() { public Object info() {
int userTotal = userService.count(); int userTotal = userService.count();
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -33,6 +34,7 @@ public class AdminFeedbackController { ...@@ -33,6 +34,7 @@ public class AdminFeedbackController {
private LitemallFeedbackService feedbackService; private LitemallFeedbackService feedbackService;
@RequiresPermissions("admin:feedback:list") @RequiresPermissions("admin:feedback:list")
@RequiresPermissionsDesc(menu={"用户管理" , "意见反馈"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(Integer userId, String username, public Object list(Integer userId, String username,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -29,6 +30,7 @@ public class AdminFootprintController { ...@@ -29,6 +30,7 @@ public class AdminFootprintController {
private LitemallFootprintService footprintService; private LitemallFootprintService footprintService;
@RequiresPermissions("admin:footprint:list") @RequiresPermissions("admin:footprint:list")
@RequiresPermissionsDesc(menu={"用户管理" , "用户足迹"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String userId, String goodsId, public Object list(String userId, String goodsId,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.admin.dao.GoodsAllinone; import org.linlinjava.litemall.admin.dao.GoodsAllinone;
import org.linlinjava.litemall.admin.util.CatVo; import org.linlinjava.litemall.admin.util.CatVo;
import org.linlinjava.litemall.core.qcode.QCodeService; import org.linlinjava.litemall.core.qcode.QCodeService;
...@@ -60,6 +61,7 @@ public class AdminGoodsController { ...@@ -60,6 +61,7 @@ public class AdminGoodsController {
private QCodeService qCodeService; private QCodeService qCodeService;
@RequiresPermissions("admin:goods:list") @RequiresPermissions("admin:goods:list")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String goodsSn, String name, public Object list(String goodsSn, String name,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -162,6 +164,7 @@ public class AdminGoodsController { ...@@ -162,6 +164,7 @@ public class AdminGoodsController {
* 所以这里可能需要重新设计。 * 所以这里可能需要重新设计。
*/ */
@RequiresPermissions("admin:goods:update") @RequiresPermissions("admin:goods:update")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="编辑")
@PostMapping("/update") @PostMapping("/update")
public Object update(@RequestBody GoodsAllinone goodsAllinone) { public Object update(@RequestBody GoodsAllinone goodsAllinone) {
Object error = validate(goodsAllinone); Object error = validate(goodsAllinone);
...@@ -234,6 +237,7 @@ public class AdminGoodsController { ...@@ -234,6 +237,7 @@ public class AdminGoodsController {
} }
@RequiresPermissions("admin:goods:delete") @RequiresPermissions("admin:goods:delete")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallGoods goods) { public Object delete(@RequestBody LitemallGoods goods) {
Integer id = goods.getId(); Integer id = goods.getId();
...@@ -262,6 +266,7 @@ public class AdminGoodsController { ...@@ -262,6 +266,7 @@ public class AdminGoodsController {
} }
@RequiresPermissions("admin:goods:create") @RequiresPermissions("admin:goods:create")
@RequiresPermissionsDesc(menu={"商品管理" , "商品上架"}, button="上架")
@PostMapping("/create") @PostMapping("/create")
public Object create(@RequestBody GoodsAllinone goodsAllinone) { public Object create(@RequestBody GoodsAllinone goodsAllinone) {
Object error = validate(goodsAllinone); Object error = validate(goodsAllinone);
...@@ -325,6 +330,7 @@ public class AdminGoodsController { ...@@ -325,6 +330,7 @@ public class AdminGoodsController {
} }
@RequiresPermissions("admin:goods:list") @RequiresPermissions("admin:goods:list")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="查询")
@GetMapping("/catAndBrand") @GetMapping("/catAndBrand")
public Object list2() { public Object list2() {
// http://element-cn.eleme.io/#/zh-CN/component/cascader // http://element-cn.eleme.io/#/zh-CN/component/cascader
...@@ -368,6 +374,7 @@ public class AdminGoodsController { ...@@ -368,6 +374,7 @@ public class AdminGoodsController {
} }
@RequiresPermissions("admin:goods:read") @RequiresPermissions("admin:goods:read")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="编辑")
@GetMapping("/detail") @GetMapping("/detail")
public Object detail(@NotNull Integer id) { public Object detail(@NotNull Integer id) {
LitemallGoods goods = goodsService.findById(id); LitemallGoods goods = goodsService.findById(id);
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -37,6 +38,7 @@ public class AdminGrouponController { ...@@ -37,6 +38,7 @@ public class AdminGrouponController {
private LitemallGrouponService grouponService; private LitemallGrouponService grouponService;
@RequiresPermissions("admin:groupon:read") @RequiresPermissions("admin:groupon:read")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="查询")
@GetMapping("/listRecord") @GetMapping("/listRecord")
public Object listRecord(String grouponId, public Object listRecord(String grouponId,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -72,7 +74,8 @@ public class AdminGrouponController { ...@@ -72,7 +74,8 @@ public class AdminGrouponController {
return ResponseUtil.ok(data); return ResponseUtil.ok(data);
} }
@RequiresPermissions("admin:groupon:delete") @RequiresPermissions("admin:groupon:list")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String goodsId, public Object list(String goodsId,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
...@@ -110,6 +113,7 @@ public class AdminGrouponController { ...@@ -110,6 +113,7 @@ public class AdminGrouponController {
} }
@RequiresPermissions("admin:groupon:update") @RequiresPermissions("admin:groupon:update")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="编辑")
@PostMapping("/update") @PostMapping("/update")
public Object update(@RequestBody LitemallGrouponRules grouponRules) { public Object update(@RequestBody LitemallGrouponRules grouponRules) {
Object error = validate(grouponRules); Object error = validate(grouponRules);
...@@ -134,6 +138,7 @@ public class AdminGrouponController { ...@@ -134,6 +138,7 @@ public class AdminGrouponController {
} }
@RequiresPermissions("admin:groupon:create") @RequiresPermissions("admin:groupon:create")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="添加")
@PostMapping("/create") @PostMapping("/create")
public Object create(@RequestBody LitemallGrouponRules grouponRules) { public Object create(@RequestBody LitemallGrouponRules grouponRules) {
Object error = validate(grouponRules); Object error = validate(grouponRules);
...@@ -156,6 +161,7 @@ public class AdminGrouponController { ...@@ -156,6 +161,7 @@ public class AdminGrouponController {
} }
@RequiresPermissions("admin:groupon:delete") @RequiresPermissions("admin:groupon:delete")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="删除")
@PostMapping("/delete") @PostMapping("/delete")
public Object delete(@RequestBody LitemallGrouponRules grouponRules) { public Object delete(@RequestBody LitemallGrouponRules grouponRules) {
Integer id = grouponRules.getId(); Integer id = grouponRules.getId();
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order; import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort; import org.linlinjava.litemall.core.validator.Sort;
...@@ -27,6 +28,7 @@ public class AdminHistoryController { ...@@ -27,6 +28,7 @@ public class AdminHistoryController {
private LitemallSearchHistoryService searchHistoryService; private LitemallSearchHistoryService searchHistoryService;
@RequiresPermissions("admin:history:list") @RequiresPermissions("admin:history:list")
@RequiresPermissionsDesc(menu={"用户管理" , "搜索历史"}, button="查询")
@GetMapping("/list") @GetMapping("/list")
public Object list(String userId, String keyword, public Object list(String userId, String keyword,
@RequestParam(defaultValue = "1") Integer page, @RequestParam(defaultValue = "1") Integer page,
......
...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web; ...@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.*; import org.apache.shiro.authz.annotation.*;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil; import org.linlinjava.litemall.core.util.ResponseUtil;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
...@@ -48,12 +49,14 @@ public class AdminIndexController { ...@@ -48,12 +49,14 @@ public class AdminIndexController {
} }
@RequiresPermissions("index:permission:read") @RequiresPermissions("index:permission:read")
@RequiresPermissionsDesc(menu={"其他" , "权限测试"}, button="权限读")
@RequestMapping("/read") @RequestMapping("/read")
public Object read() { public Object read() {
return ResponseUtil.ok("hello world, this is admin service"); return ResponseUtil.ok("hello world, this is admin service");
} }
@RequiresPermissions("index:permission:write") @RequiresPermissions("index:permission:write")
@RequiresPermissionsDesc(menu={"其他" , "权限测试"}, button="权限写")
@RequestMapping("/write") @RequestMapping("/write")
public Object write() { public Object write() {
return ResponseUtil.ok("hello world, this is admin service"); return ResponseUtil.ok("hello world, this is admin service");
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment