RoleController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: dingran
  5. * Date: 2019/3/10
  6. * Time: 下午12:37
  7. */
  8. namespace app\platform\modules\user\controllers;
  9. use app\platform\controllers\BaseController;
  10. use app\platform\modules\user\models\Permission;
  11. use app\platform\modules\user\models\Role;
  12. use app\platform\modules\user\requests\RoleCreateRequest;
  13. use app\platform\modules\user\requests\RoleUpdateRequest;
  14. use Illuminate\Http\Request;
  15. class RoleController extends BaseController
  16. {
  17. protected $fields = [
  18. 'name' => '',
  19. 'description' => '',
  20. 'permissions' => [],
  21. ];
  22. /**
  23. * Display a listing of the resource.
  24. *
  25. * @return \Illuminate\Http\Response
  26. */
  27. public function index(Request $request)
  28. {
  29. $datas['data'] = Role::select(['id', 'name', 'description', 'created_at', 'updated_at'])->orderBy('id', 'desc')->get();
  30. return view('admin.role.index', $datas);
  31. }
  32. /**
  33. * Show the form for creating a new resource.
  34. *
  35. * @return \Illuminate\Http\Response
  36. */
  37. public function create()
  38. {
  39. $data = [];
  40. foreach ($this->fields as $field => $default) {
  41. $data[$field] = old($field, $default);
  42. }
  43. $arr = Permission::all()->toArray();
  44. foreach ($arr as $v) {
  45. $data['permissionAll'][$v['parent_id']][] = $v;
  46. }
  47. return view('admin.role.create', $data);
  48. }
  49. /**
  50. * Store a newly created resource in storage.
  51. *
  52. * @param RoleCreateRequest $request
  53. * @return \Illuminate\Http\Response
  54. */
  55. public function store(RoleCreateRequest $request)
  56. {
  57. // dd($request->get('permission'));
  58. $role = new Role();
  59. foreach (array_keys($this->fields) as $field) {
  60. $role->$field = $request->get($field);
  61. }
  62. unset($role->permissions);
  63. // dd($request->get('permission'));
  64. $role->save();
  65. if (is_array($request->get('permissions'))) {
  66. $role->permissions()->sync($request->get('permissions',[]));
  67. }
  68. return $this->successJson('添加成功', []);
  69. }
  70. /**
  71. * Display the specified resource.
  72. *
  73. * @param int $id
  74. * @return \Illuminate\Http\Response
  75. */
  76. public function show($id)
  77. {
  78. //
  79. }
  80. /**
  81. * Show the form for editing the specified resource.
  82. *
  83. * @param int $id
  84. * @return \Illuminate\Http\Response
  85. */
  86. public function edit($id)
  87. {
  88. $role = Role::find((int)$id);
  89. if (!$role) return redirect('/admin/role')->withErrors("找不到该角色!");
  90. $permissions = [];
  91. if ($role->permissions) {
  92. foreach ($role->permissions as $v) {
  93. $permissions[] = $v->id;
  94. }
  95. }
  96. $role->permissions = $permissions;
  97. foreach (array_keys($this->fields) as $field) {
  98. $data[$field] = old($field, $role->$field);
  99. }
  100. $arr = Permission::all()->toArray();
  101. foreach ($arr as $v) {
  102. $data['permissionAll'][$v['parent_id']][] = $v;
  103. }
  104. $data['id'] = (int)$id;
  105. return view('admin.role.edit', $data);
  106. }
  107. /**
  108. * Update the specified resource in storage.
  109. *
  110. * @param PermissionUpdateRequest|Request $request
  111. * @param int $id
  112. * @return \Illuminate\Http\Response
  113. */
  114. public function update(RoleUpdateRequest $request, $id)
  115. {
  116. $role = Role::find((int)$id);
  117. foreach (array_keys($this->fields) as $field) {
  118. $role->$field = $request->get($field);
  119. }
  120. unset($role->permissions);
  121. $role->save();
  122. $role->permissions()->sync($request->get('permissions',[]));
  123. return $this->successJson('添加成功', []);
  124. }
  125. /**
  126. * Remove the specified resource from storage.
  127. *
  128. * @param int $id
  129. * @return \Illuminate\Http\Response
  130. */
  131. public function destroy($id)
  132. {
  133. $role = Role::find((int)$id);
  134. foreach ($role->users as $v){
  135. $role->users()->detach($v);
  136. }
  137. foreach ($role->permissions as $v){
  138. $role->permissions()->detach($v);
  139. }
  140. if ($role) {
  141. /*********************用户被删除BUG-log*********************/
  142. $find = base_path().'\storage\logs\user_admin_delete_log.log';
  143. if(!file_exists($find)){
  144. fopen($find,'a');
  145. }
  146. $array = [];
  147. $array['deleteid'] = $id;
  148. $array['uid'] = \YunShop::app()->uid;
  149. $array['uniacid'] = \YunShop::app()->uniacid;
  150. $array['acid'] = \YunShop::app()->acid;
  151. $array['username'] = \YunShop::app()->username;
  152. $array['siteurl'] = \YunShop::app()->siteurl;
  153. $array['time'] = date('Y-m-d H:i:s',time());
  154. $txt = "app\platform\modules\user\controllers\RoleController.php\n";
  155. $txt .= json_encode($array,true)."\n\n";
  156. file_put_contents($find,$txt, FILE_APPEND);
  157. \Log::debug("====用户被删除BUG-log===",$array);
  158. /*********************用户被删除BUG-log*********************/
  159. $role->delete();
  160. } else {
  161. return redirect()->back()
  162. ->withErrors("删除失败");
  163. }
  164. return redirect()->back()
  165. ->withSuccess("删除成功");
  166. }
  167. }