アクセス権に対するサブテーブルの表示設定

詳細画面上に配置されたフィールドに対して、ユーザーのアクセス権によって表示/非表示を設定できるわけですが、同じことを詳細画面に配置されたテーブルに対して行うことはできないでしょうか?

設定 - アクセス権 - フィールドの設定ではフィールドの選択肢はありますがテーブルに対して同じことはできそうにない(見落としてる?)ので、Javascriptで行うしかないと思いますが、如何でしょうか?

Naohiro Fukudaさん

こんにちは。
標準ではテーブルに対してアクセス権をつけることはできないので、回避方法としてJSを使ってテーブルを非表示にする方法を記載します。

まず、アクセス権を設定する用のフィールドを用意します。仮に「テーブル閲覧可フィールド」とします。
次に「テーブル閲覧可フィールド」のアクセス権(閲覧)にテーブル閲覧可能なユーザを設定します。

フィールドの追加が終わったら、JSで「テーブル参照可フィールド」が見えない人はテーブルを非表示にします。

var record = event.record;

if (!record['テーブル閲覧可フィールド']) {
  // テーブル閲覧可フィールドにアクセスできなかったらテーブルを非表示にする
  kintone.app.record.setFieldShown("テーブルフィールド", false);
} else {
  // テーブル閲覧可フィールドにアクセスを非表示にする
  kintone.app.record.setFieldShown("テーブル閲覧可フィールド", false)
}

return event;

 

JS APIについてはこちらを確認ください↓

フィールドの表示/非表示を切り替える
https://developer.cybozu.io/hc/ja/articles/201941974#step4

 

 

カキ氷様

ご回答ありがとうございます。ご提示いただいた方法で目的を達成することができました。ありがとうございます。

今後とも、よろしくお願い申し上げます。

お世話になります。申し訳ありませんがご教示頂きたく存じます。

こちらにある内容をまさに実行したいのですが、動きませんでした。

出庫(グループ)にアクセス権がない場合、資材_出庫(サブテーブル)が表示されないようにしたいです。

ご教示頂けますと幸いです。

 

(function() {
“use strict”;

kintone.events.on(‘app.record.detail.show’, function(event){
var record = event.record;

if (!record[‘出庫’]) {
// テーブル閲覧可フィールドにアクセスできなかったらテーブルを非表示にする
kintone.app.record.setFieldShown(“資材_出庫”, false);
} else {
// テーブル閲覧可フィールドにアクセスを非表示にする
kintone.app.record.setFieldShown(“出庫”, false)
}

return event;
});
})();

こんにちは。

私も先ほどまで同じところで躓いておりまして解決いたしましたので回答させていただきます。

  // テーブル閲覧可フィールドにアクセスを非表示にする
  kintone.app.record.setFieldShown("出庫", false) //←ここにセミコロンがないのがエラーの原因でした。

 

ですので、

 

(function() {
"use strict";

kintone.events.on('app.record.detail.show', function(event){
var record = event.record;

if (!record['出庫']) {
  // テーブル閲覧可フィールドにアクセスできなかったらテーブルを非表示にする
  kintone.app.record.setFieldShown("資材_出庫", false);
} else {
  // テーブル閲覧可フィールドにアクセスを非表示にする
  kintone.app.record.setFieldShown("出庫", false);
}

return event;
});
})();

 

これで動くかもしれません。

セミコロン無くても大丈夫というご意見もお見掛けしましたが、

弊社の場合はこの部分のみの修正でちきんと動くようになりました。

あまりJSは得意ではないので、なんとも言えませんが一度お試しくださいませ。

なお…こちらのページのおかげで発見できましたので、共有させて頂きますね。

https://qiita.com/kjkoma/items/4e52db8e53beee5efc43

こんにちは。
上記コードでテーブル非表示にできたのですが、
詳細表示後の…(三点リーダー)にある「レコ―ドの印刷」ではテーブル表示されてしまいました。
三点リーダーの印刷を標準機能で禁止する方法が見つからなかったので、
あまり利用されないかもしれませんが、そこも非表示のままの方が都合がいいと思いますので記載します。

(function() {
"use strict";
kintone.events.on(['app.record.detail.show',
                    'app.record.print.show'],function(event){
var record = event.record;
if (!record['出庫']) {
  // テーブル閲覧可フィールドにアクセスできなかったらテーブルを非表示にする
  kintone.app.record.setFieldShown("資材\_出庫",false);
}else{
  // テーブル閲覧可フィールドにアクセスを非表示にする
  kintone.app.record.setFieldShown("出庫",false);
}
return event;
});
})();

 

このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。