mirror of
https://github.com/lkddi/nexusphp.git
synced 2026-04-14 20:40:49 +08:00
[exam] finish assign and remove
This commit is contained in:
@@ -7,6 +7,7 @@ use App\Http\Resources\ExamUserResource;
|
||||
use App\Http\Resources\UserResource;
|
||||
use App\Repositories\ExamRepository;
|
||||
use App\Repositories\UserRepository;
|
||||
use Carbon\Carbon;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
@@ -44,9 +45,13 @@ class ExamUserController extends Controller
|
||||
'uid' => 'required',
|
||||
];
|
||||
$request->validate($rules);
|
||||
$result = $this->repository->assignToUser($request->uid, $request->exam_id, $request->begin, $request->end);
|
||||
$resource = new ExamResource($result);
|
||||
return $this->success($resource);
|
||||
$timeRange = $request->get('time_range', []);
|
||||
$begin = isset($timeRange[0]) ? Carbon::parse($timeRange[0])->toDateTimeString() : null;
|
||||
$end = isset($timeRange[1])? Carbon::parse($timeRange[1])->toDateTimeString() : null;
|
||||
|
||||
$result = $this->repository->assignToUser($request->uid, $request->exam_id, $begin, $end);
|
||||
$resource = new ExamUserResource($result);
|
||||
return $this->success($resource, 'Assign exam success!');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -114,11 +114,13 @@ class UserController extends Controller
|
||||
return $this->success($resource);
|
||||
}
|
||||
|
||||
public function matchExams()
|
||||
public function matchExams(Request $request)
|
||||
{
|
||||
$id = Auth::id();
|
||||
$request->validate([
|
||||
'uid' => 'required',
|
||||
]);
|
||||
$examRepository = new ExamRepository();
|
||||
$result = $examRepository->listMatchExam($id);
|
||||
$result = $examRepository->listMatchExam($request->uid);
|
||||
$resource = ExamResource::collection($result);
|
||||
return $this->success($resource);
|
||||
}
|
||||
|
||||
@@ -62,5 +62,6 @@ class Kernel extends HttpKernel
|
||||
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
|
||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||
'permission' => \App\Http\Middleware\Permission::class,
|
||||
];
|
||||
}
|
||||
|
||||
31
app/Http/Middleware/Permission.php
Normal file
31
app/Http/Middleware/Permission.php
Normal file
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Models\User;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Validation\UnauthorizedException;
|
||||
|
||||
class Permission
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next)
|
||||
{
|
||||
$user = $request->user();
|
||||
$targetClass = User::CLASS_MODERATOR;
|
||||
$log = sprintf('user: %s, class: %s, target class: %s', $user->id, $user->class, $targetClass);
|
||||
if (!$user || $user->class < $targetClass) {
|
||||
do_log("$log, denied!");
|
||||
throw new UnauthorizedException('Unauthorized!');
|
||||
}
|
||||
do_log("$log, pass!");
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user