入出金・債権債務・締め処理

🌐 言語: 🇻🇳 Tiếng Việt · 🇬🇧 English · 🇯🇵 日本語(現在)

GP247 の管理画面の権限管理(権限・ロール・ユーザー)

はじめに

このドキュメントでは、GP247 管理画面の権限管理(RBAC)の仕組みを説明し、管理者が 誰に何をさせるかを自分で設定する方法を案内します。読み終えると、3つの構成要素 (権限・ロール・ユーザー)、システムがどの画面への入場を許可するかの判断方法、そして スタッフ向けの権限の方針を自分で組み立てる方法(例: 注文処理だけを行うスタッフ、閲覧だけできる マネージャーなど)がわかります。プログラミングの知識は不要です。


1. 3つの構成要素

GP247 の権限管理は、次の3つを組み合わせたものです。

構成要素 内容 身近な例
権限(Permission) 「鍵の束」— 管理画面の1つまたはいくつかの画面を開けます 「注文管理」は注文に関するページを開けます
ロール(Role) すばやく割り当てるために、あらかじめまとめた権限のグループ 「販売スタッフ」= 注文 + 顧客
ユーザー(User) 管理画面のログインアカウント ランさん、ナムさん…

組み合わせ方:

  • 1人のユーザーは複数のロールを持つことができ、さらに/または、いくつかの権限を直接割り当てることもできます。
  • その人の実際の権限 = (すべてのロールからの権限)+(直接割り当てた権限) の合計です。

そのため、チーム全体で共有するロールをいくつか作っておき、新しいロールを作らずに、 特定の1人にだけ特別な権限を「個別に追加」することもできます。


2. 「権限」の中身は?

各権限は次のもので構成されます。

  • 名前(Name): 読みやすくするためのものです。例:「注文管理」。
  • スラッグ(Slug): 短い識別コードです(例: order.full)。スラッグは単なるラベルです。 権限を決めるものではありません。覚えやすい名前を付ければ十分です。
  • アドレス+メソッドの一覧(http_uri): これが権限を決める部分です。 この権限で開けるページ(URL)と、許可する操作の種類を列挙します。

操作の種類:

  • GET = ページを閲覧するだけ。
  • ANY = そのページですべての操作ができる(閲覧+追加+編集+削除)。

