Files
sidata/app/Http/Controllers/AuthController.php
T
2022-07-20 15:12:55 +07:00

128 lines
3.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Validator;
use Hash;
use Session;
use App\Models\User;
use App\Models\RoleUser;
class AuthController extends Controller
{
public function showFormLogin()
{
if (Auth::check()) {
// True sekalian session field di users nanti bisa dipanggil via Auth
// Login Success
return redirect()->route('home');
}
return view('login');
}
public function login(Request $request)
{
$rules = [
'nrk' => 'required|string',
'password' => 'required|string'
];
$messages = [
'nrk.required' => 'NRK wajib diisi',
'nrk.string' => 'NRK tidak valid',
'password.required' => 'Password wajib diisi',
'password.string' => 'Password harus berupa string'
];
$validator = Validator::make($request->all(), $rules, $messages);
if($validator->fails()){
return redirect()->back()->withErrors($validator)->withInput($request->all);
}
$data = [
'nrk' => $request->input('nrk'),
'password' => $request->input('password'),
];
Auth::attempt($data);
if (Auth::check()) {
// True sekalian session field di users nanti bisa dipanggil via Auth
// Login Success
$taValue = [];
for($i=2022;$i<=date("Y");$i++){
$taValue[] = $i;
}
Session::put('listTA', $taValue);
return redirect()->route('home');
} else {
// False
// Login Fail
Session::flash('error', 'NRK atau password salah');
return redirect()->route('login');
}
}
public function showFormRegister()
{
return view('register');
}
public function register(Request $request)
{
$rules = [
'name' => 'required|min:3|max:35',
'nrk' => 'required|min:5|unique:users,nrk',
'password' => 'required|confirmed'
];
$messages = [
'name.required' => 'Nama Lengkap wajib diisi',
'name.min' => 'Nama lengkap minimal 3 karakter',
'name.max' => 'Nama lengkap maksimal 35 karakter',
'nrk.required' => 'NRK wajib diisi',
'nrk.min' => 'NRK tidak valid',
'nrk.unique' => 'NRK sudah terdaftar',
'password.required' => 'Password wajib diisi',
'password.confirmed' => 'Password tidak sama dengan konfirmasi password'
];
$validator = Validator::make($request->all(), $rules, $messages);
if($validator->fails()){
return redirect()->back()->withErrors($validator)->withInput($request->all);
}
$user = new User;
$user->name = ucwords(strtolower($request->name));
$user->nrk = strtolower($request->nrk);
$user->password = Hash::make($request->password);
// $user->email_verified_at = \Carbon\Carbon::now();
$simpan = $user->save();
$roleUser = new RoleUser;
$roleUser->role_id = 3;
$roleUser->user_id = $user->id;
$roleUser->save();
if($simpan){
Session::flash('success', 'Register berhasil! Silahkan login untuk mengakses data');
return redirect()->route('login');
} else {
Session::flash('errors', ['' => 'Register gagal! Silahkan ulangi beberapa saat lagi']);
return redirect()->route('register');
}
}
public function logout()
{
Auth::logout(); // menghapus session yang aktif
return redirect()->route('login');
}
}