123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342 |
- <?php
- /**
- * Created by PhpStorm.
- * User: shensong
- * Date: 2020/12/24
- * Time: 11:23
- */
- namespace App\Http\Controllers\Api;
- use App\Models\Users;
- use App\Services\UsersService;
- use Illuminate\Http\Request;
- class RolePermissionController extends Controller
- {
- /*
- * 获取路径列表
- */
- public function routeList(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'page' => 'integer|min:1',
- 'page_size'=> 'integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $page = $request->input('page', 1);
- $pagesize = $request->input('page_size', 20);
- $data = UsersService::getRoutes($pagesize, $page);
- return self::returnPageValue($data['list'], $data['total'], $pagesize, $page);
- }
- /*
- * 给角色限定路由权限
- */
- public function setRoleRoutes(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'role_id' => 'required|integer',
- 'route_id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $role_id = $request->input('role_id');
- $route_id = $request->input('route_id');
- $result = UsersService::setRoleRoutes($role_id, $route_id);
- if ($result) {
- return self::returnValue('分配成功', 0);
- } else {
- return self::returnValue('分配失败', 500);
- }
- }
- /*
- * 获取角色已设定权限
- */
- public function roleRoutes(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'role_id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $role_id = $request->input('role_id');
- $result = UsersService::roleRoutes($role_id);
- return self::returnValue($result);
- }
- /*
- * 获取角色列表
- */
- public function rolesList(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'keyword' => 'string',
- 'page' => 'integer|min:1',
- 'page_size'=> 'integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $page = $request->input('page', 1);
- $pagesize = $request->input('page_size', 20);
- $offset = ($page-1) * $pagesize;
- $data = UsersService::rolesList($offset, $pagesize);
- return self::returnPageValue($data['list'], $data['total'], $pagesize, $page);
- }
- /*
- * 添加角色
- */
- public function addRole(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'name' => 'required|string',
- 'desc' => 'nullable|string'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $name = $request->input('name');
- $desc = $request->input('desc');
- $data = UsersService::addRole($name, $desc);
- if ($data) {
- return self::returnValue('添加成功', 0);
- } else {
- return self::returnValue('添加失败', 500);
- }
- }
- /*
- * 编辑角色
- */
- public function editRole(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'name' => 'required|string',
- 'id' => 'required|integer',
- 'desc' => 'nullable|string'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $name = $request->input('name');
- $id = $request->input('id');
- $desc = $request->input('desc');
- $data = UsersService::editRole($id, ['name' => $name, 'desc' => $desc]);
- if ($data) {
- return self::returnValue('修改成功', 0);
- } else {
- return self::returnValue('修改失败', 500);
- }
- }
- /*
- * 删除角色
- */
- public function delRole(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $id = $request->input('id');
- //判断该角色下是否还有未删除用户
- $count = Users::where('role_id', $id)->where('is_delete', 0)->count();
- if ($count > 0) {
- return self::returnValue('不允许的操作', 4004);
- }
- $data = UsersService::delRole($id);
- if ($data) {
- return self::returnValue('删除成功', 0);
- } else {
- return self::returnValue('删除失败', 500);
- }
- }
- /*
- * 获取角色所有权限
- */
- public function rolePermissions(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'role_id' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $roleId = $request->input('role_id');
- $permissionList = UsersService::getRolePermissions($roleId);
- return self::returnValue($permissionList);
- }
- /*
- * 添加角色权限
- */
- public function addPermission(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'parent_id' => 'required|integer',
- 'title' => 'required|string',
- 'route' => 'nullable|string',
- 'icon' => 'nullable|string'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $parentId = $request->input('parent_id');
- $title = $request->input('title');
- $route = $request->input('route');
- $icon = $request->input('icon');
- $res = UsersService::addPermission($parentId, $title, $route, $icon);
- if($res) {
- return self::returnValue('添加成功', 0);
- } else {
- return self::returnValue('添加失败', 500);
- }
- }
- /*
- * 修改角色权限
- */
- public function editPermission(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer',
- 'title' => 'required|string',
- 'route' => 'nullable|string',
- 'icon' => 'nullable|string'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $title = $request->input('title');
- $route = $request->input('route');
- $id = $request->input('id');
- $icon = $request->input('icon');
- $res = UsersService::editPermission($id, $title, $route, $icon);
- if ($res) {
- return self::returnValue('修改成功', 0);
- } else {
- return self::returnValue('修改失败', 500);
- }
- }
- /*
- * 删除角色权限
- */
- public function delPermission(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $id = $request->input('id');
- $res = UsersService::delPermission($id);
- if ($res) {
- return self::returnValue('删除成功', 0);
- } else {
- return self::returnValue('删除失败', 500);
- }
- }
- /*
- * 根据父级id获取下一级权限列表
- */
- public function getPermissionListByParentId(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'parent_id' => 'required|integer',
- 'role_id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $parentId = $request->input('parent_id');
- $roleId = $request->input('role_id');
- $data = UsersService::getPermissionListByParentId($parentId, $roleId);
- return self::returnValue($data, 0);
- }
- /*
- * 修改权限状态
- */
- public function changePermissionStatus(Request $request)
- {
- $validator = \Validator::make($request->all(), [
- 'id' => 'required|integer',
- 'enable' => 'required|numeric',
- 'role_id' => 'required|integer'
- ]);
- if ($validator->fails()) {
- return self::returnValue($validator->getMessageBag(), 1102);
- }
- $enable = $request->input('enable');
- $id = $request->input('id');
- $roleId = $request->input('role_id');
- $res = UsersService::changePermissionStatus($enable, $id, $roleId);
- if($res) {
- return self::returnValue('修改成功', 0);
- } else {
- return self::returnValue('修改失败', 500);
- }
- }
- }
|