You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
23 lines
727 B
23 lines
727 B
<?php
|
|
|
|
namespace App\Http\Controllers\Concerns;
|
|
|
|
use App\Models\Activity;
|
|
use Illuminate\Http\Request;
|
|
|
|
trait AuthorizesActivitySubmitter
|
|
{
|
|
/** 非超级管理员仅能维护本人创建的活动;平台代录(提交人为空)仅超管可改 */
|
|
protected function authorizeActivityEditForNonSuperAdmin(Request $request, Activity $activity): void
|
|
{
|
|
$user = $request->user();
|
|
if ($user?->isSuperAdmin()) {
|
|
return;
|
|
}
|
|
if ($activity->submitted_by === null) {
|
|
abort(403, '该平台录入的活动仅超级管理员可修改');
|
|
}
|
|
abort_unless((int) $activity->submitted_by === (int) $user->id, 403, '只能编辑本人提交的活动');
|
|
}
|
|
}
|