プロフィールの編集機能性
このコミットが含まれているのは:
コミット
d11bf6c03c
|
@ -144,13 +144,55 @@ class UserController extends Controller {
|
||||||
return view('pages.site.profile', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]);
|
return view('pages.site.profile', ['res' => $res, 'menu' => $this->menu, 'user' => $this->user]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function editProfile ($id) {
|
public function editProfile ($id, Request $r) {
|
||||||
$err = '';
|
$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) {
|
if ($this->user) {
|
||||||
$res = $this->getUser($id, $this->cook);
|
$res = $this->getUser($id, $this->cook);
|
||||||
$cnt = $this->getCountries();
|
$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('');
|
return redirect('');
|
||||||
|
|
|
@ -139,7 +139,7 @@
|
||||||
border-right-color: $grey2;
|
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),
|
background: radial-gradient(ellipse at top, $ok2, transparent),
|
||||||
radial-gradient(ellipse at bottom, $black1, transparent);
|
radial-gradient(ellipse at bottom, $black1, transparent);
|
||||||
color: $white1;
|
color: $white1;
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="userdown">
|
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="userdown">
|
||||||
@if ($user)
|
@if ($user)
|
||||||
<a href="/profile/{{ $user->id }}" class="dropdown-item">プロファイルの表示</a>
|
<a href="/profile/{{ $user->id }}" class="dropdown-item">プロファイルの表示</a>
|
||||||
<a href="/profile/{{ $user->id }}" class="dropdown-item">プロファイルの編集</a>
|
<a href="/profile/{{ $user->id }}/edit" class="dropdown-item">プロファイルの編集</a>
|
||||||
@if ($user->perm['blg_addpost'] || $user->perm['blg_addpage'] || $user->perm['blg_editpost'] || $user->perm['blg_editpage'] || $user->perm['blg_delpost'] || $user->perm['blg_delpage'])
|
@if ($user->perm['blg_addpost'] || $user->perm['blg_addpage'] || $user->perm['blg_editpost'] || $user->perm['blg_editpage'] || $user->perm['blg_delpost'] || $user->perm['blg_delpage'])
|
||||||
<div class="dropdown-divider"></div>
|
<div class="dropdown-divider"></div>
|
||||||
@endif
|
@endif
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
@extends('layouts.site')
|
||||||
|
|
||||||
|
@section('content')
|
||||||
|
|
||||||
|
<div class="within">
|
||||||
|
<div class="bar">プロフィールの編集</div>
|
||||||
|
<div class="back">
|
||||||
|
@if ($err)
|
||||||
|
<div class="alert alert-danger" role="alert">
|
||||||
|
{{ $err }}
|
||||||
|
</div>
|
||||||
|
@elseif ($suc)
|
||||||
|
<div class="alert alert-success" role="alert">
|
||||||
|
{{ $suc }}
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
<form method="POST" action="/profile/{{ $res->id }}/edit">
|
||||||
|
@csrf
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-sm-4"><b>表示名</b></div>
|
||||||
|
<div class="col">
|
||||||
|
<input name="display_name" id="display_name" type="text" class="form-control" value="{{ $res->profile->display_name }}" />
|
||||||
|
ご入力しない場合は、ユーザー名を表示します。
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-sm-4"><b>パスワード <span class="badge badge-danger">必須</span></b></div>
|
||||||
|
<div class="col"><input name="password" id="password" type="password" class="form-control" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-sm-4"><b>パスワード確認 <span class="badge badge-danger">必須</span></b></div>
|
||||||
|
<div class="col"><input name="password_check" id="confirm" type="password" class="form-control" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-sm-4"><b>電子メール <span class="badge badge-danger">必須</span></b></div>
|
||||||
|
<div class="col"><input name="email" id="email" type="text" class="form-control" value="{{ $res->email }}" /></div>
|
||||||
|
</div>
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-sm-4"><b>国</b></div>
|
||||||
|
<div class="col">
|
||||||
|
<select name="country" id="country" class="custom-select">
|
||||||
|
@foreach ($cnt as $r)
|
||||||
|
@if ($res->profile->country == $r['value'])
|
||||||
|
<option value="{{$r['value']}}" selected>{{$r['label']}}</option>
|
||||||
|
@else
|
||||||
|
<option value="{{$r['value']}}">{{$r['label']}}</option>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-sm-4"><b>性別</b></div>
|
||||||
|
<div class="col">
|
||||||
|
<fieldset class="form-group">
|
||||||
|
<div tabindex="-1" role="group">
|
||||||
|
<div id="gender" role="radiogroup" tabindex="-1" class="btn-group-toggle btn-group" variant="primary">
|
||||||
|
<label @if ($res->profile->gender == 0) class="btn btn-fumei-check" @else class="btn btn-fumei" @endif>
|
||||||
|
<input id="gender0" name="gender" type="radio" autocomplete="off" class="" value="0" @if ($res->profile->gender == 0) checked @endif />
|
||||||
|
<span>不明</span>
|
||||||
|
</label>
|
||||||
|
<label @if ($res->profile->gender == 1) class="btn btn-danshi-check" @else class="btn btn-danshi" @endif>
|
||||||
|
<input id="gender1" name="gender" type="radio" autocomplete="off" class="" value="1" @if ($res->profile->gender == 1) checked @endif />
|
||||||
|
<span>男性</span>
|
||||||
|
</label>
|
||||||
|
<label @if ($res->profile->gender == 2) class="btn btn-joshi-check" @else class="btn btn-joshi" @endif>
|
||||||
|
<input id="gender2" name="gender" type="radio" autocomplete="off" class="" value="2" @if ($res->profile->gender == 2) checked @endif />
|
||||||
|
<span>女性</span>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row body">
|
||||||
|
<div class="col-sm-4"></div>
|
||||||
|
<div class="col"><input name="submit" type="submit" class="btn btn-success btn-block" value="編集" /></div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@endsection
|
|
@ -11,6 +11,8 @@ Route::post('/login', 'UserController@login');
|
||||||
Route::get('/register', 'UserController@register');
|
Route::get('/register', 'UserController@register');
|
||||||
Route::post('/register', 'UserController@register');
|
Route::post('/register', 'UserController@register');
|
||||||
|
|
||||||
|
Route::get('/profile/{id}/edit', 'UserController@editProfile');
|
||||||
|
Route::post('/profile/{id}/edit', 'UserController@editProfile');
|
||||||
Route::get('/profile/{id}', 'UserController@profile');
|
Route::get('/profile/{id}', 'UserController@profile');
|
||||||
|
|
||||||
Route::get('/video', 'VideoController@index');
|
Route::get('/video', 'VideoController@index');
|
||||||
|
|
新しいイシューから参照