デフォルトの設定状態
Pleasanterの初期設定のままだと、ユーザーが自由にログインIDを変更できてしまいます。
ユーザーIDの入力欄の変更を無効にする
これはシステム管理上好ましくないので、特定のユーザー以外にはログインIDが変更できないようにすることにしました。
##拡張スクリプトを使って入力欄の変更を無効化
ということで、Pleasanterの拡張スクリプト用フォルダ({WEBROOT}\pleasanter\App_Data\Parameters\ExtendedScripts)に、以下の拡張スクリプトを配置して、administrator以外のユーザーでログインした時には、ユーザープロファイル画面を開いても、ログインID欄の変更を無効化しました。
無効化しただけでは、グレーアウトされず変更できそうに見えてしまうので、グレイアウトするようにもしています。
$(function(){
var UserId = $("#UserId").val();
switch (UserId) {
case "1":
break;
default:
switch (true) {
case /users\/login/.test(location.href):
break;
case /users\/.*/.test(location.href):
$("#Users_LoginId").prop('disabled', true);
$("#Users_LoginId").removeClass("control-textbox");
$("#Users_LoginId").addClass("control-text");
break;
}
break;
}
// console.log(location.href);
});
Administratorでログインすると今まで通りに、変更できますが
一般ユーザーでログインするとグレーアウトされて変更もできなくなります。
許可するユーザーを増やしたい時は…
switch (UserId) {
case "1":
case "2":
︙
break;
というように、ひたすらユーザーIDを並べていきます。
APIでユーザー情報や所属グループを取得できたりすると良いんですけどね~
うまくいかない時は…
// console.log(location.href);
↓↓↓
console.log(location.href);
ここのコメントを外してIISを再起動、F12キーを押してコンソールログを表示した状態で、トップページを再読込みするとURLが確認できます。
if文のlocation.hrefでチェックしているURLと違っていないか確認してみてください。
まとめ
初期状態で使いづらいなと感じても、拡張スクリプトや拡張SQL、拡張スタイルシートを使用することで、カスタマイズが可能です。どんどんカスタマイズして便利なツールに育てていけるのも、Pleasanterの魅力のひとつだと思います。