Advertisement
lokidrow

laravel2

Feb 28th, 2024
664
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.59 KB | None | 0 0
  1. namespace App\Http\Controllers\User;
  2.  
  3. use App\Http\Controllers\Controller;
  4. use App\Services\UsersService;
  5. use Illuminate\Http\RedirectResponse;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\View\View;
  9. use Throwable;
  10.  
  11. class UserCabinetController extends Controller
  12. {
  13.  
  14.     public function __construct()
  15.     {
  16.         $this->middleware('auth');
  17.     }
  18.  
  19.     /**
  20.      * Отображение страницы редактирования профиля текущего пользователя
  21.      * @return View
  22.      */
  23.     public function cabinet(): View
  24.     {
  25.         $user = Auth::user();
  26.         return view('user.app.pages.cabinet', [
  27.             'user' => $user,
  28.             'genders' => UsersService::GENDERS,
  29.             'levels' => UsersService::LEVELS,
  30.         ]);
  31.     }
  32.  
  33.     /**
  34.      * Сохранение профиля текущего пользователя
  35.      * @param Request $request
  36.      * @return RedirectResponse
  37.      * @throws Throwable
  38.      */
  39.     public function cabinetSave( Request $request ): RedirectResponse
  40.     {
  41.         users()->saveCabinet( $request );
  42.  
  43.         return redirect()
  44.             ->route('cabinet')
  45.             ->with('status', 'Профиль сохранён');
  46.     }
  47.  
  48.     /**
  49.      * Смена пароля себе самим пользователем
  50.      * @param Request $request
  51.      * @return RedirectResponse
  52.      */
  53.     public function cabinetChangePassword( Request $request ): RedirectResponse
  54.     {
  55.         users()->changePassword( $request );
  56.  
  57.         return redirect()
  58.             ->route('cabinet_password_edit')
  59.             ->with('status', __('passwords.changed'));
  60.     }
  61.  
  62.     /**
  63.      * Страница изменения уведомлений
  64.      * @return View
  65.      */
  66.     public function cabinetNotifications(): View
  67.     {
  68.         $user = Auth::user();
  69.         $settings = users()->getSettings($user->id);
  70.         return view('user.app.pages.cabinet-notifications', [
  71.             'settings' => UsersService::SETTINGS,
  72.             'values' => $settings,
  73.         ]);
  74.     }
  75.  
  76.     /**
  77.      * Сохраняем галочки настроек пользователя
  78.      * @param Request $request
  79.      * @return RedirectResponse
  80.      */
  81.     public function saveCabinetNotifications(Request $request): RedirectResponse
  82.     {
  83.         users()->saveNotifications(Auth::user(), $request->post('notifications'));
  84.  
  85.         return redirect()
  86.             ->route('cabinet_notifications')
  87.             ->with('status', 'Настройки сохранены');
  88.  
  89.     }
  90.  
  91. }
  92.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement