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;
import org.linlinjava.litemall.core.util.bcrypt.BCryptPasswordEncoder;
import org.linlinjava.litemall.db.domain.LitemallAdmin;
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.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -17,12 +19,17 @@ import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Set;
public class AdminAuthorizingRealm extends AuthorizingRealm {
private static final Logger log = LoggerFactory.getLogger(AdminAuthorizingRealm.class);
@Autowired
private LitemallAdminService adminService;
@Autowired
private LitemallRoleService roleService;
@Autowired
private LitemallPermissionService permissionService;
@Override
protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principals) {
......@@ -30,9 +37,13 @@ public class AdminAuthorizingRealm extends AuthorizingRealm {
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();
info.addRole("admin");
info.addStringPermission("*");
info.setRoles(roles);
info.setStringPermissions(permissions);
return info;
}
......
......@@ -17,5 +17,6 @@ public class AdminResponseCode {
public static final Integer USER_INVALID_MOBILE = 632;
public static final Integer USER_NAME_EXIST = 633;
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;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -28,6 +29,7 @@ public class AdminAdController {
private LitemallAdService adService;
@RequiresPermissions("admin:ad:list")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="查询")
@RequestMapping("/list")
public Object list(String name, String content,
@RequestParam(defaultValue = "1") Integer page,
......@@ -56,6 +58,7 @@ public class AdminAdController {
}
@RequiresPermissions("admin:ad:create")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="添加")
@PostMapping("/create")
public Object create(@RequestBody LitemallAd ad) {
Object error = validate(ad);
......@@ -67,6 +70,7 @@ public class AdminAdController {
}
@RequiresPermissions("admin:ad:read")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="详情")
@GetMapping("/read")
public Object read(@NotNull Integer id) {
LitemallAd brand = adService.findById(id);
......@@ -74,6 +78,7 @@ public class AdminAdController {
}
@RequiresPermissions("admin:ad:update")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="编辑")
@PostMapping("/update")
public Object update(@RequestBody LitemallAd ad) {
Object error = validate(ad);
......@@ -88,6 +93,7 @@ public class AdminAdController {
}
@RequiresPermissions("admin:ad:delete")
@RequiresPermissionsDesc(menu={"推广管理" , "广告管理"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallAd ad) {
Integer id = ad.getId();
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.ResponseUtil;
import org.linlinjava.litemall.core.util.bcrypt.BCryptPasswordEncoder;
......@@ -32,6 +33,7 @@ public class AdminAdminController {
private LitemallAdminService adminService;
@RequiresPermissions("admin:admin:list")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="查询")
@GetMapping("/list")
public Object list(String username,
@RequestParam(defaultValue = "1") Integer page,
......@@ -63,6 +65,7 @@ public class AdminAdminController {
}
@RequiresPermissions("admin:admin:create")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="添加")
@PostMapping("/create")
public Object create(@RequestBody LitemallAdmin admin) {
Object error = validate(admin);
......@@ -85,6 +88,7 @@ public class AdminAdminController {
}
@RequiresPermissions("admin:admin:read")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="详情")
@GetMapping("/read")
public Object read(@NotNull Integer id) {
LitemallAdmin admin = adminService.findById(id);
......@@ -92,6 +96,7 @@ public class AdminAdminController {
}
@RequiresPermissions("admin:admin:update")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="编辑")
@PostMapping("/update")
public Object update(@RequestBody LitemallAdmin admin) {
Object error = validate(admin);
......@@ -117,6 +122,7 @@ public class AdminAdminController {
}
@RequiresPermissions("admin:admin:delete")
@RequiresPermissionsDesc(menu={"系统管理" , "管理员管理"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallAdmin admin) {
Integer anotherAdminId = admin.getId();
......
......@@ -13,15 +13,14 @@ import org.linlinjava.litemall.core.util.JacksonUtil;
import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.db.domain.LitemallAdmin;
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.util.StringUtils;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import static org.linlinjava.litemall.admin.util.AdminResponseCode.ADMIN_INVALID_ACCOUNT;
......@@ -33,6 +32,10 @@ public class AdminAuthController {
@Autowired
private LitemallAdminService adminService;
@Autowired
private LitemallRoleService roleService;
@Autowired
private LitemallPermissionService permissionService;
/*
* { username : value, password : value }
......@@ -82,12 +85,11 @@ public class AdminAuthController {
data.put("name", admin.getUsername());
data.put("avatar", admin.getAvatar());
// 目前roles不支持,这里简单设置admin
List<String> roles = new ArrayList<>();
roles.add("admin");
Integer[] roleIds = admin.getRoleIds();
Set<String> roles = roleService.queryByIds(roleIds);
Set<String> permissions = permissionService.queryByRoleIds(roleIds);
data.put("roles", roles);
data.put("perms", "*");
data.put("introduction", "admin introduction");
data.put("perms", permissions);
return ResponseUtil.ok(data);
}
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -29,6 +30,7 @@ public class AdminBrandController {
private LitemallBrandService brandService;
@RequiresPermissions("admin:brand:list")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="查询")
@GetMapping("/list")
public Object list(String id, String name,
@RequestParam(defaultValue = "1") Integer page,
......@@ -63,6 +65,7 @@ public class AdminBrandController {
}
@RequiresPermissions("admin:brand:create")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="添加")
@PostMapping("/create")
public Object create(@RequestBody LitemallBrand brand) {
Object error = validate(brand);
......@@ -74,6 +77,7 @@ public class AdminBrandController {
}
@RequiresPermissions("admin:brand:read")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="详情")
@GetMapping("/read")
public Object read(@NotNull Integer id) {
LitemallBrand brand = brandService.findById(id);
......@@ -81,6 +85,7 @@ public class AdminBrandController {
}
@RequiresPermissions("admin:brand:update")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="编辑")
@PostMapping("/update")
public Object update(@RequestBody LitemallBrand brand) {
Object error = validate(brand);
......@@ -94,6 +99,7 @@ public class AdminBrandController {
}
@RequiresPermissions("admin:brand:delete")
@RequiresPermissionsDesc(menu={"商场管理" , "品牌管理"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallBrand brand) {
Integer id = brand.getId();
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -29,6 +30,7 @@ public class AdminCategoryController {
private LitemallCategoryService categoryService;
@RequiresPermissions("admin:category:list")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="查询")
@GetMapping("/list")
public Object list(String id, String name,
@RequestParam(defaultValue = "1") Integer page,
......@@ -67,6 +69,7 @@ public class AdminCategoryController {
}
@RequiresPermissions("admin:category:create")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="添加")
@PostMapping("/create")
public Object create(@RequestBody LitemallCategory category) {
Object error = validate(category);
......@@ -78,6 +81,7 @@ public class AdminCategoryController {
}
@RequiresPermissions("admin:category:read")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="详情")
@GetMapping("/read")
public Object read(@NotNull Integer id) {
LitemallCategory category = categoryService.findById(id);
......@@ -85,6 +89,7 @@ public class AdminCategoryController {
}
@RequiresPermissions("admin:category:update")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="编辑")
@PostMapping("/update")
public Object update(@RequestBody LitemallCategory category) {
Object error = validate(category);
......@@ -99,6 +104,7 @@ public class AdminCategoryController {
}
@RequiresPermissions("admin:category:delete")
@RequiresPermissionsDesc(menu={"商场管理" , "类目管理"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallCategory category) {
Integer id = category.getId();
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -30,6 +31,7 @@ public class AdminCollectController {
@RequiresPermissions("admin:collect:list")
@RequiresPermissionsDesc(menu={"用户管理" , "用户收藏"}, button="查询")
@GetMapping("/list")
public Object list(String userId, String valueId,
@RequestParam(defaultValue = "1") Integer page,
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -26,6 +27,7 @@ public class AdminCommentController {
private LitemallCommentService commentService;
@RequiresPermissions("admin:comment:list")
@RequiresPermissionsDesc(menu={"商品管理" , "评论管理"}, button="查询")
@GetMapping("/list")
public Object list(String userId, String valueId,
@RequestParam(defaultValue = "1") Integer page,
......@@ -42,6 +44,7 @@ public class AdminCommentController {
}
@RequiresPermissions("admin:comment:delete")
@RequiresPermissionsDesc(menu={"商品管理" , "评论管理"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallComment comment) {
Integer id = comment.getId();
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -33,6 +34,7 @@ public class AdminCouponController {
private LitemallCouponUserService couponUserService;
@RequiresPermissions("admin:coupon:list")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="查询")
@GetMapping("/list")
public Object list(String name, Short type, Short status,
@RequestParam(defaultValue = "1") Integer page,
......@@ -49,6 +51,7 @@ public class AdminCouponController {
}
@RequiresPermissions("admin:coupon:list")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="查询")
@GetMapping("/listuser")
public Object listuser(Integer userId, Integer couponId, Short status,
@RequestParam(defaultValue = "1") Integer page,
......@@ -73,6 +76,7 @@ public class AdminCouponController {
}
@RequiresPermissions("admin:coupon:create")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="添加")
@PostMapping("/create")
public Object create(@RequestBody LitemallCoupon coupon) {
Object error = validate(coupon);
......@@ -91,6 +95,7 @@ public class AdminCouponController {
}
@RequiresPermissions("admin:coupon:read")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="详情")
@GetMapping("/read")
public Object read(@NotNull Integer id) {
LitemallCoupon coupon = couponService.findById(id);
......@@ -98,6 +103,7 @@ public class AdminCouponController {
}
@RequiresPermissions("admin:coupon:update")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="编辑")
@PostMapping("/update")
public Object update(@RequestBody LitemallCoupon coupon) {
Object error = validate(coupon);
......@@ -111,6 +117,7 @@ public class AdminCouponController {
}
@RequiresPermissions("admin:coupon:delete")
@RequiresPermissionsDesc(menu={"推广管理" , "优惠券管理"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallCoupon coupon) {
couponService.deleteById(coupon.getId());
......
......@@ -2,7 +2,6 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.db.service.LitemallGoodsProductService;
import org.linlinjava.litemall.db.service.LitemallGoodsService;
......@@ -32,7 +31,6 @@ public class AdminDashbordController {
@Autowired
private LitemallOrderService orderService;
@RequiresPermissions("admin:dashboard:info")
@GetMapping("")
public Object info() {
int userTotal = userService.count();
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -33,6 +34,7 @@ public class AdminFeedbackController {
private LitemallFeedbackService feedbackService;
@RequiresPermissions("admin:feedback:list")
@RequiresPermissionsDesc(menu={"用户管理" , "意见反馈"}, button="查询")
@GetMapping("/list")
public Object list(Integer userId, String username,
@RequestParam(defaultValue = "1") Integer page,
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -29,6 +30,7 @@ public class AdminFootprintController {
private LitemallFootprintService footprintService;
@RequiresPermissions("admin:footprint:list")
@RequiresPermissionsDesc(menu={"用户管理" , "用户足迹"}, button="查询")
@GetMapping("/list")
public Object list(String userId, String goodsId,
@RequestParam(defaultValue = "1") Integer page,
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.util.CatVo;
import org.linlinjava.litemall.core.qcode.QCodeService;
......@@ -60,6 +61,7 @@ public class AdminGoodsController {
private QCodeService qCodeService;
@RequiresPermissions("admin:goods:list")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="查询")
@GetMapping("/list")
public Object list(String goodsSn, String name,
@RequestParam(defaultValue = "1") Integer page,
......@@ -162,6 +164,7 @@ public class AdminGoodsController {
* 所以这里可能需要重新设计。
*/
@RequiresPermissions("admin:goods:update")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="编辑")
@PostMapping("/update")
public Object update(@RequestBody GoodsAllinone goodsAllinone) {
Object error = validate(goodsAllinone);
......@@ -234,6 +237,7 @@ public class AdminGoodsController {
}
@RequiresPermissions("admin:goods:delete")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallGoods goods) {
Integer id = goods.getId();
......@@ -262,6 +266,7 @@ public class AdminGoodsController {
}
@RequiresPermissions("admin:goods:create")
@RequiresPermissionsDesc(menu={"商品管理" , "商品上架"}, button="上架")
@PostMapping("/create")
public Object create(@RequestBody GoodsAllinone goodsAllinone) {
Object error = validate(goodsAllinone);
......@@ -325,6 +330,7 @@ public class AdminGoodsController {
}
@RequiresPermissions("admin:goods:list")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="查询")
@GetMapping("/catAndBrand")
public Object list2() {
// http://element-cn.eleme.io/#/zh-CN/component/cascader
......@@ -368,6 +374,7 @@ public class AdminGoodsController {
}
@RequiresPermissions("admin:goods:read")
@RequiresPermissionsDesc(menu={"商品管理" , "商品列表"}, button="编辑")
@GetMapping("/detail")
public Object detail(@NotNull Integer id) {
LitemallGoods goods = goodsService.findById(id);
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -37,6 +38,7 @@ public class AdminGrouponController {
private LitemallGrouponService grouponService;
@RequiresPermissions("admin:groupon:read")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="查询")
@GetMapping("/listRecord")
public Object listRecord(String grouponId,
@RequestParam(defaultValue = "1") Integer page,
......@@ -72,7 +74,8 @@ public class AdminGrouponController {
return ResponseUtil.ok(data);
}
@RequiresPermissions("admin:groupon:delete")
@RequiresPermissions("admin:groupon:list")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="查询")
@GetMapping("/list")
public Object list(String goodsId,
@RequestParam(defaultValue = "1") Integer page,
......@@ -110,6 +113,7 @@ public class AdminGrouponController {
}
@RequiresPermissions("admin:groupon:update")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="编辑")
@PostMapping("/update")
public Object update(@RequestBody LitemallGrouponRules grouponRules) {
Object error = validate(grouponRules);
......@@ -134,6 +138,7 @@ public class AdminGrouponController {
}
@RequiresPermissions("admin:groupon:create")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="添加")
@PostMapping("/create")
public Object create(@RequestBody LitemallGrouponRules grouponRules) {
Object error = validate(grouponRules);
......@@ -156,6 +161,7 @@ public class AdminGrouponController {
}
@RequiresPermissions("admin:groupon:delete")
@RequiresPermissionsDesc(menu={"推广管理" , "团购管理"}, button="删除")
@PostMapping("/delete")
public Object delete(@RequestBody LitemallGrouponRules grouponRules) {
Integer id = grouponRules.getId();
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
......@@ -27,6 +28,7 @@ public class AdminHistoryController {
private LitemallSearchHistoryService searchHistoryService;
@RequiresPermissions("admin:history:list")
@RequiresPermissionsDesc(menu={"用户管理" , "搜索历史"}, button="查询")
@GetMapping("/list")
public Object list(String userId, String keyword,
@RequestParam(defaultValue = "1") Integer page,
......
......@@ -3,6 +3,7 @@ package org.linlinjava.litemall.admin.web;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.shiro.authz.annotation.*;
import org.linlinjava.litemall.admin.annotation.RequiresPermissionsDesc;
import org.linlinjava.litemall.core.util.ResponseUtil;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
......@@ -48,12 +49,14 @@ public class AdminIndexController {
}
@RequiresPermissions("index:permission:read")
@RequiresPermissionsDesc(menu={"其他" , "权限测试"}, button="权限读")
@RequestMapping("/read")
public Object read() {
return ResponseUtil.ok("hello world, this is admin service");
}
@RequiresPermissions("index:permission:write")
@RequiresPermissionsDesc(menu={"其他" , "权限测试"}, button="权限写")
@RequestMapping("/write")
public Object write() {
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