add team delte
This commit is contained in:
@@ -4,6 +4,7 @@ namespace App\Enums;
|
||||
|
||||
enum TeamMemberRole: string
|
||||
{
|
||||
case Owner = 'owner';
|
||||
case Admin = 'admin';
|
||||
case Member = 'member';
|
||||
|
||||
|
||||
@@ -53,7 +53,7 @@ class TeamController extends Controller
|
||||
try {
|
||||
DB::transaction(function () use ($request): void {
|
||||
$team = Team::create($request->validated());
|
||||
$team->members()->attach($request->user(), ['role' => TeamMemberRole::Admin]);
|
||||
$team->members()->attach($request->user(), ['role' => TeamMemberRole::Owner]);
|
||||
});
|
||||
} catch (\Exception $exception) {
|
||||
report($exception);
|
||||
@@ -100,6 +100,17 @@ class TeamController extends Controller
|
||||
|
||||
return to_route('teams.show', $team);
|
||||
}
|
||||
public function destroy(Request $request, Team $team)
|
||||
{
|
||||
try {
|
||||
$team->delete();
|
||||
} catch (\Exception $exception) {
|
||||
report($exception);
|
||||
Inertia::flash('error', 'Team could not be deleted.');
|
||||
}
|
||||
|
||||
Inertia::flash('success', 'Team successfully deleted.');
|
||||
}
|
||||
|
||||
public function nameToSlug(Request $request): JsonResponse
|
||||
{
|
||||
|
||||
@@ -28,6 +28,16 @@ class TeamPolicy
|
||||
return false;
|
||||
}
|
||||
|
||||
return $membership->pivot->role === TeamMemberRole::Admin;
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user