135 lines
3.5 KiB
PHP
135 lines
3.5 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
namespace App\Http\Controllers;
|
||
|
|
|
||
|
|
use DB;
|
||
|
|
use Mail;
|
||
|
|
use Illuminate\Support\Facades\Log;
|
||
|
|
|
||
|
|
use Illuminate\Http\Request;
|
||
|
|
use App\Models\User;
|
||
|
|
use Illuminate\Support\Facades\Artisan;
|
||
|
|
use Illuminate\Support\Facades\Auth;
|
||
|
|
use Illuminate\Support\Facades\Session;
|
||
|
|
|
||
|
|
class AdminController extends Controller
|
||
|
|
{
|
||
|
|
|
||
|
|
public function index () {
|
||
|
|
return view('Admin.index');
|
||
|
|
}
|
||
|
|
|
||
|
|
public function login (Request $request) {
|
||
|
|
$data = $request->all();
|
||
|
|
|
||
|
|
if ((!isset($data['mail'])) || (!isset($data['password']))){
|
||
|
|
$errors = '1';
|
||
|
|
return view('Admin.index', compact('errors'));
|
||
|
|
}
|
||
|
|
|
||
|
|
$credentials = [
|
||
|
|
'mail' => $data['mail'],
|
||
|
|
'password' => $data['password']
|
||
|
|
];
|
||
|
|
|
||
|
|
try {
|
||
|
|
if (Auth::attempt($credentials)) {
|
||
|
|
$user = DB::table('users')->where('email', '=', $credentials['mail'])
|
||
|
|
->get(['name']);
|
||
|
|
|
||
|
|
$credentials['name'] = $user[0]->name;
|
||
|
|
Session::push('credentials', $credentials);
|
||
|
|
|
||
|
|
return redirect()->route('employees');
|
||
|
|
}
|
||
|
|
else{
|
||
|
|
$errors = '2';
|
||
|
|
return view('Admin.index', compact('errors'));
|
||
|
|
}
|
||
|
|
} catch (\Exception $ex) {
|
||
|
|
Log::channel('error')->info('Error:'.$ex);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public function logout (Request $request) {
|
||
|
|
|
||
|
|
$request->session()->flush();
|
||
|
|
$request->session()->regenerate();
|
||
|
|
Auth::logout();
|
||
|
|
return redirect()->route('login');
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public function search (Request $request) {
|
||
|
|
$data = $request->all();
|
||
|
|
$criteria = $data['search'];
|
||
|
|
|
||
|
|
$users = User::where('name', 'LIKE', '%'.$criteria.'%')
|
||
|
|
->orWhere('department', 'LIKE', '%'.$criteria.'%')
|
||
|
|
->get();
|
||
|
|
|
||
|
|
$curr_user = $request->session()->get('credentials');
|
||
|
|
$data = [
|
||
|
|
'users' => $users,
|
||
|
|
'curr_user' => $curr_user[0]['name']
|
||
|
|
];
|
||
|
|
|
||
|
|
return view('Admin.employees', compact('data'));
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public function show (Request $request) {
|
||
|
|
$users = DB::table('users')->orderBy('name')->get();
|
||
|
|
$curr_user = $request->session()->get('credentials');
|
||
|
|
|
||
|
|
$data = [
|
||
|
|
'users' => $users,
|
||
|
|
'curr_user' => $curr_user[0]['name']
|
||
|
|
];
|
||
|
|
|
||
|
|
return view('Admin.employees')->with(compact('data'));
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
public function import () {
|
||
|
|
|
||
|
|
try {
|
||
|
|
Artisan::call('ldap:import user -n');
|
||
|
|
DB::table('users')->where('description', '=', 'Test Account')->delete();
|
||
|
|
return redirect()->route('employees');
|
||
|
|
} catch (\Exception $ex) {
|
||
|
|
Log::channel('error')->info('Error:'.$ex);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
public function export (Request $request) {
|
||
|
|
$data = array('data' => json_decode($request->data));
|
||
|
|
return response()->json($data);
|
||
|
|
}
|
||
|
|
|
||
|
|
public function sort (Request $request, $sortBy) {
|
||
|
|
|
||
|
|
$data = array('data' => json_decode($request->data));
|
||
|
|
|
||
|
|
if ($sortBy != 'name'){
|
||
|
|
$sorted = collect($data['data'])->sortByDesc($sortBy);
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
$sorted = collect($data['data'])->sortBy($sortBy);
|
||
|
|
}
|
||
|
|
|
||
|
|
$data = $sorted->values()->all();
|
||
|
|
$curr_user = $request->session()->get('credentials');
|
||
|
|
|
||
|
|
$data = [
|
||
|
|
'users' => $data,
|
||
|
|
'curr_user' => $curr_user[0]['name']
|
||
|
|
];
|
||
|
|
|
||
|
|
return view('Admin.employees', compact('data'));
|
||
|
|
}
|
||
|
|
}
|