5

認証プラグインを作成しようとしていますが、moodle データベースにユーザーが存在しない場合に問題が発生します。したがって、手動でユーザーを作成する方法を見つけようとしています。

私は試した:

$user            = new StdClass();
$user->username  = $ucUser;
$user->auth      = 'ucauth';
$user->firstname = "First";
$user->lastname  = "Last";
$user->id        = $DB->insert_record('user', $user);

しかし、うまくいきませんでした...挿入エラーが発生しました。$userオブジェクトには他に何が必要ですか?

4

3 に答える 3

8

ユーザー オブジェクトには次の値が必要です。

$user             = new StdClass();
$user->auth       = 'manual';
$user->confirmed  = 1;
$user->mnethostid = 1;
$user->email      = "email";
$user->username   = "username";
$user->password   = md5('password');
$user->lastname   = "lastname";
$user->firstname  = "firstname";
$user->id         = $DB->insert_record('user', $user);

これを試してください。

于 2012-06-07T12:25:59.357 に答える
2

さて、authenticate_user_login($username, null)これを使用することをお勧めします。これにより、後でプロセスで完了することができる空のユーザーが得られます。次にcomplete_user_login($user);、次のような編集ページにユーザーを送信する場合に使用できます

if (user_not_fully_set_up($USER)) {
            $urltogo = $CFG->wwwroot.'/user/edit.php';
        }else{
            $urltogo = $CFG->wwwroot.'/';
        }

    redirect($urltogo);

何を達成しようとしているのか正確にはわかりません。しかし、外部 Web サービスに接続するためのプラグインを作成しましたが、それを適切に行う方法を理解するのにしばらく時間がかかりました。必要なことは何でもお手伝いします。

于 2012-06-11T15:42:46.787 に答える