RoleService.php 1010 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace App\Services;
  3. use App\Traits\ServiceAppAop;
  4. use App\Role;
  5. use Illuminate\Support\Facades\Cache;
  6. use Illuminate\Support\Facades\DB;
  7. class RoleService
  8. {
  9. use ServiceAppAop;
  10. protected $modelClass=Role::class;
  11. /**
  12. * 清除角色对应的用户权限
  13. *
  14. * @param integer $roleId
  15. * @param bool $isAuthority
  16. * @param bool $isOwner
  17. * @param bool $isUserWorkGroup
  18. */
  19. public function clearUserAuthority($roleId,bool $isAuthority = true,bool $isOwner = false,bool $isUserWorkGroup = false)
  20. {
  21. $ids = array_column(DB::select(DB::raw("SELECT id_user FROM user_role WHERE id_role = ?"),[$roleId]),"id_user");
  22. foreach ($ids as $id){
  23. if ($isAuthority){
  24. Cache::tags("AUTHORITY_MENU_MAPPING")->forget("am_mapping_".$id);
  25. Cache::tags("authorities:user")->forget("authorities:user_".$id);
  26. }
  27. if ($isUserWorkGroup)Cache::forget("userWorkGroups:user_".$id);
  28. }
  29. }
  30. }