swoft-rabc是一款简单高效的后台权限管理系统,使用swoft,d2admin构建。
- swoft
- php7.2.x
- MySQL 5.7.x,Redis
- elementUI
- d2admin
- Apexcharts图表
使用权限注解控制:菜单权限控制(RequiresPermissions)、 角色权限控制注解(RequiresRoles)
我们可以在Controller的方法上通过自定义权限注解进行权限控制,菜单权限控制用RequiresPermissions注解,比如下面这个方法只有当用户拥有user:add权限才能访问:
/**
* @RequestMapping(route="admin", method={RequestMethod::POST})
* @RequiresPermissions(value={"user:add"})
* @param Request $request
* @return array
*/
public function addUser(Request $request)
{
// ....
}
当用户没有user:add权限时,系统将抛出UnauthorizedException异常,由HttpExceptionHandler捕获,返回403状态码。 提供的权限注解可以参考:
/**
* 表示当前Subject需要角色admin和user。
* @RequiresRoles(value={"admin", "user"}, logical= Logical.AND)
* 表示当前Subject需要权限user:a或user:b。
* @RequiresPermissions (value={"user:a", "user:b"}, logical= Logical.OR)
*/
public function functionName(Request $request)
{
//....
}
├─系统管理
│ ├─用户管理
│ ├─角色管理
│ ├─菜单管理
│ ├─部门管理
├─系统监控
├─Redis监控
├─系统日志
├─登录日志
└─系统信息
└─服务器信息
git clone https://github.com/wjkang/d2-admin-server.git
composer install
- 配置数据库
cp .env.example .env
# HTTP
HTTP_PORT =
# Database Master nodes
DB_DSN =
DB_USERNAME =
DB_PASSWORD =
- 运行
php bin/swoft http:start