@php echo "guard = config('admin-auth.defaults.guard'); } /** * Get logged user before each method * * {{'@'}}param Request $request */ protected function setUser($request) { if (empty($request->user($this->guard))) { abort(404, 'Admin User not found'); } $this->{{ $modelVariableName }} = $request->user($this->guard); } /** * Show the form for editing logged user profile. * * {{'@'}}param Request $request * {{'@'}}return Factory|View */ public function editProfile(Request $request) { $this->setUser($request); return view('admin.profile.edit-profile', [ '{{ $modelVariableName }}' => $this->{{ $modelVariableName }}, ]); } @php $columnsProfile = $columns->reject(function($column) { return in_array($column['name'], ['password', 'activated', 'forbidden']); }); @endphp /** * Update the specified resource in storage. * * {{'@'}}param Request $request * {{'@'}}throws ValidationException * {{'@'}}return array|RedirectResponse|Redirector */ public function updateProfile(Request $request) { $this->setUser($request); ${{ $modelVariableName }} = $this->{{ $modelVariableName }}; // Validate the request $this->validate($request, [ @foreach($columnsProfile as $column)'{{ $column['name'] }}' => [{!! implode(', ', (array) $column['serverUpdateRules']) !!}], @endforeach ]); // Sanitize input $sanitized = $request->only([ @foreach($columnsProfile as $column)'{{ $column['name'] }}', @endforeach ]); // Update changed values {{ $modelBaseName }} $this->{{ $modelVariableName }}->update($sanitized); if ($request->ajax()) { return ['redirect' => url('admin/profile'), 'message' => trans('admin.operation.succeeded')]; } return redirect('admin/profile'); } /** * Show the form for editing the specified resource. * * {{'@'}}param Request $request * {{'@'}}return Factory|View */ public function editPassword(Request $request) { $this->setUser($request); return view('admin.profile.edit-password', [ '{{ $modelVariableName }}' => $this->{{ $modelVariableName }}, ]); } @php $columnsPassword = $columns->reject(function($column) { return !in_array($column['name'], ['password']); }); @endphp /** * Update the specified resource in storage. * * {{'@'}}param Request $request * {{'@'}}throws ValidationException * {{'@'}}return array|RedirectResponse|Redirector */ public function updatePassword(Request $request) { $this->setUser($request); ${{ $modelVariableName }} = $this->{{ $modelVariableName }}; // Validate the request $this->validate($request, [ @foreach($columnsPassword as $column)'{{ $column['name'] }}' => [{!! implode(', ', (array) $column['serverUpdateRules']) !!}], @endforeach ]); // Sanitize input $sanitized = $request->only([ @foreach($columnsPassword as $column)'{{ $column['name'] }}', @endforeach ]); //Modify input, set hashed password $sanitized['password'] = Hash::make($sanitized['password']); // Update changed values {{ $modelBaseName }} $this->{{ $modelVariableName }}->update($sanitized); if ($request->ajax()) { return ['redirect' => url('admin/password'), 'message' => trans('admin.operation.succeeded')]; } return redirect('admin/password'); } }