ユーザアカウント情報をアップロードで更新

ユーザアカウント情報をアップロードで更新

三上 恭史發表於
Number of replies: 15

白井先生

教えてください。
ユーザアップロード機能でユーザのメールアドレスを変更しようと思っています。
(既存のメールアドレスが記録されているユーザのメールアドレスフィールドを変更)
(1000ユーザほど)
username,email,firstname,lastname
mikami123,mikami@mikami.com,mikami,yasushi
のファイルをエンコードタイプSHIFT-JISでアップロードしても、
更新されたユーザ「0」となり更新されません。
フィールドをusernameとemailのみ等、いろいろ試しました。
アップロードタイプは「既存のユーザのみ更新する」で行っています。

何かミスがあるか、お気づきでしたらお教え下さい。
宜しくお願いいたします。

評比平均分數: -
In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Tatsuya Shirai發表於

うろ覚えですが,データフィールドに id が必要だったかも知れません.

電子メールアドレスを変更する対象のユーザをバルク処理でダウンロードし,余計なカラムを削除してアドレスのみを変更してアップロードしてみてはどうでしょう?
ユーザをダウンロードしますと,第1カラムから順に,id username email firstname lastname idnumber...となっていると思います.

MoodleDocsのユーザのアップロードのページには特にそのような記述はありませんが,もしユーザ名が管理者の知らない間に変更されていた場合に,ユーザ名で既存のユーザ情報をデータベースから探し出すのは困難だろうなぁという予想が根拠です.

 

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片

下記例のようなアカウント更新用ファイルを作成された後、

例)
username, email
user001, user001@moodle.org
user002, user002@moodle.org
user003, user003@moodle.org

「サイト管理 > ユーザ > アカウント > ユーザのアップロード」で下記オプションを使って、アカウント更新用ファイルをアップロードされてはいかがでしょうか。微笑

アップロードタイプ: 既存のユーザのみ更新する
新しいユーザパスワード: 灰色
既存のユーザ詳細: ファイルでオーバーライドする
既存のユーザパスワード: 変更なし
リネームを許可する: No
削除を許可する: No
メールアドレスの重複を避ける: No
バルク処理の選択:No

In reply to Mitsuhiro Yoshida

Re: ユーザアカウント情報をアップロードで更新

三上 恭史發表於

白井先生 
吉田先生
アドバイスありがとうとございます。週明けとり会話にならず申し訳ありません。

id,username,emailとしたり、id,emailのみで行ったりしましたが、
ユーザが更新されました: 0
弱いパスワードを持ったユーザ: 0
エラー: 0
となってしまいます。

既存のユーザ詳細: ファイルでオーバーライドする
が灰色で選択できません。
ここがポイントのような気がします。

パーミッションの問題なのでしょうか?
他のフィールド(名、性)等も同様に変更できません。変更したいのはemailだけなのですが。。

またまた教えてください。
宜しくお願いします。

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片

「アップロードタイプ」オプションのプルダウンメニューをそれぞれ変更して、灰色の状態が続くかどうかご確認ください。

「新しいユーザの追加および既存のユーザを更新する」または「既存のユーザのみ更新する」を選択した場合、灰色の状態は解除されると思います。

附件 moodle_uploadusers.jpg
In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

三上 恭史發表於

「新しいユーザのパスワード」のフィールドは選択可能になるのですが、
「既存のユーザ詳細」はどの「アップロードタイプ」でも選択ができません。

画像を張り付けるとフォーラム投稿に返信ができなくなりますね。
吉田先生の投稿に返信ができませんでした・・・。

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Tatsuya Shirai發表於

当方の一月ほど前のMoodle1.9.9+では,試しに1ユーザのみの電子メールアドレスの変更が成功しました.idは関係ないようですね^^;

しらい たつや という名前のユーザの電子メールアドレスを変更しました.

CSVファイルは以下の通り.カンマの前後にはスペースを一切入れていません.

username,email,firstname,lastname
test,test@gomi.ne.jp,テスト,白井


画像のアップロードに失敗するので...テキストで.

  • アップロードタイプ:既存のユーザのみ更新する
  • 新しいユーザパスワード:ファイルのパスワードフィールドを使用する(グレーアウト)
  • 既存のユーザ詳細:ファイルでオーバーライドする
  • 既存のユーザパスワード:変更なし
  • リネームを許可する:No
  • 削除を許可する:No
  • メールアドレスの重複を避ける:No
  • バルク処理の選択:更新されたユーザ

これで名:たつや→テスト,姓:しらい→白井,メールアドレス:***→test@gomi.ne.jp のみ変更されたようです.

ただし,他の情報が破壊されていないかどうかは自信がありません. 

附件 BulkUpdateEmail.jpg
In reply to Tatsuya Shirai

Re: ユーザアカウント情報をアップロードで更新

Tatsuya Shirai發表於

 おや? 画像のアップロードはできていたようですね.なぜかエラーを意味すると思われるPHPファイルがダウンロードされる現象が続いたのですが...

 さて,名前も一緒に変えるのはどうか,ということで,名前は変えずにtestアカウントの電子メールアドレスのみ以前の物に戻しました.これも問題なく成功しました.何が違うのだろう???

 アップロードタイプとバルク処理の選択.いま一つ違いを良く分からずに指定しています.
 なんだかとっても分かり難いですね.

 Moodleのユーザインタフェースの難しさは,「何ができる」というプログラマ(とデザイナ)の思惑がストレートに表現されていることですよね.「何がしたいか」ではない.既存のユーザアカウントの**だけを変更したい!というメニューを選ぶと各設定が自動的に変更される,というようなインタフェースですと,無用にドキドキしないで済むのですが.

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片

