Initial commit

This commit is contained in:
Richard Jolley committed 2026-01-14 00:54:08 +00:00
commit c909d539bc
7178 files changed
+756624

No files matched your search

+36
View File
@@ -0,0 +1,36 @@
<?php
namespace App\Providers;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate;
use App\Models\Course;
class AuthServiceProvider extends ServiceProvider
{
protected $policies = [
// 'App\Models\Model' => 'App\Policies\ModelPolicy',
];
public function boot(): void
{
$this->registerPolicies();
// God mode: super-admin can do anything
Gate::before(fn($user) => $user->hasRole('super-admin') ? true : null);
// Example gates
Gate::define('view-course', fn($user, Course $course) =>
$user->hasAnyRole(['admin', 'teacher'])
);
Gate::define('update-course', fn($user, Course $course) =>
$user->hasRole('admin') ||
($user->hasRole('teacher') && $course->teacher_id === $user->id)
);
Gate::define('answer-question', fn($user) =>
$user->hasAnyRole(['teacher', 'admin'])
);
}
}