diff --git a/app/Http/Controllers/MaintenanceController.php b/app/Http/Controllers/MaintenanceController.php index cdf1ebf..1e39d7d 100644 --- a/app/Http/Controllers/MaintenanceController.php +++ b/app/Http/Controllers/MaintenanceController.php @@ -2,15 +2,14 @@ namespace App\Http\Controllers; -use App\Campagne; -use App\Coupon; +use App\Http\Requests\Users\StoreUsers; +use App\Http\Requests\Users\UpdateUsers; use App\Site; use App\User; use App\Log; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; -use Carbon\Carbon; class MaintenanceController extends Controller { @@ -19,15 +18,8 @@ class MaintenanceController extends Controller { $users = User::all(); - foreach ($users as &$user) { - $sites = $user->sites()->get(); - $user->linkedSites = ""; - foreach ($sites as $site) { - $user->linkedSites .= '

' . $site->site_nom . '

'; - } - } $dates = array(date('m/Y')); - for ($i = 1; $i < 12; $i++) { + for ($i = 1; $i < 6; $i++) { $datebefore = date("m/Y", strtotime("-" . $i . " months")); array_push($dates, $datebefore); } @@ -37,15 +29,6 @@ class MaintenanceController extends Controller array_push($count, [$month, $logs]); } - // $logArray = array(); - // foreach ($logs as $logMonth) { - // $count = count($logMonth); - // foreach ($logMonth as $log) { - // $date = Carbon::parse($log->created_at)->format('m/Y'); - // } - // array_push($logArray, [$date, $count]); - // } - return view('maintenance.index')->with(['users' => $users, 'logs' => $count]); } @@ -55,38 +38,17 @@ class MaintenanceController extends Controller return view('user.create')->with(['sites' => $sites]); } - public function userstore(Request $request) + public function userstore(StoreUsers $request) { - - $validatedData = $request->validate([ - 'email' => 'required|unique:users|email', - 'name' => 'required', - 'password' => 'required' - ]); - - $nom = $request->name; - $email = $request->email; - $password = $request->password; - $role = $request->roles; - $user = new User(); - $user->name = $nom; - $user->email = $email; - $user->password = Hash::make($password); - $user->roles = $role; + $user->fill($request->validated()); + $user->password = Hash::make($request->password); $user->save(); - //MAJ des sites liés - if (isset($request->site)) { - $siteids = $request->site; - $sites = Site::whereIn('site_id', $siteids)->get()->pluck('id')->toArray(); - $user->sites()->sync($sites); - } + $sites = Site::whereIn('site_id', $request->site)->get()->pluck('id')->toArray(); + $user->sites()->sync($sites); - - $sites = Site::all(); - $usersites = $user->sites()->get()->pluck('site_id')->toArray(); - return view('user.edit')->with(['user' => $user, 'sites' => $sites, 'usersites' => $usersites]); + return redirect()->route('maintenance.user.edit', ['user' => $user]); } public function useredit(User $user) @@ -96,27 +58,14 @@ class MaintenanceController extends Controller return view('user.edit')->with(['user' => $user, 'sites' => $sites, 'usersites' => $usersites]); } - public function userdestroy(User $user) - { - if ($user->delete()) { - return redirect(route('maintenance.show')); - } else { - session()->flash('delete_nok', 'Erreur lors de la suppression'); - return view('maintenance.user.edit')->with('user', $user); - } - } - - public function userupdate(Request $request, User $user) + public function userupdate(UpdateUsers $request, User $user) { //MAJ du User - $user->name = $request->name; - $user->email = $request->email; - $user->roles = $request->roles; + $user->fill($request->validated()); $user->save(); //MAJ des sites liés - $siteids = $request->site; - $sites = Site::whereIn('site_id', $siteids)->get()->pluck('id')->toArray(); + $sites = Site::whereIn('site_id', $request->site)->get()->pluck('id')->toArray(); $user->sites()->sync($sites); $marques = Auth::user()->sites; @@ -125,26 +74,16 @@ class MaintenanceController extends Controller }); session()->put('marques', $submarques); + return redirect()->route('maintenance.show'); + } - $users = User::all(); - - foreach ($users as &$user) { - $sites = $user->sites()->get(); - $user->linkedSites = ""; - foreach ($sites as $site) { - $user->linkedSites .= '

' . $site->site_nom . '

'; - } + public function userdestroy(User $user) + { + if ($user->delete()) { + return redirect()->route('maintenance.show'); + } else { + session()->flash('delete_nok', 'Erreur lors de la suppression'); + return view('maintenance.user.edit')->with('user', $user); } - $dates = array('02/2019'); - for ($i = 1; $i < 12; $i++) { - $datebefore = date("m/Y", strtotime("-" . $i . " months")); - array_push($dates, $datebefore); - } - $count = array(); - foreach ($dates as $month) { - $logs = Log::where(['log_statut' => 'NOK'])->whereMonth('created_at', $month)->count(); - array_push($count, [$month, $logs]); - } - return view('maintenance.index')->with(['users' => $users, 'logs' => $count]); } } diff --git a/app/Http/Requests/Users/StoreUsers.php b/app/Http/Requests/Users/StoreUsers.php new file mode 100644 index 0000000..e0f7cb9 --- /dev/null +++ b/app/Http/Requests/Users/StoreUsers.php @@ -0,0 +1,36 @@ +roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'email' => 'required|unique:users|email', + 'name' => 'required', + 'password' => 'min:8|required', + 'site' => 'required', + 'roles' => 'required' + ]; + } +} diff --git a/app/Http/Requests/Users/UpdateUsers.php b/app/Http/Requests/Users/UpdateUsers.php new file mode 100644 index 0000000..eaf7b34 --- /dev/null +++ b/app/Http/Requests/Users/UpdateUsers.php @@ -0,0 +1,39 @@ +roles === UserRoles::superadmin()->value || Auth::user()->roles === UserRoles::admin()->value); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'email' => [ + 'required', + Rule::unique('users')->ignore($this->user->id) + ], + 'name' => 'required', + 'site' => 'required', + 'roles' => 'required' + ]; + } +} diff --git a/config/app.php b/config/app.php index 06100d8..269d5ba 100644 --- a/config/app.php +++ b/config/app.php @@ -2,6 +2,7 @@ use App\Enums\CampaignTypes; use App\Enums\Countries; +use App\Enums\UserRoles; return [ @@ -219,6 +220,7 @@ return [ 'PDF' => Barryvdh\DomPDF\Facade::class, 'CampaignTypes' => CampaignTypes::class, 'Countries' => Countries::class, + 'UserRoles' => UserRoles::class, ], ]; diff --git a/resources/views/maintenance/index.blade.php b/resources/views/maintenance/index.blade.php index cd9452f..d6bc22e 100644 --- a/resources/views/maintenance/index.blade.php +++ b/resources/views/maintenance/index.blade.php @@ -2,89 +2,63 @@ @section('content') -

Maintenance

+

+ + {{ __('Maintenance') }} +

-
Gestion des utilisateurs
- Ajouter +
{{ __('Gestion des utilisateurs') }}
+ {{ __('Ajouter') }}
- - @if(isset($users) && count($users)>0) - - - - - - - - - @foreach ($users as $user) +
NomEmailRôleSite liés
+ + + + + + + + @foreach ($users as $user) + + + + + + @if (Auth::user()->id === $user->id) + + @else + + @endif + + + @endforeach + - - - - - @if (Auth::user()->id == $user->id) - - @else - - @endif - + - @endforeach - - - - - -
{{ __('Nom') }}{{ __('Email') }}{{ __('Rôle') }}{{ __('Site liés') }}
{{ $user->name }}{{ $user->email }}{{ $user->roles }} + @foreach ($user->sites as $site) +

{{ $site->site_nom }}

+ @endforeach +
{{ $user->name }}{{ $user->email }}{{ $user->roles }}{!! $user->linkedSites !!} + +
- -
- {!! Form::open(['id' => 'delete-hidden']) !!} - @method('DELETE') - {!! Form::close() !!} - @endif -
-
-
Nettoyage de la base
-
-

Nettoyer les murs (datant de plus d'un an)

-
-
-
-
- Nettoyer -
-
-
-

Nettoyer les paniers (qui ont été imprimés et datant de plus de deux mois)

-
-
-
-
- Nettoyer -
-
-
-

Nettoyer les contacts (qui n'ont pas de paniers ni de murs liés et datant de plus d'un mois)

-
-
-
-
- Nettoyer -
-
- + + +
+ @csrf + @method('DELETE') +
-
Erreur d'appels :
+
{{ __("Erreur d'appels") }} :
@endsection @section('scripts') - + -@endsection \ No newline at end of file +@endsection diff --git a/resources/views/user/create.blade.php b/resources/views/user/create.blade.php index 706510c..1311bdc 100644 --- a/resources/views/user/create.blade.php +++ b/resources/views/user/create.blade.php @@ -1,7 +1,10 @@ @extends('layouts.main') @section('content') -

Nouvel utilisateur

+

+ + {{ __('Nouvel utilisateur') }} +

@if ($errors->any())
@endif
- {!! Form::open(['route' => 'maintenance.user.create-submit', 'enctype' => 'multipart/form-data', 'autocomplete' => 'off']) !!} +
+ @csrf
-
- {!! Form::label('name', 'Nom *') !!} - {!! Form::text('name', null, ['required']) !!} -
-
- {!! Form::label('email', 'Email *') !!} - {!! Form::input('text', 'email', null, ['required']) !!} -
+
+ +
+
+ + +
+
- {!! Form::label('password', 'Mot de passe *') !!} - {!! Form::password('password', $attributes = ['autocomplete' => 'new-password', 'required' => 'required', 'minlength' => 6]) !!} + +
- {!! Form::label('roles', 'Rôle') !!} - {!! Form::select('roles', array('superadmin' => 'Super Administrateur', 'admin' => 'Administrateur', 'marketing' => 'Marketing')) !!} + +
-

Sites liés

+

{{ __('Sites liés') }}

@foreach($sites as $site)
@@ -44,9 +52,9 @@ @endforeach
- Les champs avec un * sont obligatoires - {!! Form::submit('Enregistrer') !!} + {{ __('Les champs avec un * sont obligatoires') }} +
- {!! Form::close() !!} +
@endsection diff --git a/resources/views/user/edit.blade.php b/resources/views/user/edit.blade.php index 01ab698..7f7c134 100644 --- a/resources/views/user/edit.blade.php +++ b/resources/views/user/edit.blade.php @@ -1,27 +1,44 @@ @extends('layouts.main') @section('content') -

Editer l'utilisateur

+

+ + {{ __("Editer l'utilisateur") }} +

+@if ($errors->any()) +
+ +
+@endif
- {!! Form::model($user, ['route' => ['maintenance.user.edit-submit', $user], 'enctype' => 'multipart/form-data']) !!} +
+ @csrf @method('PUT')
- {!! Form::label('name', 'Nom') !!} - {!! Form::text('name', null, ['required']) !!} + +
- {!! Form::label('email', 'Email') !!} - {!! Form::input('text', 'email', null, ['required']) !!} + +
- {!! Form::label('roles', 'Rôle') !!} - {!! Form::select('roles', array('superadmin' => 'Super Administrateur', 'admin' => 'Administrateur', 'marketing' => 'Marketing')) !!} + +
-

Sites liés

+

{{ __('Sites liés') }}

@foreach($sites as $site)
@@ -32,8 +49,8 @@ @endforeach
- {!! Form::submit('Enregistrer') !!} +
- {!! Form::close() !!} +
@endsection diff --git a/routes/web.php b/routes/web.php index eb1e7ae..e96a6fa 100644 --- a/routes/web.php +++ b/routes/web.php @@ -64,13 +64,6 @@ Route::group(['prefix' => 'bo', 'middleware' => ['auth', 'saveroute']], function Route::post('/publish-coupons-ajax', 'AjaxController@publish_coupons_ajax'); // ---- Impressions de coupons Route::post('/ajx_impression', 'AjaxController@impression_ajax'); - // ---- Maintenance : Nettoyer les contacts - Route::post('/displayCleanContacts', 'AjaxController@get_clean_contacts_detail'); - Route::post('/cleanContacts', 'AjaxController@clean_contacts'); - // ---- Maintenance : Nettoyer les murs - Route::post('/cleanWalls', 'AjaxController@clean_walls'); - // ---- Maintenance : Nettoyer les paniers - Route::post('/cleanBaskets', 'AjaxController@clean_baskets'); // ---- Statistiques Route::post('/loadStat', 'StatistiqueController@load_stats');