ldc-com-app-bo/app/Http/Controllers/UsersController.php
Vincent BRIDIER 00f1c65149
Clean routes
2022-05-11 12:27:07 +02:00

108 lines
3.5 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Http\Requests\Users\ImportRequest;
use App\Imports\UsersImport;
use App\Models\AppUsers;
use App\Models\Directories;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Maatwebsite\Excel\Facades\Excel;
class UsersController extends Controller
{
public function index(Request $request) {
return view('users.index', ['users' => AppUsers::all()]);
}
public function add(Request $request) {
return view('users.add');
}
public function store(Request $request) {
$surname = $request->surname;
$firstname = $request->firstname;
$email = $request->email;
$password = $request->new_password;
$activated = $request->UserActivated;
$user = AppUsers::where('email', '=', $email)->first();
if ($user) {
return back()->with(['status' => 'Cette adresse email est déjà utilisée.', 'surname' => $surname, 'firstname' => $firstname, 'activated' => $activated]);
}else {
$user = new AppUsers();
$user->surname = $surname;
$user->firstname = $firstname;
$user->email = $email;
$user->password = Hash::make($password);
$user->authorizedFolders = json_encode([]);
if ($activated === NULL) {
$user->activated = 0;
} else {
$user->activated = 1;
}
$user->save();
return redirect()->route('users.edit', ['id' => $user->id])->with('status', 'Ajouté !');
}
}
public function edit(Request $request) {
$user = AppUsers::findOrFail($request->id);
$folders = Directories::where('needAuthorization', 1)->get();
foreach ($folders as $k => $folder){
$name = "";
$folders[$k]['parents'] = $folder->parents;
foreach ($folder->parents as $parent)
$name .= json_decode($parent->name)->fr . " / ";
$name .= json_decode($folder->name)->fr;
$folders[$k]['name'] = $name;
}
return view('users.edit', ['user' => $user, 'folders' => $folders]);
}
public function update(Request $request) {
$surname = $request->surname;
$firstname = $request->firstname;
$email = $request->email;
$password = $request->new_password;
$activated = $request->UserActivated;
$role = $request->role;
$authorized_folders = $request->authorized_folders;
$user = AppUsers::findOrFail($request->id);
$user->surname = $surname;
$user->firstname = $firstname;
$user->email = $email;
$user->role = $role;
if ($authorized_folders === 'null') {
$user->authorizedFolders = json_encode([]);
}else{
$user->authorizedFolders = $authorized_folders;
}
if ($password != NULL){
$user->password = Hash::make($password);
}
if ($activated === NULL) {
$user->activated = 0;
}else{
$user->activated = 1;
}
$user->save();
return redirect()->route('users.edit', ['id' => $user->id])->with('status', 'Enregistré !');
}
/**
* Mass import by CSV
* matricule;lastname;firstname;email
* default = USER
*/
public function import(ImportRequest $request)
{
Excel::import(new UsersImport, $request->import, null, \Maatwebsite\Excel\Excel::CSV);
return redirect()->route('users.index')->with('success', 'Import terminé.');
}
}