Files
onboard/app/Http/Controllers/AuthController.php
brusnitsyn cb43c74a72 * добавлены операции и услуги операций
* добавлена выборка и подсчет по датам для роли зав.
* переключатель ролей
* выбор отделений для роли зав.
2026-01-22 17:58:27 +09:00

76 lines
2.0 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Redis;
use Illuminate\Support\Facades\Validator;
use Inertia\Inertia;
class AuthController extends Controller
{
public function login(Request $request)
{
$validator = Validator::make($request->all(), [
'login' => 'required',
'password' => 'required',
'remember' => 'boolean'
]);
if ($validator->fails()) {
return response()->json([
'success' => false,
'errors' => $validator->errors()
], 422);
}
$credentials = $request->only('login', 'password');
if (!Auth::attempt($credentials, $request->remember)) {
return response()->json([
'success' => false,
'message' => 'Неверный login или пароль'
], 401);
}
$user = User::where('login', $request->login)->first();
if (!$user->is_active) {
Auth::logout();
return response()->json([
'success' => false,
'message' => 'Учетная запись отключена'
], 403);
}
$request->session()->regenerate();
$deviceName = 'web-' . ($request->header('User-Agent') ?: 'browser');
$token = $user->createToken($deviceName)->plainTextToken;
$request->session()->put('token', $token);
return Inertia::location(route('start'));
}
public function changeRole(Request $request)
{
$user = Auth::user();
if (!$user) return null;
$data = $request->validate([
'role_id' => 'required|integer|exists:roles,role_id'
]);
$sessionKey = 'user_' . $user->id . '_current_role';
$user->current_role_id = $data['role_id'];
$user->save();
return redirect()->route('start')->setStatusCode(302);
}
}