From d11bf6c03cce9124b660478225454760e308e775 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E3=83=86=E3=82=AF=E3=83=8B=E3=82=AB=E3=83=AB=E8=AB=8F?= =?UTF-8?q?=E8=A8=AA=E5=AD=90?= Date: Sun, 4 Oct 2020 02:41:59 +0900 Subject: [PATCH] =?UTF-8?q?=E3=83=97=E3=83=AD=E3=83=95=E3=82=A3=E3=83=BC?= =?UTF-8?q?=E3=83=AB=E3=81=AE=E7=B7=A8=E9=9B=86=E6=A9=9F=E8=83=BD=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Http/Controllers/UserController.php | 46 +++++++++- resources/sass/conponent/_button.scss | 2 +- resources/views/layouts/site.blade.php | 2 +- .../views/pages/site/profileedit.blade.php | 83 +++++++++++++++++++ routes/view/site.php | 2 + 5 files changed, 131 insertions(+), 4 deletions(-) create mode 100644 resources/views/pages/site/profileedit.blade.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 733a5d6..f3d60b1 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -144,13 +144,55 @@ class UserController extends Controller { return view('pages.site.profile', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]); } - public function editProfile ($id) { + public function editProfile ($id, Request $r) { $err = ''; + $suc = ''; + + if (isset($r->submit)) { + if (!is_null($r->password)) { + if ($r->password != $r->password_check) $err = '「パスワード」と「パスワード確認」が異なります。'; + else { + $salt = dechex(mt_rand(0, 2147483647)) . dechex(mt_rand(0, 2147483647)); + $passwd = hash('sha256', $r->password . $salt); + for ($round = 0; $round < 65536; $round++) { $passwd = hash('sha256', $passwd . $salt); } + $eduserp = DB::table('users')->where('id', $id)->update(['password' => $passwd, 'salt' => $salt]); + if (!$eduserp) $err = 'パスワードの編集失敗。'; + } + } + + $cheml = DB::table('users')->select('email')->where('id', $id)->first(); + + if ($err == '') { + if ($cheml->email != $r->email) { + $exeml = DB::table('users')->select('email')->where('email', $r->email)->count(); + if ($exeml > 0) $err = '入力したメールアドレスはもう存在しています。'; + else { + $edusere = DB::table('users')->where('id', $id)->update(['email' => $r->email]); + if (!$edusere) $err = 'メールアドレスの編集失敗。'; + } + } + } + + if ($err == '') { + $p = DB::table('usr_profile')->select('display_name', 'country', 'gender')->where('user_id', $id)->first(); + $edprofile = 1; + if ($p->display_name != $r->display_name || $p->country != $r->country || $p->gender != $r->gender) { + $edprofile = DB::table('usr_profile')->where('user_id', $id)->update([ + 'display_name' => $r->display_name, + 'country' => $r->country, + 'gender' => $r->gender + ]); + } + + if (!$edprofile) $err = '表示名、お国、又は性別の編集失敗。'; + else $suc = '編集しました!'; + } + } if ($this->user) { $res = $this->getUser($id, $this->cook); $cnt = $this->getCountries(); - return view('pages.site.profileedit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'err' => $err, 'cnt' => $cnt]); + return view('pages.site.profileedit', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user, 'suc' => $suc, 'err' => $err, 'cnt' => $cnt]); } return redirect(''); diff --git a/resources/sass/conponent/_button.scss b/resources/sass/conponent/_button.scss index 50fd6a7..610d5fb 100644 --- a/resources/sass/conponent/_button.scss +++ b/resources/sass/conponent/_button.scss @@ -139,7 +139,7 @@ border-right-color: $grey2; } -.btn-success, .btn-success.disabled, .btn-success:disabled { +.btn-success, .btn-success.disabled, .btn-success:disabled, .alert-success { background: radial-gradient(ellipse at top, $ok2, transparent), radial-gradient(ellipse at bottom, $black1, transparent); color: $white1; diff --git a/resources/views/layouts/site.blade.php b/resources/views/layouts/site.blade.php index 897a8cd..36457ce 100644 --- a/resources/views/layouts/site.blade.php +++ b/resources/views/layouts/site.blade.php @@ -63,7 +63,7 @@