Files
Twyco 0ea78a621a
CI/CD / test_and_check_app (push) Failing after 55s
CI/CD / Publish immutable image (push) Skipped
add team delte
2026-09-29 21:39:26 +02:00

44 lines
1021 B
PHP

<?php
namespace App\Policies;
use App\Enums\TeamMemberRole;
use App\Models\Team;
use App\Models\User;
class TeamPolicy
{
public function view(User $user, Team $team): bool
{
return Team::query()
->visibleTo($user)
->whereKey($team->getKey())
->exists();
}
public function create(User $user): bool
{
return $user->hasVerifiedEmail();
}
public function manage(User $user, Team $team): bool
{
$membership = $team->members()->whereKey($user->id)->first();
if (! $membership) {
return false;
}
return ($membership->pivot->role === TeamMemberRole::Admin) || ($membership->pivot->role === TeamMemberRole::Owner);
}
public function delete(User $user, Team $team): bool
{
$membership = $team->members()->whereKey($user->id)->first();
if (! $membership) {
return false;
}
return $membership->pivot->role === TeamMemberRole::Owner;
}
}