はじめに
複数のユーザーでカスタマインを使用する際に「カスタマイズのアクセス制限」でカスタマイズ可能なユーザーを制限することは、意図しないカスタマイズの上書き事故や、社内のkintoneアプリ運用ルールをカスタマイズ作成に適用する上でも、非常に有用です。
しかし、「カスタマイズのアクセス制限」は堅牢性を重視しているため、アプリを新規に作成した場合、全てのユーザーがそのアプリへのカスタマイズを行うことができないようになっています。
そこで、この記事では「アプリを作成したユーザーはそのアプリへのカスタマイズを可能とする」方法をご紹介します。
事前準備
1.「カスタマイズのアクセス制限」や「YouTube動画:gusuku Customine アクセス制限設定やってみた」に従って、既にアクセス制限設定は以下の通り実施済みであることを前提とします。
2.kintone のログイン名とカスタマインのユーザーアカウント(メールアドレス)を紐付けるアプリを作成し、以下のように登録しておきます。
3.各ユーザーは「kintone アプリ管理」アプリのレコードは「閲覧」のみ可能であるようにアクセス権の設定を行います。
※「編集」や「追加」が可能であると誰でもアクセス制限を変更することが可能となり、セキュリティ上問題となるケースが多いためです。
カスタマイズ作成
カスタマイズの流れ
「アプリを作成したユーザーはそのアプリへのカスタマイズを可能とする」カスタマイズは、大きく以下 3 つの処理を作成することになります。全体の構成は以下のとおりです。
1.アプリ一覧の同期
「kintoneシステム管理」のアプリ管理の情報と「kintone アプリ管理」アプリを同期するカスタマイズ
2.カスタマイズ可能ユーザーの追加
「kintone アプリ管理」アプリ内の「作成者」が自分自身であるアプリは、「カスタマイズの読み書き可能ユーザー」に自分自身のメールアドレスを追加するカスタマイズ
3.アクセス権限設定の反映
「カスタマイズのアクセス権限をkintoneアプリと同期する」を実行して、「kintone アプリ管理」アプリで設定されたアクセス権限を反映するカスタマイズ
1.アプリ一覧の同期
最初に作成するのは「kintoneシステム管理」のアプリ管理の情報と「kintone アプリ管理」アプリを同期するカスタマイズです。
「定期実行」にて以下のカスタマイズを作成します。
カスタマイズ自体はアクション1つで難しい点はないと思います。注意点として、「接続 kintone ユーザー名」に指定するユーザーはシステム管理権限を持つユーザーであり、「kintone アプリ管理」へのレコード閲覧、追加、編集権限を持っている必要があります。
また、この作成した処理を画面から呼び出すため、kintone アプリのカスタマイズで「kintone アプリ管理」アプリに以下のカスタマイズを作成します。
なお、確認ダイアログには以下のように処理に時間がかかる可能性がある旨を記載しておくのが良いと思います。
2.カスタマイズ可能ユーザーの追加
次に作成するのは、「kintone アプリ管理」アプリ内の「作成者」が自分自身であるアプリにおいて、「カスタマイズの読み書き可能ユーザー」に自分自身のメールアドレスを追加するカスタマイズです。
「kintone アプリの Webhook」にて以下のようにカスタマイズを作成します。
※「kintone アプリのカスタマイズ」ではなく「kintone アプリの Webhook」にて作成する理由は、一般のユーザーは「kintone アプリ管理」アプリへの書き込み権限がなく、API トークンを使用する必要があるためです。
続いて、このカスタマイズを「kintone アプリ管理」アプリから呼び出すためのカスタマイズを以下のように作成します。
これで、「kintone アプリ管理」アプリの作成者のみがボタンを押して、自身のメールアドレスを「読み書き可能ユーザー」に設定できるようになりました。
3.アクセス権限設定の反映
最後に作成するのはアクセス権限設定の反映のためのカスタマイズです。アクセス制限に関する設定は変更したら「gusuku 共通管理」画面の「セキュリティ」にて「kintone アプリと同期する」を押す必要がありますが、これをカスタマイズから呼び出すために「カスタマイズのアクセス権限をkintoneアプリと同期する」というやることがあります。
そこで、以下のようにボタンを押したら「カスタマイズのアクセス権限をkintoneアプリと同期する」を実行して、「kintone アプリ管理」アプリで設定されたアクセス制限を反映するためのカスタマイズを作成します。
まとめ
以上の設定により、アクセス権限設定が行われている環境においても、アプリ作成者自身であればカスタマイズを作成することが可能となります。
今回の例では作成者自身がボタンを押したら同期が実行されるように作成しましたが、作り方次第で管理者が一括でアプリ作成者のメールアドレスを「読み書き可能ユーザー」に追加するようなカスタマイズも可能かと思いますので、是非お試しください。