movie-night-api/app/Policies/MovieListPolicy.php

45 lines
899 B
PHP
Raw Normal View History

<?php
namespace App\Policies;
use App\Models\MovieList;
use App\Models\User;
class MovieListPolicy
{
/**
* Create a new policy instance.
*/
public function __construct()
{
//
}
public function create(User $user): bool
{
return true;
}
public function view(User $user, MovieList $movieList): bool
{
2026-04-18 00:48:03 -05:00
return $movieList->is_public
|| $user->isListOwner($movieList)
|| $user->sharedLists->contains($movieList);
}
2026-04-18 00:48:03 -05:00
public function delete(User $user, MovieList $movieList): bool
{
2026-04-18 00:48:03 -05:00
return $user->isListOwner($movieList);
}
2026-04-18 00:48:03 -05:00
public function editMovies(User $user, MovieList $movieList): bool
{
2026-04-18 00:48:03 -05:00
return $user->isListEditor($movieList);
}
2026-04-18 00:48:03 -05:00
public function update(User $user, MovieList $movieList): bool
{
return $user->isListAdmin($movieList);
}
}