2021-01-15 14:47:59 +01:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
|
|
2021-08-12 16:26:35 +02:00
|
|
|
use App\Http\Requests\Users\ImportRequest;
|
|
|
|
|
use App\Imports\UsersImport;
|
2021-01-15 14:47:59 +01:00
|
|
|
use App\Models\AppUsers;
|
|
|
|
|
use App\Models\Directories;
|
|
|
|
|
use Illuminate\Http\Request;
|
|
|
|
|
use Illuminate\Support\Facades\Hash;
|
2021-08-12 16:26:35 +02:00
|
|
|
use Maatwebsite\Excel\Facades\Excel;
|
2021-01-15 14:47:59 +01:00
|
|
|
|
|
|
|
|
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){
|
2021-03-10 11:00:53 +01:00
|
|
|
$name = "";
|
2021-01-15 14:47:59 +01:00
|
|
|
$folders[$k]['parents'] = $folder->parents;
|
2021-03-10 11:00:53 +01:00
|
|
|
foreach ($folder->parents as $parent)
|
|
|
|
|
$name .= json_decode($parent->name)->fr . " / ";
|
|
|
|
|
$name .= json_decode($folder->name)->fr;
|
|
|
|
|
$folders[$k]['name'] = $name;
|
2021-01-15 14:47:59 +01:00
|
|
|
}
|
|
|
|
|
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é !');
|
|
|
|
|
}
|
|
|
|
|
|
2021-08-12 16:26:35 +02:00
|
|
|
/**
|
|
|
|
|
* 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);
|
2021-01-15 14:47:59 +01:00
|
|
|
|
2021-08-12 16:26:35 +02:00
|
|
|
return redirect()->route('users.index')->with('success', 'Import terminé.');
|
2021-01-15 14:47:59 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|