HasUserRole.php 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace App\Filament\Traits;
  3. use Illuminate\Support\Facades\Auth;
  4. trait HasUserRole
  5. {
  6. public bool $isTeacher = false;
  7. /**
  8. * 初始化用户角色检查
  9. */
  10. public function initializeUserRole(): void
  11. {
  12. $this->isTeacher = Auth::user()?->isTeacher() ?? false;
  13. }
  14. /**
  15. * 获取当前用户ID
  16. */
  17. public function getCurrentUserId(): ?int
  18. {
  19. return Auth::id();
  20. }
  21. /**
  22. * 获取当前老师ID(业务逻辑用)
  23. */
  24. public function getCurrentTeacherId(): ?string
  25. {
  26. return Auth::user()?->teacher?->teacher_id;
  27. }
  28. /**
  29. * 获取当前老师管理ID(管理界面用)
  30. */
  31. public function getCurrentTeacherManagementId(): ?int
  32. {
  33. return Auth::user()?->teacher?->id;
  34. }
  35. /**
  36. * 判断当前用户是否是管理员
  37. */
  38. public function isAdmin(): bool
  39. {
  40. return !$this->isTeacher;
  41. }
  42. /**
  43. * 判断当前用户是否是老师
  44. */
  45. public function isCurrentUserTeacher(): bool
  46. {
  47. return $this->isTeacher;
  48. }
  49. /**
  50. * 获取当前用户类型描述
  51. */
  52. public function getCurrentUserType(): string
  53. {
  54. return $this->isTeacher ? 'teacher' : 'admin';
  55. }
  56. }