概要 — 何をする画面か
マイプロフィール(/me)は、現在サインインしているアカウントの詳細を表示し、セルフサービスの操作として 自分のパスワードを変更 できるようにします。ヘッダー右上の ユーザードロップダウン からいつでも開けます。認証済みのすべてのユーザーが利用でき、追加のレベル制限はありません。
ここで変更できるのは パスワード だけです。レベル(user_level)・役割・チーム は管理者が ユーザーとチーム で割り当てるもので、ここでは読み取り専用のバッジとして表示されます。
パスワードの検証および変更は標準ハッシュで安全に保存されます — ログインと認証 を参照してください。
こんなときに使う
- パスワードを定期的に更新するとき、または漏えいが疑われる場合に直ちに変更するとき。
- 自分の レベル · 役割 · チーム と最終ログイン時刻を確認するとき。
- 管理者に問い合わせる前に、ログインID・メール・連絡先を確かめておくとき。
画面構成
ページは2枚のカードで構成されます。
1) アカウント情報カード(読み取り専用)
上部にアバター(名前のイニシャルと、名前から導かれる固定色)、氏名とログインID、その下に バッジ の行が並びます。
| 項目 | 意味 | ソース |
|---|---|---|
| 名前 / ログインID | 表示名と @login_id |
users.name · users.login_id |
| レベルバッジ | デモ/スタッフ/管理者(数値のレベルも表示) | users.user_level |
| 役割バッジ | 参考用の役割ラベル(設定されている場合のみ) | users.role_id → infr_role |
| チームバッジ | 所属チーム(設定されている場合のみ) | users.team_id → infr_team |
| メール | アカウントのメールアドレス | users.email |
| 連絡先 | 電話/携帯 | users.hp |
| 最終ログイン | YYYY-MM-DD HH:MM |
users.last_log |
レベルバッジの 色調 は、ご自身のレベルから自動的に選ばれます。
| レベル(値) | ラベル | バッジの色調 |
|---|---|---|
| 1 | デモ | muted(グレー) |
| 5 | スタッフ | accent(強調) |
| 10 | 管理者 | crit(レッド) |
アバターのイニシャルと色は名前から計算されます。韓国語・CJK の名前は先頭の1文字を使い、それ以外の名前は先頭の文字を組み合わせます。色相は
crc32(name) % 360で固定されるため、同じ名前はどこでも常に同じ色で表示されます。
2) パスワード変更カード
3つの入力欄と パスワードを変更 ボタン:
- 現在のパスワード — 本人であることを確認します。
- 新しいパスワード — 4文字以上。
- 新しいパスワード(確認) — 上の欄と一致している必要があります。
ヒントにあるとおり、パスワードを変更しても セッションは維持されます — ログアウトされることはなく、サインインし直す必要もありません。
使い方
パスワードを変更する
- 右上の ユーザードロップダウン → マイプロフィール を開きます(ナビゲーション を参照)。
- 現在のパスワード を入力します。
- 新しいパスワード(4文字以上)と 確認 を同じ内容で入力します。
- パスワードを変更 をクリックします。成功すると入力欄がクリアされ、「パスワードを変更しました。」というトーストが表示されます。
内部では、ブラウザーが次のリクエストを送信します:
POST /me/password
Content-Type: application/json
X-CSRF-TOKEN: <session token>
{ "current": "OLD_PASSWORD", "password": "NEW_PASSWORD", "password_confirmation": "NEW_PASSWORD" }
成功時のレスポンスは { "ok": true } です。失敗時は { "ok": false, "errors": { ... } } が項目ごとのエラーを返します。
サーバー側の検証ルール
| ルール | 条件 | 違反時 |
|---|---|---|
current |
必須 | 422 |
password |
必須 · 最小 4 · 最大 120 · confirmed(確認欄と一致) |
422 |
| 現在のパスワードの照合 | 保存されているハッシュと Hash::check で照合 |
422「現在のパスワードが一致しません。」 |
新しいパスワードと確認欄の不一致は、サーバーへ何かが送信される前に まずブラウザー側で 検出され、その場で「新しいパスワードが一致しません。」と表示されます。
データソース
- アカウント情報はレガシーの
usersテーブル(login_id · name · email · hp · lang · user_level · role_id · team_id · last_log)から、セッションのinfr_user_idによってご自身のレコードに限定して読み取られます。 - 表示ラベル・イニシャル・色は
App\Support\RolePolicy(レベル→ラベル/色調、役割ラベル、アバターのイニシャル/色相)に由来します。 - 役割ラベルは
infr_roleから、チーム名はinfr_teamから取得します。 - パスワードの変更は
users.passwordを 現行の標準ハッシュ で更新し、監査ログinfr_audit_logにaction = profile.password、target_type = userの行を1件書き込みます(監査ログ を参照)。
アクセス権限
/meの閲覧 ·/me/passwordによる変更: サインインしているすべてのユーザー(デモ 1 · スタッフ 5 · 管理者 10 のいずれも同じ)。このページは常に 自分自身のアカウント だけを対象とするため、個別のレベル制限はありません。- セッションが無いか期限切れの場合、画面は
/loginにリダイレクトされ、変更リクエストは 401 を返します。 - レベル · 役割 · チームはここでは変更できません。 他のアカウントの作成やレベルの調整には、ユーザーとチーム での管理者(レベル 10)の操作が必要です。
トラブルシューティングと FAQ
Q.「現在のパスワードが一致しません。」と表示されます。 現在のパスワードを正確に入力したか、もう一度ご確認ください。サインインに使っているものと同じパスワード をお使いください。
Q. 最短の長さはどれくらいですか。 サーバーは4〜120文字を受け付けます。ポリシー上はより強固なパスワードを推奨します。
Q. 変更後にログインし直す必要がありますか。 いいえ。セッションは維持されるため、ログアウトされることはありません。
Q. メール・連絡先・氏名を変更したいのですが。 それらはここでは変更できません。管理者に ユーザーとチーム での編集を依頼してください。
Q. 表示言語を変更するには。 言語はヘッダーの言語スイッチャーから切り替えます — 多言語設定と言語 を参照してください。
関連項目
- ログインと認証 — コンソールの認証方式とセッション管理ポリシーを参照します。
- レベルと権限 — デモ 1 · スタッフ 5 · 管理者 10 が何を意味するか。
- ユーザーとチーム — 管理者がレベル · 役割 · チームを割り当てる場所。
- ナビゲーション — ヘッダーのユーザードロップダウンからこのページに移動します。
- 監査ログ — パスワードの変更は
profile.passwordとして記録されます。
