kintoneで交通費精算や出張申請などのアプリを作る場合、申請者には自分が申請したレコードしか見せず、上司や管理者にはすべてのレコードを見せたいという設定をする必要があります。

kinotneにはレコードに対してアクセス権を設定する機能があり、このアクセス権機能を使って実現することができます。

アクセス権を何も設定しない場合は、以下のように登録されているすべてのレコードを全ユーザーが見ることができます。

 

01

 

これを例えば「田中 美子」は自分が「担当者」になっているレコードしか見せないように設定すると以下のように自分だけのレコードを表示させることができます。

 

02

 

ここでは「担当者」というユーザー選択フィールドを設定し、

  • ログインユーザーには「担当者」フィールドが自分のレコードのみを表示する
  • 管理者(今回は「Administratorsグループ所属ユーザー」)にはすべてのレコードを表示する

というアクセス権を設定したいと思います。

 

設定方法

管理画面から「アクセス権」の「レコード」を選びます。

 

03

 

まずは「担当者」に誰も選ばれていない場合も管理者以外には表示されてはまずいので「担当者」に誰も選ばれていない場合は管理者にしか表示しないというアクセス権を設定します。

 

04

 

左のレコードの条件で「担当者」フィールドを選択し、条件に「次のいずれも含まない」選び、対象には「Everyone」グループを選択します。

Everyoneグループを選ぶことで、ユーザーが新規に追加された場合でもそのユーザーは必ずEveryoneグループに所属するため、ユーザーが増えるたびにアクセス権を設定し直す必要がなくなります。

アクセス権には、Everyoneのアクセス権を全て外し、「Administrators」を選択して、「閲覧」「編集」「削除」すべてにチェックを付けます。

 

次にログインユーザーには自分が担当者になっているレコードだけを表示させるために以下のような設定を行います。

 

05

 

左のレコードの条件で「担当者」フィールドを選択し、条件に「次のいずれかを含む」選び、対象には「Everyone」グループを選択します。

アクセス権には、Everyoneのアクセス権を全て外し、「フォームのユーザーフィールドを追加」から「担当者」フィールドを選び、「閲覧」と「編集」(必要に応じて「削除」)の権限を付けます。

こうすることで、例えば「田中 美子」が担当者に設定された場合には、「田中 美子」だけにレコードを閲覧、編集する権限が与えられます。

しかし、この場合、管理者に対して権限がなくなってしまいますので、「Administrators」に対して、「閲覧」「編集」「削除」すべてにチェックを付けるのを忘れないで下さい。

※ここでは「Administrators」というグループにしていますが、もちろん「上司」や「管理者」といってグループを作成して、そのグループに対してアクセス権を付けるほうが運用上は好ましいです。

 

完成形は以下のようになります。

 

06

 

kintoneはアクセス権が柔軟に設定できる分、「どうやって設定すれば、希望のアクセス制御が実現できるんだ?」と考えてしまうケースもよくあります。

更に高度になるとフィールド単位にもアクセス権が付けられますが、うちの事例では100パターンくらいの設定をしている例もあります(苦笑)

 

ただ、アクセス権設定もどんどん機能追加/改善されているため、定期的にアクセス権設定に関する社内勉強会を開いて、いかに簡単に運用しやすいアクセス権設定が可能かというのを日々勉強していますので、また紹介するネタがありましたら当ブログで紹介していきます。

関連記事

 


株式会社ジョイゾー