| 1234567891011121314151617181920212223242526272829303132333435 |
- <?php
- namespace App\Services;
- use App\Traits\ServiceAppAop;
- use App\Role;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\DB;
- class RoleService
- {
- use ServiceAppAop;
- protected $modelClass=Role::class;
- /**
- * 清除角色对应的用户权限
- *
- * @param integer $roleId
- * @param bool $isAuthority
- * @param bool $isOwner
- * @param bool $isUserWorkGroup
- */
- public function clearUserAuthority($roleId,bool $isAuthority = true,bool $isOwner = false,bool $isUserWorkGroup = false)
- {
- $ids = array_column(DB::select(DB::raw("SELECT id_user FROM user_role WHERE id_role = ?"),[$roleId]),"id_user");
- foreach ($ids as $id){
- if ($isAuthority){
- Cache::tags("AUTHORITY_MENU_MAPPING")->forget("am_mapping_".$id);
- Cache::tags("authorities:user")->forget("authorities:user_".$id);
- }
- if ($isUserWorkGroup)Cache::forget("userWorkGroups:user_".$id);
- }
- }
- }
|