0

我在文档中真的找不到任何关于此的内容。我经常使用 Codeigniter,我主要使用 Ben Edmunds Ion auth,这对我来说更容易一些,因为我可以在注册中添加组插入功能。

您可以对这个愚蠢的问题投反对票,但我在 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 文档;我认为这就是你所追求的:

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 回答