mirror of
https://github.com/robonen/education-project.git
synced 2026-03-20 02:44:31 +00:00
Регистрация и вход для всех ролей
This commit is contained in:
13
app/Http/Controllers/Controller.php
Normal file
13
app/Http/Controllers/Controller.php
Normal file
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
use Illuminate\Foundation\Bus\DispatchesJobs;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Routing\Controller as BaseController;
|
||||
|
||||
class Controller extends BaseController
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
}
|
||||
45
app/Http/Controllers/HeadTeacherController.php
Normal file
45
app/Http/Controllers/HeadTeacherController.php
Normal file
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\HeadTeacherRequest;
|
||||
use App\Models\HeadTeacher;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class HeadTeacherController extends Controller
|
||||
{
|
||||
/**
|
||||
* Получение списка всех завучей
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return response()->json(HeadTeacher::all(), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение одного завуча
|
||||
*
|
||||
* @param HeadTeacher $headteacher
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function show(HeadTeacher $headteacher)
|
||||
{
|
||||
return response()->json($headteacher, 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление завуча
|
||||
*
|
||||
* @param HeadTeacherRequest $request
|
||||
* @param HeadTeacher $headteacher
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(HeadTeacherRequest $request, HeadTeacher $headteacher)
|
||||
{
|
||||
$headteacher->update($request->all());
|
||||
return response()->json($headteacher, 200);
|
||||
}
|
||||
|
||||
}
|
||||
24
app/Http/Controllers/LoginController.php
Normal file
24
app/Http/Controllers/LoginController.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\Auth\LoginRequest;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LoginController extends Controller
|
||||
{
|
||||
public function __invoke(LoginRequest $request)
|
||||
{
|
||||
$credentials = $request->only('login', 'password');
|
||||
|
||||
if (auth()->attempt($credentials))
|
||||
return response()->json('You cannot sign with those credentials!', 401);
|
||||
|
||||
$token = auth()->user()->makeToken($request->get('remember_me'));
|
||||
|
||||
return response()->json([
|
||||
'token_type' => 'Bearer',
|
||||
'token' => $token->accessToken,
|
||||
], 200);
|
||||
}
|
||||
}
|
||||
15
app/Http/Controllers/LogoutController.php
Normal file
15
app/Http/Controllers/LogoutController.php
Normal file
@@ -0,0 +1,15 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class LogoutController extends Controller
|
||||
{
|
||||
public function __invoke(Request $request)
|
||||
{
|
||||
$request->user()->token()->revoke();
|
||||
|
||||
return response()->json('ok', 200);
|
||||
}
|
||||
}
|
||||
44
app/Http/Controllers/ParenttController.php
Normal file
44
app/Http/Controllers/ParenttController.php
Normal file
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\ParentRequest;
|
||||
use App\Models\Parentt;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class ParenttController extends Controller
|
||||
{
|
||||
/**
|
||||
* Получение списка всех учителей
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return response()->json(Parentt::all(), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение одного учителя
|
||||
*
|
||||
* @param Parentt $parent
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function show(Parentt $parent)
|
||||
{
|
||||
return response()->json($parent, 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление учителя
|
||||
*
|
||||
* @param ParentRequest $request
|
||||
* @param Parentt $parent
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(ParentRequest $request, Parentt $parent)
|
||||
{
|
||||
$parent->update($request->all());
|
||||
return response()->json($parent, 200);
|
||||
}
|
||||
}
|
||||
56
app/Http/Controllers/RegisterController.php
Normal file
56
app/Http/Controllers/RegisterController.php
Normal file
@@ -0,0 +1,56 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\Auth\RegisterRequest;
|
||||
|
||||
use App\Models\HeadTeacher;
|
||||
use App\Models\Parentt;
|
||||
use App\Models\Role;
|
||||
use App\Models\Student;
|
||||
use App\Models\Teacher;
|
||||
use App\Models\User;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
public function __invoke(RegisterRequest $request)
|
||||
{
|
||||
$role = Role::where('name', $request->get('role'));
|
||||
|
||||
if ($role->isEmpty())
|
||||
return response()->json('Role not found', 404);
|
||||
|
||||
$user = User::create(array_merge(
|
||||
$request->only('login', 'class_id'),
|
||||
[
|
||||
'password' => bcrypt($request->get('password')),
|
||||
'role_id' => $role->first()->id,
|
||||
]
|
||||
));
|
||||
|
||||
$user_id = [
|
||||
'user_id' => $user->id,
|
||||
];
|
||||
|
||||
switch($request->get('role'))
|
||||
{
|
||||
case 'headteacher':
|
||||
HeadTeacher::create($user_id);
|
||||
break;
|
||||
|
||||
case 'teacher':
|
||||
Teacher::create($user_id);
|
||||
break;
|
||||
|
||||
case 'student':
|
||||
Student::create($user_id);
|
||||
break;
|
||||
|
||||
case 'parent':
|
||||
Parentt::create($user_id);
|
||||
break;
|
||||
}
|
||||
|
||||
return response()->json('ok', 200);
|
||||
}
|
||||
}
|
||||
75
app/Http/Controllers/SchoolClassController.php
Normal file
75
app/Http/Controllers/SchoolClassController.php
Normal file
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\SchoolClassRequest;
|
||||
use App\Models\SchoolClass;
|
||||
use App\Models\Teacher;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SchoolClassController extends Controller
|
||||
{
|
||||
/**
|
||||
* Получение списка всех классов
|
||||
*
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return response()->json(SchoolClass::all(), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение класса
|
||||
*
|
||||
* @param SchoolClass $class
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function show(SchoolClass $class)
|
||||
{
|
||||
return response()->json($class, 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param SchoolClassRequest $request
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function store(SchoolClassRequest $request)
|
||||
{
|
||||
$teacher = Teacher::find($request->get('teacher_id'));
|
||||
if ($teacher) {
|
||||
$schoolClass = $teacher->schoolClass()->create($request->all());
|
||||
} else {
|
||||
$schoolClass = SchoolClass::create($request->all());
|
||||
}
|
||||
return response()->json(SchoolClass::find($schoolClass->id), 201);
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление класса
|
||||
*
|
||||
* @param SchoolClassRequest $request
|
||||
* @param SchoolClass $class
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(SchoolClassRequest $request, SchoolClass $class)
|
||||
{
|
||||
$class->update($request->all());
|
||||
return response()->json($class, 200);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Удаление класса
|
||||
*
|
||||
* @param SchoolClass $class
|
||||
* @return JsonResponse
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function delete(SchoolClass $class)
|
||||
{
|
||||
$class->delete();
|
||||
return response()->json('ok', 200);
|
||||
}
|
||||
}
|
||||
46
app/Http/Controllers/StudentController.php
Normal file
46
app/Http/Controllers/StudentController.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\StudentRequest;
|
||||
use App\Models\Student;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
|
||||
class StudentController extends Controller
|
||||
{
|
||||
/**
|
||||
* Получение списка всех учителей
|
||||
*
|
||||
* @param StudentRequest $request
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index(StudentRequest $request)
|
||||
{
|
||||
return response()->json(Student::all(), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение одного учителя
|
||||
*
|
||||
* @param Student $student
|
||||
* @param StudentRequest $request
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function show(Student $student, StudentRequest $request)
|
||||
{
|
||||
return response()->json($student, 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление учителя
|
||||
*
|
||||
* @param StudentRequest $request
|
||||
* @param Student $student
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(StudentRequest $request, Student $student)
|
||||
{
|
||||
$student->update($request->all());
|
||||
return response()->json($student, 200);
|
||||
}
|
||||
}
|
||||
61
app/Http/Controllers/TaskController.php
Normal file
61
app/Http/Controllers/TaskController.php
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Task;
|
||||
|
||||
class TaskController extends Controller
|
||||
{
|
||||
public function createTask(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|min:5|max:100',
|
||||
'subject_id' => 'required'
|
||||
]);
|
||||
|
||||
$add_new = new Task;
|
||||
$add_new->name = $request->input('name');
|
||||
$add_new->description = $request->input('description');
|
||||
$add_new->subject_id = $request->input('subject_id');
|
||||
$add_new->path_to_task = $request->input('path_to_task');
|
||||
$add_new->save();
|
||||
|
||||
return Task::findOrFail($add_new->id);
|
||||
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
return Task::all(); // Здесь наверное лучше выводить только задания по конкретному предмету
|
||||
// Добавить сортировку
|
||||
}
|
||||
|
||||
public function showTask($taskId)
|
||||
{
|
||||
return Task::where('id', '=', $taskId)->get();
|
||||
}
|
||||
|
||||
public function editTask(Task $task, Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|min:5:max:100',
|
||||
'subject_id' => 'required'
|
||||
]);
|
||||
|
||||
$task->name = $request->input('name');
|
||||
$task->description = $request->input('description');
|
||||
$task->path_to_task = $request->input('path_to_task');
|
||||
|
||||
$task->save();
|
||||
|
||||
return Task::where('id', '=', $task->id)->get();
|
||||
}
|
||||
|
||||
public function deleteTask(Task $task)
|
||||
{
|
||||
$task->delete();
|
||||
|
||||
return 'Task №' . $task->id . ' has been deleted';
|
||||
}
|
||||
}
|
||||
48
app/Http/Controllers/TeacherController.php
Normal file
48
app/Http/Controllers/TeacherController.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Http\Requests\TeacherRequest;
|
||||
use App\Models\SchoolClass;
|
||||
use App\Models\Teacher;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TeacherController extends Controller
|
||||
{
|
||||
/**
|
||||
* Получение списка всех учителей
|
||||
*
|
||||
* @param TeacherRequest $request
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
return response()->json(Teacher::all(), 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Получение одного учителя
|
||||
*
|
||||
* @param Teacher $teacher
|
||||
* @param TeacherRequest $request
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function show(Teacher $teacher)
|
||||
{
|
||||
return response()->json($teacher, 200);
|
||||
}
|
||||
|
||||
/**
|
||||
* Обновление учителя
|
||||
*
|
||||
* @param TeacherRequest $request
|
||||
* @param Teacher $teacher
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function update(TeacherRequest $request, Teacher $teacher)
|
||||
{
|
||||
$teacher->update($request->all());
|
||||
return response()->json($teacher, 200);
|
||||
}
|
||||
}
|
||||
67
app/Http/Kernel.php
Normal file
67
app/Http/Kernel.php
Normal file
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http;
|
||||
|
||||
use Illuminate\Foundation\Http\Kernel as HttpKernel;
|
||||
|
||||
class Kernel extends HttpKernel
|
||||
{
|
||||
/**
|
||||
* The application's global HTTP middleware stack.
|
||||
*
|
||||
* These middleware are run during every request to your application.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $middleware = [
|
||||
// \App\Http\Middleware\TrustHosts::class,
|
||||
\App\Http\Middleware\TrustProxies::class,
|
||||
\Fruitcake\Cors\HandleCors::class,
|
||||
\App\Http\Middleware\PreventRequestsDuringMaintenance::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
|
||||
\App\Http\Middleware\TrimStrings::class,
|
||||
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
|
||||
];
|
||||
|
||||
/**
|
||||
* The application's route middleware groups.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $middlewareGroups = [
|
||||
'web' => [
|
||||
\App\Http\Middleware\EncryptCookies::class,
|
||||
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
|
||||
\Illuminate\Session\Middleware\StartSession::class,
|
||||
// \Illuminate\Session\Middleware\AuthenticateSession::class,
|
||||
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
|
||||
\App\Http\Middleware\VerifyCsrfToken::class,
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
|
||||
'api' => [
|
||||
'throttle:api',
|
||||
\Illuminate\Routing\Middleware\SubstituteBindings::class,
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* The application's route middleware.
|
||||
*
|
||||
* These middleware may be assigned to groups or used individually.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $routeMiddleware = [
|
||||
'auth' => \App\Http\Middleware\Authenticate::class,
|
||||
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
|
||||
'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
|
||||
'can' => \Illuminate\Auth\Middleware\Authorize::class,
|
||||
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
|
||||
'password.confirm' => \Illuminate\Auth\Middleware\RequirePassword::class,
|
||||
'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
|
||||
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
|
||||
'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
|
||||
'role' => \App\Http\Middleware\Role::class,
|
||||
];
|
||||
}
|
||||
21
app/Http/Middleware/Authenticate.php
Normal file
21
app/Http/Middleware/Authenticate.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Auth\Middleware\Authenticate as Middleware;
|
||||
|
||||
class Authenticate extends Middleware
|
||||
{
|
||||
/**
|
||||
* Get the path the user should be redirected to when they are not authenticated.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return string|null
|
||||
*/
|
||||
protected function redirectTo($request)
|
||||
{
|
||||
if (! $request->expectsJson()) {
|
||||
return route('login');
|
||||
}
|
||||
}
|
||||
}
|
||||
17
app/Http/Middleware/EncryptCookies.php
Normal file
17
app/Http/Middleware/EncryptCookies.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;
|
||||
|
||||
class EncryptCookies extends Middleware
|
||||
{
|
||||
/**
|
||||
* The names of the cookies that should not be encrypted.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $except = [
|
||||
//
|
||||
];
|
||||
}
|
||||
17
app/Http/Middleware/PreventRequestsDuringMaintenance.php
Normal file
17
app/Http/Middleware/PreventRequestsDuringMaintenance.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance as Middleware;
|
||||
|
||||
class PreventRequestsDuringMaintenance extends Middleware
|
||||
{
|
||||
/**
|
||||
* The URIs that should be reachable while maintenance mode is enabled.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $except = [
|
||||
//
|
||||
];
|
||||
}
|
||||
32
app/Http/Middleware/RedirectIfAuthenticated.php
Normal file
32
app/Http/Middleware/RedirectIfAuthenticated.php
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
|
||||
class RedirectIfAuthenticated
|
||||
{
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param \Closure $next
|
||||
* @param string|null ...$guards
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next, ...$guards)
|
||||
{
|
||||
$guards = empty($guards) ? [null] : $guards;
|
||||
|
||||
foreach ($guards as $guard) {
|
||||
if (Auth::guard($guard)->check()) {
|
||||
return redirect(RouteServiceProvider::HOME);
|
||||
}
|
||||
}
|
||||
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
29
app/Http/Middleware/Role.php
Normal file
29
app/Http/Middleware/Role.php
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class Role
|
||||
{
|
||||
private $delimetr = '|';
|
||||
|
||||
/**
|
||||
* Handle an incoming request.
|
||||
*
|
||||
* @param Request $request
|
||||
* @param Closure $next
|
||||
* @param $roles
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle(Request $request, Closure $next, $roles)
|
||||
{
|
||||
$roles = explode($this->delimetr, $roles);
|
||||
|
||||
if (!auth()->user()->hasRole($roles)) {
|
||||
return response()->json('',404);
|
||||
}
|
||||
return $next($request);
|
||||
}
|
||||
}
|
||||
18
app/Http/Middleware/TrimStrings.php
Normal file
18
app/Http/Middleware/TrimStrings.php
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;
|
||||
|
||||
class TrimStrings extends Middleware
|
||||
{
|
||||
/**
|
||||
* The names of the attributes that should not be trimmed.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $except = [
|
||||
'password',
|
||||
'password_confirmation',
|
||||
];
|
||||
}
|
||||
20
app/Http/Middleware/TrustHosts.php
Normal file
20
app/Http/Middleware/TrustHosts.php
Normal file
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Http\Middleware\TrustHosts as Middleware;
|
||||
|
||||
class TrustHosts extends Middleware
|
||||
{
|
||||
/**
|
||||
* Get the host patterns that should be trusted.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function hosts()
|
||||
{
|
||||
return [
|
||||
$this->allSubdomainsOfApplicationUrl(),
|
||||
];
|
||||
}
|
||||
}
|
||||
23
app/Http/Middleware/TrustProxies.php
Normal file
23
app/Http/Middleware/TrustProxies.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Fideloper\Proxy\TrustProxies as Middleware;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class TrustProxies extends Middleware
|
||||
{
|
||||
/**
|
||||
* The trusted proxies for this application.
|
||||
*
|
||||
* @var array|string|null
|
||||
*/
|
||||
protected $proxies;
|
||||
|
||||
/**
|
||||
* The headers that should be used to detect proxies.
|
||||
*
|
||||
* @var int
|
||||
*/
|
||||
protected $headers = Request::HEADER_X_FORWARDED_ALL;
|
||||
}
|
||||
17
app/Http/Middleware/VerifyCsrfToken.php
Normal file
17
app/Http/Middleware/VerifyCsrfToken.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Middleware;
|
||||
|
||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
|
||||
|
||||
class VerifyCsrfToken extends Middleware
|
||||
{
|
||||
/**
|
||||
* The URIs that should be excluded from CSRF verification.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $except = [
|
||||
//
|
||||
];
|
||||
}
|
||||
27
app/Http/Requests/ApiFormRequest.php
Normal file
27
app/Http/Requests/ApiFormRequest.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Contracts\Validation\Validator;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Http\Exceptions\HttpResponseException;
|
||||
|
||||
|
||||
abstract class ApiFormRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Determine if the user is authorized to make this request.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function authorize()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
protected function failedValidation(Validator $validator)
|
||||
{
|
||||
throw new HttpResponseException(response()->json($validator->errors(), 400));
|
||||
}
|
||||
}
|
||||
19
app/Http/Requests/Auth/LoginRequest.php
Normal file
19
app/Http/Requests/Auth/LoginRequest.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Auth;
|
||||
|
||||
use App\Http\Requests\UserRequest;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class LoginRequest extends UserRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function specific()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
22
app/Http/Requests/Auth/RegisterRequest.php
Normal file
22
app/Http/Requests/Auth/RegisterRequest.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Auth;
|
||||
|
||||
use App\Http\Requests\UserRequest;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class RegisterRequest extends UserRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function specific()
|
||||
{
|
||||
return [
|
||||
'role' => 'required|string',
|
||||
'class_id' => 'required|integer|gt:0',
|
||||
];
|
||||
}
|
||||
}
|
||||
25
app/Http/Requests/Auth/UserRequest.php
Normal file
25
app/Http/Requests/Auth/UserRequest.php
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
abstract class UserRequest extends ApiFormRequest
|
||||
{
|
||||
public function specific()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return array_merge([
|
||||
'login' => 'required|string',
|
||||
'password' => 'required|string|min:6',
|
||||
], $this->specific());
|
||||
}
|
||||
}
|
||||
19
app/Http/Requests/HeadTeacherRequest.php
Normal file
19
app/Http/Requests/HeadTeacherRequest.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
class HeadTeacherRequest extends ApiFormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'date_of_birth' => 'date_format:Y/m/d|before:today|after:1900-01-01',
|
||||
'phone_number' => 'regex:/^\+?7\d{10}$/',
|
||||
];
|
||||
}
|
||||
}
|
||||
21
app/Http/Requests/ParentRequest.php
Normal file
21
app/Http/Requests/ParentRequest.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class ParentRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'date_of_birth' => 'date_format:Y/m/d|before:today|after:1900-01-01',
|
||||
'phone_number' => 'regex:/^\+?7\d{10}$/',
|
||||
];
|
||||
}
|
||||
}
|
||||
23
app/Http/Requests/SchoolClassRequest.php
Normal file
23
app/Http/Requests/SchoolClassRequest.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class SchoolClassRequest extends ApiFormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'number' => 'required|integer|between:1,11',
|
||||
'letter' => 'required|max:1',
|
||||
'count_students' => 'required|integer',
|
||||
'profile' => 'required',
|
||||
];
|
||||
}
|
||||
}
|
||||
22
app/Http/Requests/StudentRequest.php
Normal file
22
app/Http/Requests/StudentRequest.php
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class StudentRequest extends FormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'date_of_birth' => 'date_format:Y/m/d|before:today|after:1900-01-01',
|
||||
'phone_number' => 'regex:/^\+?7\d{10}$/',
|
||||
'class_id' => 'integer|gt:0',
|
||||
];
|
||||
}
|
||||
}
|
||||
21
app/Http/Requests/TeacherRequest.php
Normal file
21
app/Http/Requests/TeacherRequest.php
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests;
|
||||
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
|
||||
class TeacherRequest extends ApiFormRequest
|
||||
{
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'date_of_birth' => 'date_format:Y/m/d|before:today|after:1900-01-01',
|
||||
'phone_number' => 'regex:/^\+?7\d{10}$/',
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user