ldc-com-app-bo/app/Http/Controllers/UsersController.php

94 lines
2.7 KiB
PHP
Raw Normal View History

2021-01-15 14:47:59 +01:00
<?php
namespace App\Http\Controllers;
use App\Http\Requests\Users\StoreRequest;
2021-08-12 16:26:35 +02:00
use App\Http\Requests\Users\ImportRequest;
use App\Http\Requests\Users\UpdateRequest;
2021-08-12 16:26:35 +02:00
use App\Imports\UsersImport;
use App\Models\AppUser;
2021-01-15 14:47:59 +01:00
use App\Models\Directories;
use Illuminate\Database\Eloquent\Collection;
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()
{
return view('app-users.index', ['app_users' => AppUser::all()]);
2021-01-15 14:47:59 +01:00
}
public function create()
{
return view('app-users.create');
2021-01-15 14:47:59 +01:00
}
public function store(StoreRequest $request)
{
$appUser = new AppUser();
$appUser->fill($request->validated());
$appUser->activated = $request->has('activated') ? 1 : 0;
$appUser->save();
return redirect()->route('app-users.edit', ['app_user' => $appUser])->with('status', __('Utilisateur créé.'));
2021-01-15 14:47:59 +01:00
}
public function edit(AppUser $appUser)
{
return view('app-users.edit', ['app_user' => $appUser, 'folders' => $this->renderFolders(Directories::where('needAuthorization', 1)->get())]);
2021-01-15 14:47:59 +01:00
}
public function update(UpdateRequest $request, AppUser $appUser)
{
$appUser->fill($request->validated());
$appUser->activated = $request->has('activated') ? 1 : 0;
$appUser->save();
2021-01-15 14:47:59 +01:00
return redirect()->route('app-users.edit', ['app_user' => $appUser])->with('status', __('Utilisateur enregistré.'));
}
/**
* Delete an app user
2022-09-29 10:09:43 +02:00
*
* @param AppUser $app_user
* @return response
*/
public function destroy(AppUser $app_user)
{
$app_user->delete();
return redirect()->route('app-users.index')->with('status', __('Utilisateur supprimé.'));
2021-01-15 14:47:59 +01:00
}
2021-08-12 16:26:35 +02:00
/**
* Mass import by CSV
* matricule;lastname;firstname;email
* default = USER
*/
public function import(ImportRequest $request)
{
2022-09-29 10:09:43 +02:00
Excel::import(new UsersImport(), $request->import, null, \Maatwebsite\Excel\Excel::CSV);
2021-01-15 14:47:59 +01:00
return redirect()->route('app-users.index')->with('status', 'Import terminé.');
2021-01-15 14:47:59 +01:00
}
/**
* Render folders
2022-09-29 10:09:43 +02:00
*
* @param Collection $folders
* @return array
*/
private function renderFolders(Collection $folders)
{
foreach ($folders as $k => $folder) {
2022-09-29 10:09:43 +02:00
$name = "";
$folders[$k]['parents'] = $folder->parents;
2022-09-29 10:09:43 +02:00
foreach ($folder->parents as $parent) {
$name .= json_decode($parent->name)->fr . " / ";
2022-09-29 10:09:43 +02:00
}
$name .= json_decode($folder->name)->fr;
$folders[$k]['name'] = $name;
}
return $folders;
}
2021-01-15 14:47:59 +01:00
}