第 5 章:ユーザーと権限 — 誰が何を見られるか

前の章でフォームと詳細ページを完成させ、チケットシステムはデータの入力と閲覧ができるようになりました。しかし今のところ、全員がログインしても同じものが見えてしまいます。チケットを提出する一般社員が管理ページを見られたり、技術員が分類を削除できたり……これではいけません。

この章では、システムに「入退室管理」を追加します。ロールを作成し、メニュー権限データ範囲を設定して、異なるユーザーに異なるメニューを表示し、異なるデータを操作させることを実現します。

5.1 ロール(Role)を理解する

NocoBase では、ロールとは権限のセットです。各ユーザーに個別に権限を設定するのではなく、まずいくつかのロールを定義し、ユーザーを対応するロールに割り当てます。

NocoBase のインストール後には 3 つの組み込みロールがあります。

  • Root:スーパー管理者、すべての権限を持ち、削除不可
  • Admin:管理者、デフォルトでインターフェース設定の権限を持つ
  • Member:一般メンバー、デフォルトの権限は少なめ

しかし、この 3 つの組み込みロールだけでは不十分です。チケットシステムにはより細かい区分が必要なので、3 つのカスタムロールを作成します。

5.2 3 つのロールを作成する

右上の設定メニューを開き、ユーザーと権限 → ロール管理 に入ります。

ロールを追加 をクリックし、順に作成します。

ロール名ロール識別子説明
管理者admin-helpdeskすべてのチケットを閲覧、分類管理、担当者の割り当て
技術員technician自分に割り当てられたチケットのみ閲覧、対応とクローズが可能
一般ユーザーuserチケットの提出のみ可能、自分が提出したものだけ閲覧

05-roles-and-permissions-2026-03-13-19-03-14

ロール識別子はシステム内部で使用される一意の ID で、作成後は変更できません。英語の小文字を使用することをお勧めします。ロール名はいつでも変更できます。

05-roles-and-permissions-2026-03-13-18-57-47

作成完了後、ロール一覧に新しく作成した 3 つのロールが表示されているはずです。

5.3 メニュー権限の設定

ロールができたので、次は各ロールがどのメニューを見られるかをシステムに伝えます。

あるロールをクリックして権限設定ページに入り、メニューアクセス権限 タブを見つけます。ここにシステム内のすべてのメニュー項目が一覧表示され、チェックを入れるとアクセス許可、外すと非表示になります。

管理者(admin-helpdesk):すべてにチェック

  • チケット管理、分類管理、ダッシュボード——すべて閲覧可能

技術員(technician):一部にチェック

  • ✅ チケット管理
  • ✅ ダッシュボード
  • ❌ 分類管理(技術員は分類を管理する必要なし)

一般ユーザー(user):最小限の権限

  • ✅ チケット管理(自分のチケットのみ閲覧可能)
  • ❌ 分類管理
  • ❌ ダッシュボード

05-roles-and-permissions-2026-03-13-19-09-11

便利な設定:NocoBase には「新規メニュー項目をデフォルトでアクセス許可」という設定があります。新しいページを追加するたびに手動でチェックするのが面倒な場合は、管理者ロールでこのオプションをオンにしておくと便利です。一般ユーザーロールでは、オフにしておくことをお勧めします。

5.4 データ権限の設定

メニュー権限は「そのページに入れるかどうか」を制御し、データ権限は「ページに入った後にどのデータが見えるか」を制御します。

重要な概念:データ範囲(Data Scope)

ロールの権限設定で、データテーブル操作権限 タブに切り替えます。「チケット」テーブルを見つけてクリックし、個別に設定します。

05-roles-and-permissions-2026-03-13-19-51-06

一般ユーザー:自分が提出したチケットのみ閲覧

  1. 「チケット」テーブルの 閲覧 権限を見つけます
  2. データ範囲を → 自分のデータ に選択します
  3. これにより一般ユーザーは「作成者が自分」のチケットだけが閲覧できるようになります(デフォルトではシステムの作成者フィールドが基準となります。提出者フィールドではない点に注意してください。ただし変更は可能です)

同様に、「編集」と「削除」の権限も 自分のデータ に設定します(あるいは削除権限を与えないのも一つの手です)。

05-roles-and-permissions-2026-03-13-19-53-02

グローバル設定について:チケットテーブルだけを設定すると、他のデータや設定項目(分類テーブル、担当者など)が見えなくなる場合があります。現在のシステムはシンプルなので、グローバル設定で「すべてのデータを閲覧」にチェックを入れておき、データ範囲が重要なテーブルだけ個別に権限を設定します。

05-roles-and-permissions-2026-03-13-19-57-24

技術員:自分に割り当てられたチケットのみ閲覧

  1. 「チケット」テーブルの 閲覧 権限を見つけます
  2. データ範囲を → 自分のデータ に選択します
  3. ただし注意点があります。NocoBase の「自分のデータ」はデフォルトで作成者でフィルタリングされます。「担当者」でフィルタリングしたい場合は、グローバルの操作権限でさらに調整するか、フロントエンドページでデータブロックのフィルタ条件を組み合わせて実現できます。

05-roles-and-permissions-2026-03-13-20-01-54

