UserService.php 824 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Services;
  3. use App\Authority;
  4. use App\Owner;
  5. use App\User;
  6. use Illuminate\Support\Facades\Cache;
  7. use Illuminate\Support\Facades\Gate;
  8. class UserService
  9. {
  10. /** @var CacheService $cacheService */
  11. private $cacheService;
  12. function __construct(){
  13. $this->cacheService = app('CacheService');
  14. }
  15. function hasRoles(User $user, $roles){
  16. $thisRoles=$this->cacheService->getOrExecute("user{$user['id']}->roles",function()use($user){
  17. return $user->roles;
  18. });
  19. return !!$roles->intersect($thisRoles)->count();
  20. }
  21. function getPermittingOwnerIds($user){
  22. return $this->cacheService->getOrExecute("user{$user['id']}->getPermittingOwnerIds",function()use($user){
  23. return $user->getPermittingOwnerIdsAttribute();
  24. });
  25. }
  26. }