Skip to main content

Black Friday 2025! Only until December 1st: coupon FRIDAY25 for 40% off Yearly/Lifetime membership!

Read more here

archboard/tidal-ptc

4 stars
2 code files
View archboard/tidal-ptc on GitHub

app/Policies/TimeSlotPolicy.php

Open in GitHub
use App\Enums\Permission;
use App\Models\TimeSlot;
use App\Models\User;
 
class TimeSlotPolicy
{
public function createOrForSelf(User $user): bool
{
return $user->can(Permission::create, TimeSlot::class)
|| ($user->school->teachers_can_create && $user->canOwnTimeSlots());
}
 
public function updateOrForSelf(User $user, TimeSlot $timeSlot): bool
{
return $user->id === $timeSlot->user_id
|| $user->can(Permission::update, $timeSlot);
}
 
public function deleteOrForSelf(User $user, TimeSlot $timeSlot): bool
{
return $user->id === $timeSlot->user_id
|| $user->can(Permission::delete, $timeSlot);
}
}

app/Http/Requests/CreateTimeSlotRequest.php

Open in GitHub
use App\Models\TimeSlot;
use Illuminate\Foundation\Http\FormRequest;
 
class CreateTimeSlotRequest extends FormRequest
{
public function authorize(): bool
{
$user = $this->user();
 
if ($this->isMethod('post')) {
return $user->can('createOrForSelf', TimeSlot::class);
}
 
return $user->can('updateOrForSelf', TimeSlot::class);
}
 
// ...
}

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.