SystemPermissions.php 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. <?php
  2. namespace App\Modes;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Spatie\Permission\Models\Permission;
  5. use Spatie\Permission\Models\Role;
  6. /**
  7. * App\Modes\SystemPermissions
  8. *
  9. * @property int $id
  10. * @property string $name
  11. * @property string $guard_name
  12. * @property \Illuminate\Support\Carbon|null $created_at
  13. * @property \Illuminate\Support\Carbon|null $updated_at
  14. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions newModelQuery()
  15. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions newQuery()
  16. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions query()
  17. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions whereCreatedAt($value)
  18. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions whereGuardName($value)
  19. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions whereId($value)
  20. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions whereName($value)
  21. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions whereUpdatedAt($value)
  22. * @mixin \Eloquent
  23. * @property string $remark 权限备注
  24. * @property int $pid 上级菜单
  25. * @property int $status 状态 1-正常 2-禁用
  26. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions wherePid($value)
  27. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions whereRemark($value)
  28. * @method static \Illuminate\Database\Eloquent\Builder|\App\Modes\SystemPermissions whereStatus($value)
  29. */
  30. class SystemPermissions extends Model
  31. {
  32. //
  33. /**
  34. * 权限-添加
  35. * @author fatty
  36. * @date 2019/1/8
  37. * @param array $all
  38. * @description
  39. */
  40. public static function create(array $all)
  41. {
  42. $role = Role::findByName('超级管理员', config('permission.guard'));
  43. $permission = Permission::create(['name' => $all['name'], 'guard_name' => config('permission.guard'), 'pid' => $all['pid'], 'remark' => $all['remark']]);
  44. return $permission->assignRole($role);
  45. }
  46. /**
  47. * 权限-删除
  48. * @author fatty
  49. * @date 2019/1/9
  50. * @param $id
  51. * @description
  52. * 删除权限关联
  53. * 删除权限
  54. */
  55. public static function del($id)
  56. {
  57. return \DB::transaction(function () use ($id) {
  58. // 获取所有权限与角色关联的数据
  59. $role = SystemRoleHasPermissions::where('permission_id', $id)->get();
  60. $permission = Permission::findById($id, config('permission.guard'));
  61. collect($role)->each(function ($item, $key) use ($permission) {
  62. $role = Role::findById($item['role_id'], config('permission.guard'));
  63. $permission->removeRole($role);
  64. });
  65. return Permission::where(['id' => $id])->delete();
  66. });
  67. }
  68. /**
  69. * 编辑
  70. * @author fatty
  71. * @date 2019/1/9
  72. * @param array $all
  73. * @return bool
  74. * @description
  75. */
  76. public static function edit(array $all)
  77. {
  78. $permission = SystemPermissions::find($all['id']);
  79. if ($all['name']) {
  80. $permission->name = $all['name'];
  81. }
  82. if ($all['pid']) {
  83. $permission->pid = $all['pid'];
  84. }
  85. if ($all['remark']) {
  86. $permission->remark = $all['remark'];
  87. }
  88. return $permission->save();
  89. }
  90. }