権限に含まれるアドレスの1行の例: ANY::gp247_admin/order/*

  • gp247_admin/order/* = すべての注文ページ(* は「その配下のすべてのページ」を意味します)。
  • ANY = 閲覧と操作の両方を許可します。

👉 重要なヒント: 権限を作成するとき、アドレスの選択欄はあらかじめ機能ごとのグループ (注文、商品、顧客など)にまとめられています。各グループには、ANY::<グループ>/* という「すべて」の行が 用意されています。グループの「すべて」の行を選ぶ = その機能のすべての権限を与えることになります。 ほとんどの用途では、これが最も早く正しい方法です。


3. 2つの特別なロール(必ず覚えてください)

GP247 には、特別に強い2つのロールが最初から用意されています。

ロール 意味
Administrator 全権限 — すべての画面に入り、すべての操作ができ、あらゆるチェックを通過します。オーナーや最上位の管理者向けです。
View.all(すべて閲覧のみ) すべてのページを閲覧できますが、変更はできません(追加・編集・削除の操作はすべてブロックされます)。経理担当、監査担当、状況を見守りたい上司に適しています。

⚠️ ある人に Administrator または View.all を割り当てると、システムはその人の 他のロール・権限を上書きして外します。この2つのロールがすでにすべてを包含しているためです。 ユーザー画面でも、ロールの選択欄のすぐ下にこの注意が表示されます。


4. システムはどのように入場を判断するか?

覚えておくのは1つの共通ルールだけです。

メニューが見える = 閲覧できる。操作できるかどうかは種類(GET/ANY)次第。

具体的には:

  • 左側のメニューには、その人が閲覧権限(GET)を持つ項目だけが表示されます。権限がなければ、 その項目は表示されません。
  • ページに入る: そのページのアドレスに対する**閲覧権限(GET または ANY)**が必要です。
  • 操作(追加・編集・削除): そのページのアドレスに対する ANY(または POST)権限が必要です。
  • Administrator: すべてに入り、すべての操作ができます。View.all: すべてを閲覧できますが、編集はできません。

言い換えると、メニュー、画面への入場、操作は、すべてその人の権限に含まれる同じアドレスの一覧 (http_uri)に基づいています。スラッグは影響しません。単なるラベルです。

💡 そのため、ある機能に「すべて」の行 ANY::<グループ>/* を選ぶと、ユーザーはその機能の メニューが見え、閲覧でき、操作もできるようになります。すべてまとめて有効になります。


5. 実践:権限を作成する

管理ページは、ユーザー・権限の管理エリアにあります。メニューに見当たらない場合は、 ブラウザーに直接アドレスを入力してください(your-domain をあなたのドメインに置き換えます): https://your-domain/gp247_admin/permission。

  1. **「権限」**ページ(.../gp247_admin/permission)を開きます。
  2. 新規作成の枠に、わかりやすい名前を入力します。例: 注文管理。
  3. 短いスラッグを入力します。例: order.full(小文字、数字、ドット、ハイフン、 アンダースコアだけを使います)。
  4. アドレスの選択欄で order(注文)グループを探し、「すべて」の行 ANY::gp247_admin/order/* にチェックを入れます。他の機能(例えば顧客)も与えたい場合は、 そのグループの「すべて」の行(ANY::gp247_admin/customer/*)にもチェックを入れます。
  5. **「保存」**をクリックします。成功すると、新しい権限が右側の一覧に表示されます。

ある機能を閲覧だけできる権限を作りたい場合は、手順4で ANY::… の行の代わりに、 そのグループの GET::… の行を選びます(閲覧のみで、編集はできません)。


6. 実践:ロールを作成して権限を割り当てる

  1. **「ロール」**ページ(.../gp247_admin/role)を開きます。
  2. ロールの名前を入力します。例: 販売スタッフ。
  3. スラッグを入力します。例: sales_staff。
  4. **「権限」**欄で、このロールにまとめたい権限を探して選びます(例: 「注文管理」「顧客管理」)。
  5. **「保存」**をクリックします。

これ以降は、ある人に 販売スタッフ ロールを割り当てるだけで、その中のすべての権限が すぐに与えられます。権限を1つずつ選び直す必要はありません。


7. 実践:ユーザーを作成して権限を与える

  1. **「ユーザー」**ページ(.../gp247_admin/user)を開きます。
  2. 「氏名」、「ユーザー名」、「メールアドレス」、**「パスワード」を入力します。(アバター画像を 選ぶこともできます。アカウントを使えるようにするため、「有効」**のチェックは入れたままにします。)
  3. **「ロール」**欄で、作成したロールを1つ以上選びます(例: 販売スタッフ)。
  4. (任意)「権限」欄で、この人だけに個別の権限を追加で割り当てます。 共通のロールにない機能が必要な場合に使います。
  5. **「送信」/「保存」**をクリックします。新しいユーザーが右側の一覧に表示されます。

作成したユーザーがログインすると、自分の権限に対応するメニューだけが表示されます。


8. 戦略のレシピ(すばやく選ぶ)

よく使う「レシピ」をいくつか紹介します。必要に応じて組み合わせてください。

  • オーナー/最上位の管理者 → Administrator ロールを割り当てます。それだけで、追加の設定は不要です。
  • 状況を見守るだけの上司/経理担当 → View.all ロールを割り当てます。すべてを閲覧できますが、何も編集できません。
  • 注文処理だけを行うスタッフ → 権限 ANY::gp247_admin/order/* を作成し(必要に応じて ANY::gp247_admin/customer/* も追加)、「注文スタッフ」ロールにまとめて割り当てます。
  • コンテンツ・商品の担当スタッフ → ANY::gp247_admin/product/*、 ANY::gp247_admin/category/*、ANY::gp247_admin/brand/* を含む権限を作成し、「商品編集者」ロールにまとめます。
  • レポートの閲覧だけを許可する人 → report グループの GET:: の行だけを含む権限を作成します。
  • 1つの機能だけを追加で必要とする人 → 共通のロールはそのままにし、ユーザー画面で その人だけに直接の権限を追加します(7章の手順4)。

選び方の原則: グループには共通のロールを作ることを優先し、直接の権限は個人ごとの 例外にだけ使います。そうすると、後で管理しやすくなります。


9. 条件と制約(操作の前に確認)

ユーザーにロールを割り当てるとき

  • Administrator または View.all を選ぶと、その人の他のロール・権限は削除されます。 この2つのロールはすべてを包含しているため、他の権限を残しても意味がないからです。
  • View.all は決して操作できません。 追加・編集・削除のボタンはすべてサーバー側で ブロックされます。書き込み権限を追加で割り当てようとしても同じです。

ユーザーを作成・編集するとき

  • ユーザー名: 必須で、3〜100文字です。英字、数字、@、ドット、アンダースコアだけを使えます。 また、他の人と重複してはいけません。
  • メールアドレス: 必須で、正しいメール形式であり、重複してはいけません。
  • パスワード: 新規作成時は必須です。編集時に空欄にすると、元のパスワードを維持します。 パスワードの強度は、ショップの**「パスワードポリシー」**に従います(最小/最大の長さ、 大文字・小文字・数字・記号の使用を求める場合もあります)。
  • ユーザー画面では、保護された管理者アカウントの編集・削除はできず、自分自身も削除できません。 自分を締め出してしまうのを防ぐためです。自分の情報を変更するには、 **「設定」(個人設定)**ページを使ってください。

権限を作成するとき

  • スラッグ: 必須で、3〜50文字です。英字、数字、ドット、ハイフン、アンダースコアだけを使えます。 また、他の権限と重複してはいけません。
  • アドレス(http_uri): 候補の一覧(グループ別にまとめ済み)から選ぶことをおすすめします。ANY::…/* の行 = 1つのグループのすべての権限、GET::… の行 = 閲覧のみです。

権限のないユーザーがログインしたとき

  • ロールも権限も持たない人もログインはできますが、メニューはほとんど空になり、 機能のページを開くと**「アクセスが拒否されました」**と表示されます。これは設計どおりです (与えていないものには入れません)。適切なロール・権限を少なくとも1つ与えてください。

10. よくある質問(Q&A)

Q1: スタッフに権限を割り当てたのに、クリックすると「アクセスが拒否されました」と表示されます。なぜですか?

→ その権限に正しい機能グループのアドレス(http_uri)が入っているか確認してください(例えば注文なら ANY::gp247_admin/order/* が必要です)。名前やスラッグを付けただけでアドレスを選んでいない場合、 その権限は空で、何も開けません。

Q2: スタッフは閲覧できるのに、「保存」や「削除」を押すとブロックされます。なぜですか?

→ 権限が**閲覧のみ(GET)**になっています。操作を許可するには、そのグループの ANY::…/* の行に 権限を変更してください(ANY = 閲覧と追加・編集・削除の両方を許可)。

Q3: スラッグは重要ですか?間違えるとどうなりますか?

→ スラッグは覚えやすくするための単なるラベルで、権限を決めるものではありません。権限は **アドレスの一覧(http_uri)**で決まります。わかりやすいスラッグを付ければ十分です。

Q4:「ロールで割り当てる」のと「ユーザーに権限を直接割り当てる」のは何が違いますか?

→ 効果は同じです。ロールは権限をまとめて複数の人で再利用するために使い、直接の権限は 特定の1人の例外に使います。最終的な権限 = 両方の合計です。

Q5: View.all と、すべてのグループに GET 権限を割り当てるのは何が違いますか?

→ View.all は近道です。すべてのページを閲覧でき、すべての操作をサーバー側でブロックします。 グループごとに GET 権限を作成する必要はありません。「見守るだけ」の役割には、より早く安全です。

Q6: 誤ってある人に Administrator を割り当てました。その人は全権限を持っていますか?

→ はい。Administrator はあらゆるチェックを通過します。その人から Administrator ロールを外し、 適切なロール・権限を割り当て直してください。

Q7: ユーザー画面で削除・編集できないアカウントがあるのはなぜですか?

→ それは保護された管理者アカウント(およびログイン中のあなた自身のアカウント)です。 誤って自分を締め出してしまわないようにロックされています。自分の情報は **「設定」(個人設定)**ページで変更してください。

Q8: 追加でインストールしたプラグインも、この権限管理の仕組みに組み込まれますか?

→ はい。プラグインは同じアドレス(http_uri)の仕組みで自分の権限を宣言するため、 プラグインの画面にも、GP247 の他の機能と同じように権限を割り当てられます。

Q9: すべてを閲覧できて、注文だけを編集できる人を作りたいのですが?

→ View.all は使わないでください(View.all はすべての操作をブロックします)。代わりに、閲覧が必要な グループの GET 権限と、注文専用の ANY::gp247_admin/order/* 権限を作成・割り当ててください。

Q10: 権限を変更した後、ユーザーはログアウト・再ログインする必要がありますか?

→ ページを再読み込みしてください。通常、変更は次のアクセスからすぐに反映されます。 メニューが更新されない場合は、念のためページの再読み込み(または再ログイン)を案内してください。


📅 最終更新: 2026-10-22 · ✍️ 作成者 (Author): GP247