実用的なヒント:テーブルブロックにデフォルトのフィルタ条件(例:「担当者 = 現在のユーザー」)を設定して、権限制御を補助することもできます。ただしページ設定はグローバルに適用されるため、管理者も制限されてしまいます。折衷案として、「担当者 = 現在のユーザー または 提出者 = 現在のユーザー」と設定すれば、一般ユーザーと技術員の両方に対応できます。管理者が全体ビューを必要とする場合は、フィルタなしの別ページを作成しましょう。

05-roles-and-permissions-2026-03-13-22-21-34

管理者:すべてのデータを閲覧

管理者ロールのデータ範囲を すべてのデータ に選択し、すべての操作をオンにします。シンプルです。

05-roles-and-permissions-2026-03-13-21-45-14

5.5 チケット割り当て操作

権限を設定する前に、チケット一覧に便利な機能を追加しましょう:担当者の割り当て。管理者がリスト上で直接チケットを技術員に割り当てられるようにし、編集ページを開いて複数のフィールドを変更する手間を省きます。

実装はシンプルです。テーブルの操作列にカスタムポップアップボタンを追加します。

  1. UI エディターモードに入り、チケット一覧テーブルの操作列で 「+」 をクリックし、「ポップアップ(Popup)」 アクションボタンを追加します。

05-roles-and-permissions-2026-03-14-13-57-31

  1. ボタンのタイトルを 「割り当て」 に変更します(ボタンの設定項目をクリックしてタイトルを変更)。

05-roles-and-permissions-2026-03-14-13-59-22

割り当て情報はシンプルなので、ドロワーよりもコンパクトなダイアログの方が適切です。ボタン右上のポップアップ設定を選択し、「ダイアログ(やや狭め)」→ 確認を選びます。 05-roles-and-permissions-2026-03-14-14-08-16

  1. 「割り当て」ボタンをクリックしてポップアップを開き、「ブロックを作成 → データブロック → フォーム(編集)」 で現在のデータテーブルを選択します。
  2. フォームに 「担当者」 フィールドだけチェックを入れ、フィールドの設定項目で 必須 に設定します。
  3. 「送信」 アクションボタンを追加します。

05-roles-and-permissions-2026-03-14-14-10-50

これで、管理者がチケット一覧で「割り当て」をクリックすると、シンプルなフォームが表示され、担当者を選択して送信するだけで完了です。スピーディかつ正確で、他のフィールドを誤って変更する心配がありません。

連動ルールでボタンの表示/非表示を制御

「割り当て」ボタンは管理者だけが必要で、一般ユーザーや技術員に表示されると混乱を招きます。連動ルールを使って、現在のユーザーのロールに応じてボタンの表示/非表示を制御できます。

  1. UI エディターモードで「割り当て」ボタンの設定項目をクリックし、「連動ルール」 を見つけます。
  2. ルールを追加し、条件を 現在のユーザー / ロール / ロール名管理者(admin-helpdesk ロールに対応する名前)と等しくない場合に設定します。
  3. 条件を満たしたときのアクション:そのボタンを非表示にする。

これにより、管理者ロールのユーザーだけが「割り当て」ボタンを見ることができ、他のロールではログインするとこのボタンが自動的に非表示になります。

05-roles-and-permissions-2026-03-14-14-17-37

5.6 テストユーザーを作成して体験する

権限の設定が完了したので、実際に検証してみましょう。

ユーザー管理(設定センターまたは事前に構築したユーザー管理ページ)に入り、3 つのテストユーザーを作成します。

ユーザー名ロール
Alice管理者(admin-helpdesk)
Bob技術員(technician)
Charlie一般ユーザー(user)

05-roles-and-permissions-2026-03-13-22-23-47

作成後、この 3 つのアカウントでそれぞれログインし、2 つのことを確認します。

1. メニューは想定通り表示されていますか?

  • Alice → すべてのメニューが表示される

05-roles-and-permissions-2026-03-14-14-19-29

  • Bob → チケット管理とダッシュボードのみ表示

05-roles-and-permissions-2026-03-13-22-26-50

  • Charlie → 「マイチケット」のみ表示

05-roles-and-permissions-2026-03-13-22-30-57

2. データは想定通りフィルタリングされていますか?

  • まず Alice でいくつかのチケットを作成し、異なる担当者に割り当てます
  • Bob に切り替えてログイン → 自分に割り当てられたチケットのみ表示
  • Charlie に切り替えてログイン → 自分が提出したチケットのみ表示

すごいと思いませんか?同じシステムなのに、ユーザーごとにまったく異なるコンテンツが表示されます。これが権限の力です。

まとめ

この章ではチケットシステムの権限体系を完成させました。

  • 3 つのロール:管理者、技術員、一般ユーザー
  • メニュー権限:各ロールがアクセスできるページを制御
  • データ権限:各ロールが閲覧できるデータを制御(データ範囲で実現)
  • テスト検証:異なるアカウントでログインし、権限が正しく機能していることを確認

ここまでで、チケットシステムはかなり形になりました。データの入力、閲覧、ロールベースのアクセス制御が可能です。ただし、すべての操作はまだ手動です。

次の章のプレビュー

次の章ではワークフロー(Workflow)を学びます。システムに自動的に作業させましょう。たとえば、チケット提出後に担当者へ自動通知、ステータス変更時に自動ログ記録などです。

関連リソース