Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

44 lines
974B

  1. <?php
  2. namespace domain\User\User;
  3. use domain\_\AbstractManager;
  4. class AuthorizationChecker extends AbstractManager
  5. {
  6. protected UserSolver $userSolver;
  7. public function loadDependencies(): void
  8. {
  9. $this->userSolver = $this->loadService(UserSolver::class);
  10. }
  11. public function isGrantedAsAdministrator(User $user = null): bool
  12. {
  13. if(!$user) {
  14. return false;
  15. }
  16. return $this->userSolver->isStatusAdministrator($user);
  17. }
  18. public function isGrantedAsProducer(User $user = null): bool
  19. {
  20. if(!$user) {
  21. return false;
  22. }
  23. return $this->isGrantedAsAdministrator($user)
  24. || $this->userSolver->isStatusProducer($user);
  25. }
  26. public function isGrantedAsUser(User $user = null): bool
  27. {
  28. if(!$user) {
  29. return false;
  30. }
  31. return $this->isGrantedAsProducer($user)
  32. || $this->userSolver->isStatusUser($user);
  33. }
  34. }