1
0
-1

Jira の管理者が複数人いるのですが、
「インデックス作成」や「グローバルパーミッション」の項目を選択できるユーザをさらに限定したいです。

URL を知っていれば直接遷移できるかと思いますが
とりあえずはそれで十分です。

ユーザを選別し、特定のユーザのみ項目を表示するようにできないでしょうか。


    Commentコメントを追加...

    2 回答

    1.  
      4
      3
      2

      Jira の機能としてはないかと思うので、
      お知らせバナーにスクリプトを挿入してみました。

      jira-super-administrators グループを作成し、
      そのグループに属していないユーザには非表示にしています。

      <script>
      // インデックス作成を実行できるグループを指定
      (function() {
        var superAdminGroupName = 'jira-super-administrators';
        // 非表示にさせたい項目を設定
        var hideElementsList = [
          { name: 'インデックス作成', selector: '#indexing'},
          { name: 'グローバルパーミッション', selector: '#global_permissions'},
          { name: 'お知らせバナー', selector: '#edit_announcement'}
        ];
      
        var contextPath = AJS.contextPath();
        var userName = AJS.Meta.get('remote-user');
      
        // ユーザーが jira-super-administrators に所属するか確認
        function getIsSuperAdmin(callBack) {
          var xhr = new XMLHttpRequest();
      
          xhr.onload = () => {
            if (xhr.status === 200) {
              // ユーザが所属するグループを取得
              var groups = JSON.parse(xhr.responseText).groups.items;
      
              var isSuperAdmin = false;
              for (var i = 0, len = groups.length; i < len; i++) {
                if (groups[i].name === superAdminGroupName) {
                  isSuperAdmin = true;
                }
              }
              callBack(isSuperAdmin);
            }
          }
      
          xhr.open('GET', contextPath + '/rest/api/2/user?username=' + userName + '&expand=groups', false);
          xhr.send();
        };
      
        // 冒頭で設定した項目の要素を取得
        function getElements() {
          var elements = [];
          for (var i = 0, len = hideElementsList.length; i < len; i++) {
            var element = document.querySelector(hideElementsList[i]['selector']);
            if (element) {
              elements.push(element);
            } else {
              console.log(hideElementsList[i].name + ' のリンクは存在しません');
            }
          }
          return elements;
        }
      
        // 要素を非表示にする
        function hideElements(elements) {
          for (var i = 0, len = elements.length; i < len; i++) {
            elements[i].style.display = 'none';
          }
        }
      
        window.addEventListener('DOMContentLoaded', function() {
          getIsSuperAdmin(function(isSuperAdmin) {
            var elements = getElements();
      
            if (elements.length != 0 && !isSuperAdmin) {
              hideElements(elements);
            }
          });
        });
      })();
      
      </script>
        Commentコメントを追加...
      1.  
        3
        2
        1

        アドオンでできないか探してみました。下記のアドオンが要件を満たせると思いますが、メンテナンスが止まっていますね。

        URL Restrictions for Jira

        下記のアドオンはタブレベルの管理ですね。グローバル権限とインデクスだけの制御というのはできなくて、システムタブのアクセス制限という事になります。

        Secure Admin

        お役に立てれば幸いです。

        1. Shuzaburo Doba

          わざわざありがとうございます。

          フリーアドオンがあるのですね!

          対象バージョンなので使ってみたいと思います!

        2. 樋口晃

          お試しに使うは良いと思いますが、メンテナンスが止まっているので本番で使うのは止めた方が良いと思います。どうしても使いたければ、作成者にコンタクトしてソースを貰って引き継ぐという方法も有ると思います。

        Commentコメントを追加...