宛先指定できるグループの限定

背景・実現したいこと

スレッド等の宛先指定時に候補として表示されるグループを限定したいです。

組織のアクセス権のように、グループにもアクセス権を付けられると良いのですが、標準機能では未対応と思いますので、下記のようなコードで実装しています。

 

利用したソースコード

下記コードのようにDOM操作で無理やり不要なグループを削除(非表示)することはできたのですが、

矢印キーで候補を選ぶと、非表示にしたグループまで選択できてしまう状況です。

完全には候補から除外できていないです。

非表示にしたものは、矢印キーでの選択も不可にしたいのですが、方法がございましたら、ご助言いただけますと幸いです。

var GROUP_IN_CHARGE_MASTER = ['東京', '大阪', '北海道'];

var timer = setInterval(function() {

 if (document.getElementsByClassName('ocean-ui-plugin-mention-ac-item-name').length > 0) {
  var element = document.getElementsByClassName('ocean-ui-plugin-mention-ac-item-name');
  for (var i = 0; i < element.length; i++) {
   // マスタに含まれないグループは非表示
   if (GROUP_IN_CHARGE_MASTER.indexOf(element[i].title) == -1) {
    if (element[i].parentNode.className.indexOf('ac-row-user') == -1) {
     element[i].parentNode.parentNode.removeChild(element[i].parentNode);
    }
   }
  }
 }

}, 100);

koichiさん、こんにちは。プロジェクト・アスノートの松田です。

グループフィールドの設定で選択肢を指定してみたらいかがでしょうか?

ここで選択肢を指定しておけば、その中からしか選択できなくなります。

参考になれば幸いです。

Shotaro Matsuda様

ご回答いただきありがとうございます。

フィールドの選択値ではなく、@宛先指定の候補を限定したいです。

良いアイデアがございましたら、ご教示いただけますと幸いです。

なるほど。メンションによる宛先指定ですね。勘違いしていました。

いまのところ、残念ながら解決策は思い浮かびません。

メンションを行う場所に対して、閲覧権限がある人にしか宛先は設定されないので、

レコード/アプリ/スペース等の権限コントロールでできる範囲でしかできなさそうですね。

利用シーンにもよりますが。

Shotaro Matsuda様

ユーザーに対してのメンションは、権限で制御できるんですが、

さすがにグループまではそうはいかないようで、

やはりkintoneの仕様が変わらない限り難しそうですね。

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

グループは選択できたとしても、その中のユーザーに対してはアクセス権による制御が効いていると思いますよ。
確認してみてください。

Shotaro Matsuda様
ご回答ありがとうございます。
説明がわかりづらくすみません。
メンション時のグループ名も表示させたくないというのが意図するところなのです。

例えば、「東京」、「大阪」、「北海道」、「中国」というグループがある場合、
「東京」、「大阪」、「北海道」グループは、メンションの候補として表示しますが、「中国」グループは候補として表示させたくないです。

1つのドメイン内に、複数の企業が所属するマルチテナントのような運用をしている都合上、ユーザーによっては見せたくないグループがあります。