2
1
0
1 回答
- 210
Confluence のカスタム HTML に javascript を挿入して
ユーザ情報をもとに非表示にする方法があるでしょうか。Conflence 管理画面 > カスタム HTML > BODY の最後に以下スクリプトを挿入してみました。
<script> (function(){ var user = AJS.Meta.get('remote-user'); var baseUrl = AJS.Meta.get('base-url'); var hideText = document.createElement('style'); hideText.textContent = '#user-menu-link-content{ display: none; }'; var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if(xhr.readyState === 4){ if(xhr.status === 200){ var data = JSON.parse(xhr.responseText); var groups = data.results; var result = false; for(var i = 0, len = groups.length; i < len; i++){ if(groups[i].name === 'その他のユーザー'){ result = true; break; } } if(result){ document.querySelector('head').appendChild(hideText); } } } } xhr.open('GET', baseUrl + '/rest/api/user/memberof?username=' + user); xhr.send(); })(); </script>
あとはサイトレイアウトにベロシティを記述して
非表示にもできそうでした。Confluence 管理画面 > レイアウト > メインレイアウト
をカスタムして<head> タグの最後に以下を挿入してみました。
#set($currentUser = $action.authenticatedUser) #set($groups = $userAccessor.getGroupNamesForUserName($currentUser.getName())) #foreach($group in $groups) #if($group.equals("その他のユーザー")) <style> #user-menu-link-content{ display: none; } </style> #end #end
どちらもユーザーが所属しているグループで判定しています。
コメントを追加...
ユーザによってはプロファイルの編集をさせたくないので
特定のユーザだけユーザメニューを非表示にしたいです。
なにか方法はありますか?