roles.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. <?php
  2. use App\Models\Role;
  3. if(!function_exists('getRoles')){
  4. function getRoles($key = null): array|string
  5. {
  6. $roles = Role::NAMES;
  7. if($key && isset($roles[$key])){
  8. return $roles[$key];
  9. } else {
  10. return $roles;
  11. }
  12. }
  13. }
  14. if(!function_exists('hasRole')){
  15. function hasRole($roles, $user = null) : bool
  16. {
  17. if(!$user) $user = auth()->user();
  18. if(!$user) return false;
  19. $roles = explode(',', $roles);
  20. $effectiveRoles = Role::effectiveRoles($user->role);
  21. return count(array_intersect($roles, $effectiveRoles)) > 0;
  22. }
  23. }
  24. if(!function_exists('roleName')) {
  25. function roleName($role): string
  26. {
  27. return Role::NAMES[$role];
  28. }
  29. }
  30. // return current year
  31. if(!function_exists('year')) {
  32. function year(): int
  33. {
  34. return (int)session('year', date('Y'));
  35. }
  36. }
  37. if(!function_exists('fileName')) {
  38. function fileName($file): string
  39. {
  40. return preg_replace('/[\\*\\:\\\\\\/\\?<>]/', '_', $file);
  41. }
  42. }