admin/uploaduser_form.phpの72行目あたりを確認します限り、「アップロードタイプ」が下記の条件の場合のみ、「既存のユーザ詳細」が灰色にされるようです。

UU_ADDNEW = 新しいユーザのみ、既存のユーザをスキップする
UU_ADDINC = すべてを追加する、必要に応じてユーザ名にカウンタを付加する

[admin/uploaduser_form.php]
$choices = array(0 => get_string('nochanges', 'admin'),
1 => get_string('uuupdatefromfile', 'admin'),
2 => get_string('uuupdateall', 'admin'),
3 => get_string('uuupdatemissing', 'admin'));
$mform->addElement('select', 'uuupdatetype', get_string('uuupdatetype', 'admin'), $choices);
$mform->setDefault('uuupdatetype', 0);
$mform->disabledIf('uuupdatetype', 'uutype', 'eq', UU_ADDNEW);
$mform->disabledIf('uuupdatetype', 'uutype', 'eq', UU_ADDINC);

In reply to Mitsuhiro Yoshida

Re: ユーザアカウント情報をアップロードで更新

三上 恭史發表於

皆様
情報ありがとうございます。

UU_ADDNEW = 新しいユーザのみ、既存のユーザをスキップする
UU_ADDINC = すべてを追加する、必要に応じてユーザ名にカウンタを付加する
の条件なのですが、「既存のユーザ詳細」が灰色の場合は、
PHPを変更すれば、なんとかなるものでしょうか?

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片

> PHPを変更すれば、なんとかなるものでしょうか?

いいえ、標準的なMoodleではPHPを変更しない状態で正常動作しますので、現在の状態を解決するためにPHPを変更することにより、他に何らかの悪影響を及ぼす可能性があります。

大変遅くなりましたが、宜しければ下記5点をお教えください。

  1. 現在お使いのMoodleのバージョン
  2. Moodleを動作させているサーバのオペレーティングシステム (例 Linux)
  3. Moodleのカスタマイズの有無 (何らかの改造を加えているかどうか)
  4. 現在お使いのブラウザ (例 Mozilla Firefox)
  5. Moodleへのアクセスに使用されているパソコンのオペレーティングシステム (例 Mac OS X)
In reply to Mitsuhiro Yoshida

Re: ユーザアカウント情報をアップロードで更新

三上 恭史發表於

基本情報失礼しました。

  1. Moodle 1.9.4+ (Build: 20090401)
  2. TurboLinux9 PHP5.2.4
  3. Moodleのカスタマイズ
    Group-based assignment management
    Project_format(札幌学院大学と(株)VERSION2共同開発)
    TDAPブロックの最新版
    Feedbackモジュール
    TDAP Block   といったところでとくにPHPの変更等行っておりません。
  4. ブラウザ:InternetExplorer最新版、MozillaFireFox最新版
  5. パソコンのOS WindowsXP
    sshアクセス可能

[admin/uploaduser_form.php]は
吉田先生の投稿と同じ設定になっておりました。

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Mitsuhiro Yoshida發表於
Developers的相片 Particularly helpful Moodlers的相片 Translators的相片

三上先生

詳細情報をお教え頂きましてありがとうございます。

現在お使いのMoodleは標準的なMoodle 1.9.4+とは異なるかと思いますので、もし可能でしたら下記の手順にて、同様の現象が発生するかどうかご確認ください。

  1. 現在のMySQLデータベース (例 moodle)  をダンプ (mysqldump) する。
  2. 動作確認用Moodle MySQLデータベース (例 moodle_test) を作成する。
  3. 1.でダンプしたデータを動作確認用MySQLデータベースに入れる。
  4. 動作確認用Moodleデータディレクトリ (例 /var/www/moodledata_test) を作成する。
  5. 現在のMoodleがインストールされている場所とは異なる場所 (例 /var/www/html/moodle_test) に標準的なMoodle 1.9.4+ (Build: 20090401) のみを入れる。
  6. 現在のMoodleがインストールされている場所からconfig.phpを 5. の場所にコピーする。
  7. 6. でコピーしたconfig.phpの内容を動作確認用Moodleの環境に合わせて修正する。
  8. 動作確認用Moodleに管理者としてログインできるかどうか確認する。
  9. 動作確認用Moodleのadmin/replace.php (例 http://your_univ.ac.jp/moodle_test/admin/replace.php)にアクセスする。
  10. 動作確認用Moodleの環境に合わせて 9. のページにてMySQLデータベーステーブル内のURLを一括変更する。
  11. 動作確認用Moodleの「サイト管理 > ユーザ > アカウント > ユーザのアップロード」にアクセスして、ユーザアカウント情報をテキストファイルにより一括変更できるかどうか確認する。
In reply to Mitsuhiro Yoshida

Re: ユーザアカウント情報をアップロードで更新

三上 恭史發表於

皆様

情報、ありがとうございます。再インストールしてみます。
まずはお礼まで。

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Tatsuya Shirai發表於

 そうですね.もしかしたらMoodle1.9.4ではなく,Moodle1.9.9ならばうまく動作するのかも知れません.まずはmoodleフォルダのみ更新して実験してみては如何でしょうか(もし再インストールするのであれば).

In reply to 三上 恭史

Re: ユーザアカウント情報をアップロードで更新

Tatsuya Shirai發表於

おかしいですねぇ.

 idの項目を付けても付けなくても,”アップロードタイプ”を「既存のユーザのみ更新する」に設定すれば,他はデフォルトのままでも”新しいユーザパスワード”のプルダウンメニューは「ファイルのパスワードフィールドを使用する」がグレーアウトした状態になるはずなのですが.

附件 uploadtype.jpg