SystemRoles.php 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Modes;
  3. use Spatie\Permission\Models\Permission;
  4. use Spatie\Permission\Models\Role;
  5. /**
  6. * App\Modes\SystemRoles
  7. *
  8. * @property int $id
  9. * @property string $name
  10. * @property int $is_supper 是否超管 1-是 0-否
  11. * @property string $guard_name
  12. * @property \Illuminate\Support\Carbon|null $created_at
  13. * @property \Illuminate\Support\Carbon|null $updated_at
  14. * @property-read \Illuminate\Database\Eloquent\Collection|\Spatie\Permission\Models\Permission[] $permissions
  15. * @property-read \Illuminate\Database\Eloquent\Collection|\App\Modes\User[] $users
  16. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles newModelQuery()
  17. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles newQuery()
  18. * @method static \Illuminate\Database\Eloquent\Builder|\Spatie\Permission\Models\Role permission($permissions)
  19. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles query()
  20. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles whereCreatedAt($value)
  21. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles whereGuardName($value)
  22. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles whereId($value)
  23. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles whereIsSupper($value)
  24. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles whereName($value)
  25. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles whereUpdatedAt($value)
  26. * @mixin \Eloquent
  27. * @property int $is_super 是否超级管理员角色
  28. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemRoles whereIsSuper($value)
  29. */
  30. class SystemRoles extends Role
  31. {
  32. //
  33. /**
  34. * 编辑角色信息
  35. * @author fatty
  36. * @date 2019/1/9
  37. * @param array $param
  38. * @description
  39. */
  40. public static function edit(array $param)
  41. {
  42. $roles = SystemRoles::find($param['roleId']);
  43. $roles->name = $param['roleName'];
  44. return !$roles->save() ?: $roles;
  45. }
  46. /**
  47. * 角色-删除
  48. * @author fatty
  49. * @date 2019/1/9
  50. * @param $id
  51. * @description
  52. */
  53. public static function del($id)
  54. {
  55. return \DB::transaction(function () use ($id) {
  56. // 获取所有与角色相关的权限ID
  57. $permission = SystemRoleHasPermissions::where('role_id', $id)->get();
  58. // 获取角色模型
  59. $role = Role::findById($id, config('permission.guard'));
  60. if ($role->is_supper == 1) {
  61. return false;
  62. }
  63. // 移除所有的权限
  64. $role->revokePermissionTo($permission);
  65. return $role->delete();
  66. });
  67. }
  68. }