moodle で,課題評定の一覧などにユーザ名 (username) が表示されない.ユーザ名に学籍番号を使っているので,学籍番号でソートすることができなくて不便である.デフォルトで表示されているのは氏名とメールアドレスである.このメールアドレスの部分は変更ができる.管理→サイト管理→ユーザ→パーミッション→ユーザポリシー→表示するユーザ固有情報 で選択すればよいのだが,あいにくここに username という選択肢がない.ソース (admin/settings/users.php) には,次のように書いてある:
// Username is not included as an option because in some sites, it might // be a security problem to reveal usernames even to trusted staff.
なんだかなあ.そんなの,その管理者が判断して出さないようにすればいいだけじゃないか.デフォルトでは出ないようにしていれば問題ないだろうに.ともあれ,以下の変更で表示可能となる.
--- admin/settings/users.php-20171202 2016-03-12 08:38:07.000000000 +0900 +++ admin/settings/users.php 2017-12-02 07:50:56.240459183 +0900 @@ -180,6 +180,7 @@ // Username is not included as an option because in some sites, it might // be a security problem to reveal usernames even to trusted staff. // Custom user profile fields are not currently supported. + // *** Changed by XXX 2017-12-02. Username added (ignoring security issues). $temp->add(new admin_setting_configmulticheckbox('showuseridentity', new lang_string('showuseridentity', 'admin'), new lang_string('showuseridentity_desc', 'admin'), array('email' => 1), array( @@ -189,6 +190,7 @@ 'phone2' => new lang_string('phone2'), 'department' => new lang_string('department'), 'institution' => new lang_string('institution'), + 'username' => new lang_string('username'), ))); $temp->add(new admin_setting_configtext('fullnamedisplay', new lang_string('fullnamedisplay', 'admin'), new lang_string('configfullnamedisplay', 'admin'), 'language', PARAM_TEXT, 50)); $temp->add(new admin_setting_configtext('alternativefullnameformat', new lang_string('alternativefullnameformat', 'admin'),
もちろん,ソースを変更しなくても,たとえば「IDナンバー」(ID number) で代用するという方法もある.だけど,既存ユーザの該当フィールドに全部設定して歩かなくてはいけないし,また,このフィールドはユーザが変更することができてしまう,というのがいまひとつである.