0

これについては、ドキュメントで実際に何も見つかりません。私は Codeigniter をよく使用し、主に Ben Edmunds Ion 認証を使用しましたが、登録にグループ挿入機能を追加できたので、少し楽になりました。

このばかげた質問に反対票を投じることができますが、Sentry のドキュメントではこれについて何も見つかりません。

これが私の登録コードです:

public function action_register()
{

    $response = Response::forge();

        // validation

        $val = Validation::forge('registration');

        $val->add_field('first_name', 'Username', 'required|trim|valid_string[alpha,spaces]');
        //$val->add_field('first_name', 'Vezetéknév', 'required|');
        $val->add_field('last_name', 'Keresztév', 'required');
        $val->add_field('email', 'Email', 'required|valid_email');
        $val->add_field('email_again', 'Email újra', 'required|valid_email|match_field[email]');
        $val->add_field('password', 'Jelszó', 'required|min_length[5]');
        $val->add_field('gender', 'Nemed', 'required');
        $val->add_field('talent', 'Tehetséged', 'required');
        $val->add_field('talent_level', 'Tehetségi szinted', 'required');

        if($val->run()): 
            try 
            {
                // register the user

                $user = Sentry::user()->register(array(
                    'email' => Input::post('email'),
                    'password' => Input::post('password'),
                    'metadata' => array(
                        'first_name' => Input::post('first_name'),
                        'last_name' => Input::post('last_name'),
                        'gender' => Input::post('gender'),
                        'talent_level' => Input::post('talent_level'),
                    )
                ));


                if($user):
                    //$email_data = array();
                    //echo Config::get('base_url'). "user/activate/". $user['hash'];
                    $email = Email::forge();
                    $email->from('my@email.me', Config::get('site_name'));
                    $email->to(Input::post('email'), Input::post('first_name'));
                    $email->subject('Regisztráció');

                    $email_data = array(
                        'name' => "Kedves " . Input::post('first_name'). "<br><br>",
                        'title' => "Üdvözöllek a ".Config::get('site_name')." oldalán" ."<br>",
                        'link' => '<a href="'.Config::get('site_url'). "user/activate/". $user['hash'].'">Fiókod megerősítéséhez kérlek kattints ide</a>'
                    );

                    $email->html_body(\View::forge('email/activation', array('email_data' => $email_data)));
                    $email->send();

                    $response->body(json_encode(array(
                        'status' => 'ok',
                    )));

                else:
                    $data['errors'] = "error";
                endif;  
            }
            catch (SentryUserException $e) 
            {

            $response->body(json_encode(array(
                        'status' => 'error',
                        'message' => array(
                            'email_taken' => $e->getMessage()
                        )
                    )));
            }

        else:

            $response->body(json_encode(array(
                    'status' => 'error',
                    'message' => array(
                        'first_name' => $val->error('first_name') ? $val->error('first_name')->get_message() : null,
                        'last_name' => $val->error('last_name') ? $val->error('last_name')->get_message() : null,
                        'email' => $val->error('email') ? $val->error('email')->get_message() : null,
                        'email_again' => $val->error('email_again') ? $val->error('email_again')->get_message() : null,
                        'password' => $val->error('password') ? $val->error('password')->get_message() : null,
                        'gender' => $val->error('gender') ? $val->error('gender')->get_message() : null,
                        'talent' => $val->error('talent') ? $val->error('talent')->get_message() : null,
                        'talent_level' => $val->error('talent_level') ? $val->error('talent_level')->get_message() : null,
                        )
        )));
    endif;

    return $response;
}

私の質問は、選択したユーザーグループを保存するにはどうすればよいですか?

ありがとうございました。

4

1 に答える 1

2

これは、Sentry Documentationから取得したものです。これがあなたが求めているものだと思います:

try
{
    // option 1
    $user->add_to_group(2);

    // option 2
    $user->add_to_group('editor');
}
catch (SentryUserException $e)
{
    $errors = $e->getMessage(); // catch errors such as user already in group
}
于 2012-08-22T09:38:24.613 に答える