*/ class ProjectPolicy { use HandlesAuthorization; /** * Determine whether the user can view the project. * * @param \App\Entities\Users\User $user * @param \App\Entities\Projects\Project $project * * @return mixed */ public function view(User $user, Project $project) { return $user->hasRole('admin') || ($user->hasRole('worker') && $user->projects->contains($project->id)); } /** * Determine whether the user can create projects. * * @param \App\Entities\Users\User $user * @param \App\Entities\Projects\Project $project * * @return mixed */ public function create(User $user, Project $project) { return $user->hasRole('admin'); } /** * Determine whether the user can update the project. * * @param \App\Entities\Users\User $user * @param \App\Entities\Projects\Project $project * * @return mixed */ public function update(User $user, Project $project) { return $user->hasRole('admin'); } /** * Determine whether the user can delete the project. * * @param \App\Entities\Users\User $user * @param \App\Entities\Projects\Project $project * * @return mixed */ public function delete(User $user, Project $project) { return $user->hasRole('admin'); } }