Bouncer.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Webkul\User;
  3. class Bouncer
  4. {
  5. /**
  6. * Checks if user allowed or not for certain action
  7. *
  8. * @param string $permission
  9. * @return void
  10. */
  11. public function hasPermission($permission)
  12. {
  13. if (
  14. auth()->guard('admin')->check()
  15. && auth()->guard('admin')->user()->role->permission_type == 'all'
  16. ) {
  17. return true;
  18. } else {
  19. if (
  20. ! auth()->guard('admin')->check()
  21. || ! auth()->guard('admin')->user()->hasPermission($permission)
  22. ) {
  23. return false;
  24. }
  25. }
  26. return true;
  27. }
  28. /**
  29. * Checks if user allowed or not for certain action
  30. *
  31. * @param string $permission
  32. * @return void
  33. */
  34. public static function allow($permission)
  35. {
  36. if (
  37. ! auth()->guard('admin')->check()
  38. || ! auth()->guard('admin')->user()->hasPermission($permission)
  39. ) {
  40. abort(401, 'This action is unauthorized');
  41. }
  42. }
  43. }