【kintone】ユーザー情報(個人、組織、グループ)別に、グループフィールドの開閉を操作しよう
0. 目次
1. 概要
ギークス株式会社CRUD Lab.のKUNISADAです!
ユーザー情報(個人、組織、グループ)でグループフィールドの開閉を操作しよう
kintoneのカスタマイズの際に便利なユーザー情報。 今回は、ユーザーの個人情報やユーザーが所属する組織/グループの情報別で「グループフィールド」を自動的に開閉させよう! というテーマです。
2. 準備
2-0 ユーザーの設定
設定
- 登場ユーザーは2名「システム管理者」と「KUNISADA」
- ユーザーは「1つの組織」で「複数のグループ」に所属 ※ ユーザーは「組織」「グループ」ともに複数所属することが可能。
- 各ユーザーの所属組織/グループ設定は以下になります。
ユーザー名 | 組織コード | 組織数 | グループコード | グループ数 |
---|---|---|---|---|
システム管理者 | SYSTEM | 1件 | Administrator,everyone | 2件 |
KUNISADA | TECH | 1件 | everyone_geechs,Administrator,everyone | 3件 |
組織/グループコードの設定について
組織/グループのコードの設定: 設定 > cybozu.com共通管理 >ユーザー管理 > 組織/ユーザー >組織情報の編集/グループ情報の編集
2-1 フィールド
今回のjsカスタマイズには、「グループフィールド」のみを使用しているので、 その他の設定フィールドの説明は割愛しています。
フィールド名 | フィールドコード | 初期値 | その他 |
---|---|---|---|
グループ1 | group_1 | 設定なし | -- |
グループ2 | group_2 | 設定なし | -- |
2-2 必要ファイルの読み込み
3. イメージ図と対応コード
例1)ログインユーザー別に、グループフィールドの開閉を行う
状況説明
- システム管理者のログインの場合:グループ2を開いた状態で表示
- KUNISADAのログインの場合:グループ1を開いた状態で表示
(function () { 'use strict'; //レコード詳細表示のイベントハンドラー kintone.events.on(['app.record.detail.show'], function(event){ //ユーザーのログイン情報を取得 var user = kintone.getLoginUser(); /*--ログインユーザーの場合分け--*/ if(user.code == "KUNISADAのユーザーコード")kintone.app.record.setGroupFieldOpen('group_1', true); if(user.code == "システム管理のユーザーコード")kintone.app.record.setGroupFieldOpen('group_2', true); return event; }); })();
例2)ログインユーザーの所属組織を表示する
状況説明
- システム管理者でログイン
- システム管理者の所属組織を表示
※グループフィールド開閉処理は割愛
(function () { 'use strict'; //レコード詳細表示のイベントハンドラー kintone.events.on(['app.record.detail.show'], function(event){ var user_organization, user = kintone.getLoginUser(); /*--ユーザーの所属組織のコードを表示する--*/ kintone.api('/v1/user/organizations','GET',{ code:user.code },function(resp){ user_organization = resp.organizationTitles[0].organization.code; alert('あなたの所属組織コードは' + user_organization + 'です。'); }); return event; }); })();
例3)ログインユーザーの所属グループを表示する
状況説明
- KUNISADAでログイン
- KUNISADAの所属グループを一覧で表示
※グループフィールド開閉処理は割愛
(function () { 'use strict'; //レコード詳細表示のイベントハンドラー kintone.events.on(['app.record.detail.show'], function(event){ var user_group, group_ary_count, user_group_ary = [], user = kintone.getLoginUser(); /*--ユーザーの所属グループのコードを表示する ※複数件ある場合--*/ kintone.api('/v1/user/groups','GET',{ code:user.code },function(resp){ //所属グループの数を数える group_ary_count = resp.groups.length; //所属グループの中に特定のグループがあるかの場合分け for(var i = 0; i < group_ary_count; i++){ user_group = resp.groups[i].code; user_group_ary.push(user_group); } //所属グループの一覧を表示 alert(user_group_ary.join('\n')); }); return event; }); })();
4. TIPS
- ユーザーのログイン情報を取得する
kintone.getLoginUser()
- グループフィールドの開閉する関数
kintone.app.record.setGroupFieldOpen(fieldCode, true/false)
5. まとめ
2月のkintoneアップデートでは、組織/グループフィールドの追加など、 組織/グループのカスタムがより簡単にできるようになりましたね! 今回は、既存ユーザー情報の設定を生かして、ログインユーザーの情報(個人/組織/グループ)を活用したグループフィールドの開閉処理にアプローチしてみました♪