テーブル内の特定フィールドにアクセス権

お世話になります。

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操作での対応でもよいかと思います。

 

行追加時にフィールドを編集できないように制限する際の実装については、

コチラが参考になりそうです。

テーブルの行追加・削除は、フィールド値変更時イベントで検知できるようになっています。

---------------ドキュメントより引用---------------

※テーブルフィールドに関して、イベントが発生するタイミングは以下の通りです。

  • テーブルの行追加、行削除ボタンがクリックされたタイミング

 

なので、下記あたりのイベントで動作させればよいのではと思います。

  • app.record.create.show
  • app.record.create.change.<フィールドコード>
  • app.record.edit.show
  • app.record.edit.change.<フィールドコード> 

※フィールドコードは、今回の場合テーブルのフィールドコード

 

ありがとうございます。