全般的日本語フォーラム

ログイン時のユーザ名に使用する文字を制限できませんか

 
画像 Katsunori Mizuno
ログイン時のユーザ名に使用する文字を制限できませんか
 

1.8.2+ で、ユーザ認証に ActiveDirectory (LDAP)を使用しているのですが、ActiveDirectory の変な仕様のため、混乱が起きています。

ActiveDirectory での認証は sAMAccountName を使うのですが、ログイン時のユーザ名に全角英字を入れてしまっても、半角英字と区別しないという。大変困った仕様になっています。

このため、e991000 というユーザ名で登録されている学生が、誤って991000のように全角英字を入れても認証が成功してしまうのです。認証が成功してしまうと、Moodleは、991000を新規ユーザとして登録してしまい、プロフィールの編集画面が表示され、学生は「????」な状態になってしまいます。

この問題は、ユーザ名に入力できる文字を半角英数字に制限できれば、取り合えず回避できそうなのですが、そのような変更を簡単に行うことは可能でしょうか?

 
評点平均: -
画像 Mitsuhiro Yoshida
Re: ログイン時のユーザ名に使用する文字を制限できませんか
DevelopersTranslators
> この問題は、ユーザ名に入力できる文字を半角英数字に制限できれば、取り合えず回避できそうなのですが、そのような変更を簡単に行うことは可能でしょうか?

ログイン画面で全角英数字を入力した場合、すべて半角英数字に変換されてはいかがでしょうか。
よろしければ下記の修正をお試しください。ウインク

修正対象プログラム: /login/index.php
修正箇所: 108行目

[修正前]
} else if ($frm) { // Login WITH cookies

$frm->username = trim(moodle_strtolower($frm->username));

[修正後]
} else if ($frm) { // Login WITH cookies

$frm->username = mb_convert_kana($frm->username, 'a', 'utf-8');
$frm->username = trim(moodle_strtolower($frm->username));

 
評点平均:有益(Useful) (4)
画像 Katsunori Mizuno
Re: ログイン時のユーザ名に使用する文字を制限できませんか
 

ありがとうございます。

教えていただいた修正でうまくいきました。満面の笑顔

画像 Hiroyuki H
Re: ログイン時のユーザ名に使用する文字を制限できませんか
 

Moodle2.2.2+でも同様の問題が発生しますので、ActiveDirectoryをLDAPに使用する場合は
吉田さんの修正が必須だと思います。

新入生がログインする際など、全角でユーザ名を入力する学生は少なからずいるようですので
皆様お気をつけ下さい。

 
評点平均:有益(Useful) (1)
1997年の頃の写真です
Re: ログイン時のユーザ名に使用する文字を制限できませんか
Translators

そうですね,重要な情報ですのでクロスリンクしておきましょう.

http://moodle.org/mod/forum/discuss.php?d=168356