<?php namespace App\Policies; use App\Models\Workspace; use App\Models\User; use Illuminate\Auth\Access\HandlesAuthorization; class WorkspacePolicy { use HandlesAuthorization; /** * Determine whether the user can view any models. * * @param \App\Models\User $user * @return mixed */ public function viewAny(User $user) { return true; } /** * Determine whether the user can view the model. * * @param \App\Models\User $user * @param \App\Models\Workspace $workspace * @return mixed */ public function view(User $user, Workspace $workspace) { return $user->workspaces()->find($workspace->id)!==null; } /** * Determine whether the user can create models. * * @param \App\Models\User $user * @return mixed */ public function create(User $user) { return false; } /** * Determine whether the user can update the model. * * @param \App\Models\User $user * @param \App\Models\Workspace $workspace * @return mixed */ public function update(User $user, Workspace $workspace) { return false; } /** * Determine whether the user can delete the model. * * @param \App\Models\User $user * @param \App\Models\Workspace $workspace * @return mixed */ public function delete(User $user, Workspace $workspace) { return !$workspace->owners->where('id',$user->id)->isEmpty() && $user->workspaces()->count() > 1; } /** * Determine whether the user can restore the model. * * @param \App\Models\User $user * @param \App\Models\Workspace $workspace * @return mixed */ public function restore(User $user, Workspace $workspace) { return false; } /** * Determine whether the user can permanently delete the model. * * @param \App\Models\User $user * @param \App\Models\Workspace $workspace * @return mixed */ public function forceDelete(User $user, Workspace $workspace) { return false; } }