TeamPolicy.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. <?php
  2. namespace App\Policies;
  3. use App\Models\Team;
  4. use App\Models\User;
  5. use Illuminate\Auth\Access\HandlesAuthorization;
  6. class TeamPolicy
  7. {
  8. use HandlesAuthorization;
  9. /**
  10. * Determine whether the user can view any models.
  11. *
  12. * @param \App\Models\User $user
  13. * @return mixed
  14. */
  15. public function viewAny(User $user)
  16. {
  17. return true;
  18. }
  19. /**
  20. * Determine whether the user can view the model.
  21. *
  22. * @param \App\Models\User $user
  23. * @param \App\Models\Team $team
  24. * @return mixed
  25. */
  26. public function view(User $user, Team $team)
  27. {
  28. return $user->belongsToTeam($team);
  29. }
  30. /**
  31. * Determine whether the user can create models.
  32. *
  33. * @param \App\Models\User $user
  34. * @return mixed
  35. */
  36. public function create(User $user)
  37. {
  38. return true;
  39. }
  40. /**
  41. * Determine whether the user can update the model.
  42. *
  43. * @param \App\Models\User $user
  44. * @param \App\Models\Team $team
  45. * @return mixed
  46. */
  47. public function update(User $user, Team $team)
  48. {
  49. return $user->ownsTeam($team);
  50. }
  51. /**
  52. * Determine whether the user can add team members.
  53. *
  54. * @param \App\Models\User $user
  55. * @param \App\Models\Team $team
  56. * @return mixed
  57. */
  58. public function addTeamMember(User $user, Team $team)
  59. {
  60. return $user->ownsTeam($team);
  61. }
  62. /**
  63. * Determine whether the user can update team member permissions.
  64. *
  65. * @param \App\Models\User $user
  66. * @param \App\Models\Team $team
  67. * @return mixed
  68. */
  69. public function updateTeamMember(User $user, Team $team)
  70. {
  71. return $user->ownsTeam($team);
  72. }
  73. /**
  74. * Determine whether the user can remove team members.
  75. *
  76. * @param \App\Models\User $user
  77. * @param \App\Models\Team $team
  78. * @return mixed
  79. */
  80. public function removeTeamMember(User $user, Team $team)
  81. {
  82. return $user->ownsTeam($team);
  83. }
  84. /**
  85. * Determine whether the user can delete the model.
  86. *
  87. * @param \App\Models\User $user
  88. * @param \App\Models\Team $team
  89. * @return mixed
  90. */
  91. public function delete(User $user, Team $team)
  92. {
  93. return $user->ownsTeam($team);
  94. }
  95. }