middleware('can:user.index')->only('index','show'); $this->middleware('can:user.create')->only('create','store'); $this->middleware('can:user.edit')->only('edit','update'); $this->middleware('can:user.destroy')->only('destroy'); } public function index() { $users=User::with(['roles','plantelUsuarios'])->get(); return view('user.index',compact('users')); } public function create() { $plantels = Plantel::where('status','=','1')->get(); $codigos = AreaCode::all(); $roles= Role::all(); return view('user.create',compact('roles','plantels','codigos')); } public function store(Request $request) { $passwordTemporal = Str::random(12); $user = User::create([ 'name' => mb_strtoupper($request->name, 'UTF-8'), 'apellidoPaterno' => mb_strtoupper($request->apellidoPaterno, 'UTF-8'), 'apellidoMaterno' => mb_strtoupper($request->apellidoMaterno, 'UTF-8'), 'email' => $request->email, 'telefono' => $request->telefono ?? null, 'direccion' => $request->direccion ?? null, 'code' => $request->code ?? null, 'status' => $request->status, 'password' => Hash::make($passwordTemporal), ]); $user->roles()->sync($request->roles); $user->plantelUsuarios()->sync($request->plantels); $token = Password::createToken($user); $user->notify(new ResetPassword($token)); return redirect()->route('user.edit',compact('user'))->with('info','Se creó el usuario correctamente'); } public function show(User $user) { return view('user.show',compact('user')); } public function edit(User $user) { $plantels=Plantel::all(); $codigos = AreaCode::all(); $roles= Role::all(); return view('user.edit',compact('user','roles','plantels','codigos')); } public function update(Request $request, User $user) { $user->update($request->except(['plantels'])); $user->roles()->sync($request->roles); $user->plantelUsuarios()->sync($request->plantels); return redirect()->route('user.edit',compact('user'))->with('info','Se modifico el usuario correctamente'); } public function destroy(User $user) { $user->plantelUsuarios()->detach(); $user->roles()->detach(); $user->delete(); session()->flash('swal',[ 'icon'=>'success', 'title'=>'Eliminado!', 'text'=>'Se ha eliminado el registro correctamente' ]); return redirect()->route('user.index'); } public function profile(){ return view('profile.show'); } }