新規投稿
フォローする

テーブルの項目ごとに参照権限を設定したい。

背景・実現したいこと

テーブルの権限設定は下記投稿を参考にさせて頂きましたが、テーブルの項目単位で参照できるできないの設定は可能でしょうか。

https://developer.cybozu.io/hc/ja/community/posts/115020357323-%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E6%A8%A9%E9%99%90%E8%A8%AD%E5%AE%9A%E3%81%AB%E3%81%A4%E3%81%84%E3%81%A6

テーブルの各項目のプロパティ情報が分かれば何とかなると思いますが、探しきれませんでした。

よろしくお願いします。

0

4件のコメント

Avatar
mionix

こんにちは。

テーブルの項目単位とはどのことでしょうか。

テーブル内フィールドのことですか?

例えば、文字列1,2,3があったとして、

編集するにチェックを入れたら、1は編集可能で2,3は編集不可という認識で合ってますか?

もしくは参照なので、管理者には1,2,3を表示してその他のユーザーには2,3を非表示にするですか?

0
Avatar
Kenichi Uchigoshi

コメントありがとうございます。

テーブル内のフィールドです。

 キー情報1、キー情報2、テーブル(文字列1,2,3) があるとします。

Aさんが、キー情報1、キー情報2、テーブル(文字列1) を入力します。

Bさんが、Aさんが入力した内容を見て文字列2を入力します。

Cさんが、Aさんが入力した内容を見て文字列3を入力します。

BさんとCさんはライバル関係にあるのでお互い入力したのを見せないようにしたい。

AさんはBさんとCさんが入力する文字列2,3は変更できないようにしたい。

以上が実現したいことになります。

投稿した後に

https://developer.cybozu.io/hc/ja/community/posts/115010476726-%E4%B8%80%E8%A6%A7%E7%94%BB%E9%9D%A2%E3%81%AE%E3%82%B5%E3%83%96%E3%83%86%E3%83%BC%E3%83%96%E3%83%AB%E3%81%AE%E5%88%97%E3%81%AE%E9%9D%9E%E8%A1%A8%E7%A4%BA

を見つけたので試しております。

0
Avatar
mionix

理解しました。

テーブル内のフィールドを非表示にしたい場合は

kintone.app.record.setFieldShown('fieldCode', false);

でできます!

また、簡単にコードを書いてみたのですが、利用者がAさん、Bさん、Cさんのみが前提となります・・・

他にも利用者が大勢いるのでしたらswitch文ではなく違う方法を考えた方が良いですね・・・

少しでもご参考になれば幸いです。

(function () {
  'use strict';
  var events = ['app.record.create.show', 'app.record.edit.show', 'app.record.detail.show'];
  kintone.events.on(events, function (event) {
    var record = event.record;
    var user = kintone.getLoginUser()['name'];

    switch (user) {
    case 'Aさん':
      for (var i = 0; i < record['テーブル']['value'].length; i++) {
        record['テーブル']['value'][i].value['文字列2']['disabled'] = true;
        record['テーブル']['value'][i].value['文字列3']['disabled'] = true;
      }
      break;
    case 'Bさん':
      for (var i = 0; i < record['テーブル']['value'].length; i++) {
        record['テーブル']['value'][i].value['文字列1']['disabled'] = true;
      }
      record['キー情報1']['disabled'] = true;
      record['キー情報2']['disabled'] = true;
      kintone.app.record.setFieldShown('文字列3', false);
      break;
    case 'Cさん':
      for (var i = 0; i < record['テーブル']['value'].length; i++) {
        record['テーブル']['value'][i].value['文字列1']['disabled'] = true;
      }
      record['キー情報1']['disabled'] = true;
      record['キー情報2']['disabled'] = true;
      kintone.app.record.setFieldShown('文字列2', false);
      break;
    }
    return event;
  });
})();
mionixにより編集されました
0
Avatar
Kenichi Uchigoshi

アドバイスありがとうございます。

最初に組織情報を取得して組織で判断しようと思います。

0
サインインしてコメントを残してください。