authorizeRoles(config('roles.const.ADMIN')); $users = User::all(); $sujets = Sujet::where('sujet_dam', 1)->get(); return view('users.index')->with(['users'=> $users, 'sujets'=> $sujets]); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { Auth::user()->authorizeRoles(config('roles.const.ADMIN')); $roles = config('roles.label'); $marques = Marque::orderBy('libMarq', 'asc')->get(); $sujets = Sujet::where('sujet_dam', 1)->orderBy('libelle', 'asc')->get(); return view('users.create')->with(['roles'=> $roles, 'marques'=> $marques, 'sujets'=> $sujets]); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { Auth::user()->authorizeRoles(config('roles.const.ADMIN')); $validatedData = $request->validate([ 'matricule' => 'required', 'firstname' => 'required', 'lastname' => 'required', 'email' => 'email', 'role' => 'required' ]); $user = User::where('matricule', $request->matricule)->first(); if($user){ session()->flash('error', "Ce matricule est déjà présent dans l'application. Ajout impossible."); return redirect()->route('user.create'); }else{ // ---- L'utilisateur $user = new User(); $user->matricule = $request->matricule; $user->firstname = $request->firstname; $user->lastname = $request->lastname; $user->email = $request->email; $user->role = $request->role; if ($user->save()){ // ---- Les marques $sMarques = $request->marques; if($sMarques != ""){ $marques = explode(",", $sMarques); foreach($marques as $marqueId){ $user->marques()->attach($marqueId); } } // ---- Les sujets $sSujets = $request->sujets; if($sSujets != ""){ $sujets = explode(",", $sSujets); foreach($sujets as $sujetId){ $user->sujets()->attach($sujetId); } }else{ session()->flash('error', "Vous devez ajouter au moins un sujet."); return redirect()->route('user.create'); } session()->flash('message', "L'utilisateur à été enregistré"); return redirect()->route('user.edit', ['user' => $user]); }else{ session()->flash('error', "Une erreur s'est produite, ajout impossible"); return redirect()->route('user.create'); } } } /** * Check le matricule avant ajout de l'utilisateur * */ public function checkMatricule(Request $request) { Auth::user()->authorizeRoles(config('roles.const.ADMIN')); $response = array(); $response["exist_bdd"] = false; $response["exist_ldap"] = false; $data = $request->all(); // This will get all the request data. $matricule = $request->input('matricule'); // ---- Ctrl de la présence du matricule en base $user = User::where('matricule', $request->matricule)->first(); if($user){ $response["exist_bdd"] = true; } $adldap = Adldap::getFacadeRoot(); $results = $adldap->search()->where('uid', '=', $matricule)->first(); if($results){ $response["exist_ldap"] = true; $ldap_user = array(); $ldap_user['firstname'] = $results->getAttribute('givenname')[0]; $ldap_user['lastname'] = $results->getAttribute('sn')[0]; $ldap_user['email'] = $results->getAttribute('mail')[0]; $response["ldap_user"] = $ldap_user; } return json_encode($response); } /** * Display the specified resource. * * @param \App\User $user * @return \Illuminate\Http\Response */ public function show(User $user) { $roles = config('roles.label'); $marques = $user->marques; $sujets = $user->sujets; return view('users.show')->with(['user'=> $user, 'roles'=> $roles, 'marques' => $marques, 'sujets' => $sujets]); } /** * Show the form for editing the specified resource. * * @param \App\User $user * @return \Illuminate\Http\Response */ public function edit(User $user) { Auth::user()->authorizeRoles(config('roles.const.ADMIN')); $roles = config('roles.label'); $userMarques = $user->marques; $marques = Marque::orderBy('libMarq', 'asc')->get(); $userSujets = $user->sujets; $sujets = Sujet::where('sujet_dam', 1)->orderBy('libelle', 'asc')->get(); return view('users.edit')->with(['user'=> $user, 'roles'=> $roles, 'userMarques' => $userMarques, 'marques' => $marques, 'userSujets' => $userSujets, 'sujets'=> $sujets]); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\User $user * @return \Illuminate\Http\Response */ public function update(Request $request, User $user) { Auth::user()->authorizeRoles(config('roles.const.ADMIN')); $validatedData = $request->validate([ 'firstname' => 'required', 'lastname' => 'required', 'email' => 'email', 'role' => 'required' ]); // ---- L'utilisateur $user->firstname = $request->firstname; $user->lastname = $request->lastname; $user->email = $request->email; $user->role = $request->role; $user->save(); // ---- Les marques $user->marques()->detach(); $sMarques = $request->marques; if($sMarques != ""){ $marques = explode(",", $sMarques); foreach($marques as $marqueId){ $user->marques()->attach($marqueId); } } // ---- Les Sujets $user->sujets()->detach(); $sSujets = $request->sujets; if($sSujets != ""){ $sujets = explode(",", $sSujets); foreach($sujets as $sujetId){ $user->sujets()->attach($sujetId); } }else{ session()->flash('error', "Vous devez ajouter au moins un sujet."); return redirect()->route('user.edit', ['user' => $user]); } session()->flash('message', "L'utilisateur à été mis à jour"); return redirect()->route('user.edit', ['user' => $user]); } /** * Remove the specified resource from storage. * * @param \App\User $user * @return \Illuminate\Http\Response */ public function destroy(User $user) { Auth::user()->authorizeRoles(config('roles.const.ADMIN')); if ($user->delete()) { return redirect(route('user.index')); } else { session()->flash('error', 'Erreur lors de la suppression'); return redirect()->route('user.edit', ['user' => $user]); } } /** * ajouter un dossier en favoris * */ public function favorisFolder(Request $request) { $dossier_id = $request->input('dossier_id'); $favoris = $request->input('favoris'); $dossierFav = Auth::user()->dossiers()->where('id', $dossier_id)->first(); if($favoris == "false" && $dossierFav){ Auth::user()->dossiers()->detach($dossier_id); }elseif ($favoris == "true" && !$dossierFav) { Auth::user()->dossiers()->attach($dossier_id); } return json_encode(true); } /** * ajouter un panier en favoris * */ public function favorisBasket(Request $request) { $basket_id = $request->input('basket_id'); $favoris = $request->input('favoris'); $basketFav = Auth::user()->paniersFavoris()->where('id', $basket_id)->first(); if($favoris == "false" && $basketFav){ Auth::user()->paniersFavoris()->detach($basket_id); }elseif ($favoris == "true" && !$basketFav) { Auth::user()->paniersFavoris()->attach($basket_id); } return json_encode(true); } }