お世話になります。
kintoneアプリの中のサブテーブルにある特定のフィールドにアクセス権とつけることは可能でしょうか?kintone標準ではできないようです。
例)
サブテーブル内のフィールド
1.No(数字)
2.名前(文字列)
3.ランク(プルダウン)
のうち、3.ランクのみ ログインIDが管理者グループに属しているユーザーのみ変更可能。
お世話になります。
kintoneアプリの中のサブテーブルにある特定のフィールドにアクセス権とつけることは可能でしょうか?kintone標準ではできないようです。
例)
サブテーブル内のフィールド
1.No(数字)
2.名前(文字列)
3.ランク(プルダウン)
のうち、3.ランクのみ ログインIDが管理者グループに属しているユーザーのみ変更可能。
s-kan さん
こんにちは!
既に保存されているレコードであれば、以下のような内容でフィールドの編集を
制限することができます。
(function () {
"use strict";
kintone.events.on('app.record.edit.show', function (e) {
var rec = e.record;
for(var i = 0; i < rec.Table.value.length; i++) {
rec.Table.value[i].value.ランク.disabled = true;
}
return e;
});
})();
ただ、レコードの作成時や編集時に行を追加した場合は、
追加行の編集ができる状況になります。
行の追加時にフィールドの編集を制限する場合は、DOM操作が必要かと思われます。
DOM操作は非推奨であること、定期メンテナンスのタイミングで
動作しなくなる可能性があることを承知の上であれば、
DOM操作での対応でもよいかと思います。
行追加時にフィールドを編集できないように制限する際の実装については、
コチラが参考になりそうです。
テーブルの行追加・削除は、フィールド値変更時イベントで検知できるようになっています。
---------------ドキュメントより引用---------------
※テーブルフィールドに関して、イベントが発生するタイミングは以下の通りです。
なので、下記あたりのイベントで動作させればよいのではと思います。
※フィールドコードは、今回の場合テーブルのフィールドコード
ありがとうございます。