RoleController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Models\Permission;
  4. use App\Models\Role;
  5. use Illuminate\Http\Request;
  6. use App\Http\Requests;
  7. use Illuminate\Support\Facades\Config;
  8. class RoleController extends AdminController
  9. {
  10. /*验证规则*/
  11. protected $validateRules = [
  12. 'name' => 'required|max:128',
  13. 'description' => 'sometimes|max:255',
  14. ];
  15. /**
  16. * 管理列表
  17. */
  18. public function index(Request $request)
  19. {
  20. $word = $request->input("word",'');
  21. $roles = Role::where('name','like',"%$word%")->orderBy('sort','asc')->orderBy('id','asc')->paginate(Config::get('tipask.admin.page_size'));
  22. return view('admin.role.index')->with('roles',$roles)->with('word',$word);
  23. }
  24. /**
  25. * 显示添加页面
  26. */
  27. public function create()
  28. {
  29. return view('admin.role.create');
  30. }
  31. /**
  32. * 添加表单处理
  33. */
  34. public function store(Request $request)
  35. {
  36. $request->flash();
  37. $this->validateRules['slug'] = 'required|max:128|unique:roles';
  38. $this->validate($request,$this->validateRules);
  39. Role::create($request->all());
  40. return $this->success(route('admin.role.index'),'角色添加成功');
  41. }
  42. /**
  43. * 显示编辑页面
  44. */
  45. public function edit($id)
  46. {
  47. $role = Role::find($id);
  48. if(!$role){
  49. return $this->error(route('admin.role.index'),'权限不存在,请核实');
  50. }
  51. /*获取角色已有权限*/
  52. $role_permission_ids = $role->permissions()->get()->map(function($role_permission){
  53. return $role_permission->pivot->permission_id;
  54. });
  55. $permission['admin'] = Permission::where('slug','like','admin.%')->orderBy('id', 'asc')->get();
  56. return view('admin.role.edit')->with('role',$role)->with('permission',$permission)->with('role_permission_ids',$role_permission_ids);
  57. }
  58. /**
  59. * 修改角色信息
  60. */
  61. public function update(Request $request, $id)
  62. {
  63. $request->flash();
  64. $role = Role::find($id);
  65. if(!$role){
  66. return $this->error(route('admin.role.index'),'角色不存在,请核实');
  67. }
  68. $this->validateRules['slug'] = 'required|max:150|unique:roles,slug,'.$role->id;
  69. $this->validate($request,$this->validateRules);
  70. $role->name = $request->input('name');
  71. $role->slug = $request->input('slug');
  72. $role->description = $request->input('description');
  73. $role->sort = $request->input('sort');
  74. $role->save();
  75. return $this->success(route('admin.role.index'),'角色修改成功');
  76. }
  77. /**
  78. * 权限设置
  79. */
  80. public function permission(Request $request){
  81. $role = Role::find($request->input('id'));
  82. $role->detachAllPermissions();
  83. $permissions = $request->input('permissions',array());
  84. foreach($permissions as $permission){
  85. $role->attachPermission($permission);
  86. }
  87. return $this->success(route('admin.role.index'),'角色权限设置成功');
  88. }
  89. /**
  90. * 删除某个角色
  91. */
  92. public function destroy(Request $request)
  93. {
  94. }
  95. }