diff options
| author | Thomas Grothe <grothe.tr@gmail.com> | 2026-04-11 17:49:42 -0400 |
|---|---|---|
| committer | Thomas Grothe <grothe.tr@gmail.com> | 2026-04-11 17:49:42 -0400 |
| commit | d4f97aa956be051dd5b9a184557106dc7de112ac (patch) | |
| tree | e4c73c93408b5fbc4cc1b92cabcaceaaebbb1833 /app/Policies/FilePolicy.php | |
| parent | bcac54576d7309ac0471a7be5664c5a4e8d7349e (diff) | |
| parent | 054c19bf65beb43d0dd6137f9bf16cf8ca9f6190 (diff) | |
Merge remote-tracking branch 'origin/main'
Diffstat (limited to 'app/Policies/FilePolicy.php')
| -rw-r--r-- | app/Policies/FilePolicy.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/app/Policies/FilePolicy.php b/app/Policies/FilePolicy.php new file mode 100644 index 0000000..fe46f8b --- /dev/null +++ b/app/Policies/FilePolicy.php @@ -0,0 +1,49 @@ +<?php + +namespace App\Policies; + +use App\Models\File; +use App\Models\User; + +class FilePolicy +{ + /** + * Anyone can view listings. + */ + public function viewAny(?User $user): bool + { + return true; + } + + /** + * Anyone can view a single file. + */ + public function view(?User $user, File $file): bool + { + return true; + } + + /** + * Any authenticated user can create files. + */ + public function create(User $user): bool + { + return true; + } + + /** + * Only the owner or an admin can update. + */ + public function update(User $user, File $file): bool + { + return $user->id === $file->user_id || $user->isAdmin(); + } + + /** + * Only the owner or an admin can delete. + */ + public function delete(User $user, File $file): bool + { + return $user->id === $file->user_id || $user->isAdmin(); + } +} |
