特定ユーザに対して一部管理者メニューを非表示にする(Redmine View Customize Plugin)

特定ユーザに対して一部管理者メニューを非表示にしたいといった要望です。(2つあって、2つ目の方)

一律非表示ならば、CSSで出来るのですが、特定ユーザに対してのみ適用したいのでJavaScriptで書く必要があります。

以下のサンプルでは、ユーザID:10のユーザに対して、ワークフロー、選択肢の値、設定の3つを非表示にしています。

設定内容

  • Insertion position: Head of all pages
$(function() {

  // user_id = 10 に対して非表示に
  if (ViewCustomize.context.user.id == 10) {

    $('li:has(a[href="/workflows/edit"])').hide();  // Workflow
    $('li:has(a[href="/enumerations"])').hide();    // Enumerations
    $('li:has(a[href="/settings"])').hide();        // Settings
  }
});

動作

左がユーザID:10で、右がその他のユーザです。

f:id:onozaty:20200921224717p:plain