public function onRegister()
    {
        try {
            if (!$this->canRegister()) {
                throw new ApplicationException(Lang::get(/*Registrations are currently disabled.*/'rainlab.user::lang.account.registration_disabled'));
            }

            /*
             * Validate input
             */
            $data = post();

            if (!array_key_exists('password_confirmation', $data)) {
                $data['password_confirmation'] = post('password');
            }

            $rules = [
                'email'    => 'required|email|between:6,255',
                'password' => 'required|between:4,255|confirmed'
            ];

            if ($this->loginAttribute() == UserSettings::LOGIN_USERNAME) {
                $rules['username'] = 'required|between:2,255';
            }

            $validation = Validator::make($data, $rules);
            if ($validation->fails()) {
                throw new ValidationException($validation);
            }

            /*
             * Register user
             */
            Event::fire('rainlab.user.beforeRegister', [&$data]);

            $requireActivation = UserSettings::get('require_activation', true);
            $automaticActivation = UserSettings::get('activate_mode') == UserSettings::ACTIVATE_AUTO;
            $userActivation = UserSettings::get('activate_mode') == UserSettings::ACTIVATE_USER;
            $user = Auth::register($data, $automaticActivation);

            Event::fire('rainlab.user.register', [$user, $data]);

            /*
             * Activation is by the user, send the email
             */
            if ($userActivation) {
                $this->sendActivationEmail($user);

                Flash::success(Lang::get(/*An activation email has been sent to your email address.*/'rainlab.user::lang.account.activation_email_sent'));
            }

            /*
             * Automatically activated or not required, log the user in
             */
            if ($automaticActivation || !$requireActivation) {
                Auth::login($user);
            }

            /*
             * Redirect to the intended page after successful sign in
             */
            if ($redirect = $this->makeRedirection(true)) {
                return $redirect;
            }
        }
        catch (Exception $ex) {
            if (Request::ajax()) throw $ex;
            else Flash::error($ex->getMessage());
        }
    }
public function onRegister()
    {
        try {
            if (!$this->canRegister()) {
                throw new ApplicationException(Lang::get(/*Registrations are currently disabled.*/'rainlab.user::lang.account.registration_disabled'));
            }

            /*
             * Validate input
             */
            $data = post();

            if (!array_key_exists('password_confirmation', $data)) {
                $data['password_confirmation'] = post('password');
            }

            $rules = [
                'email'    => 'required|email|between:6,255',
                'password' => 'required|between:4,255|confirmed'
            ];

            if ($this->loginAttribute() == UserSettings::LOGIN_USERNAME) {
                $rules['username'] = 'required|between:2,255';
            }

            $validation = Validator::make($data, $rules);
            if ($validation->fails()) {
                throw new ValidationException($validation);
            }

            /*
             * Register user
             */
            Event::fire('rainlab.user.beforeRegister', [&$data]);

            $requireActivation = UserSettings::get('require_activation', true);
            $automaticActivation = UserSettings::get('activate_mode') == UserSettings::ACTIVATE_AUTO;
            $userActivation = UserSettings::get('activate_mode') == UserSettings::ACTIVATE_USER;
            $user = Auth::register($data, $automaticActivation);

            Event::fire('rainlab.user.register', [$user, $data]);

            /*
             * Activation is by the user, send the email
             */
            if ($userActivation) {
                $this->sendActivationEmail($user);

                Flash::success(Lang::get(/*An activation email has been sent to your email address.*/'rainlab.user::lang.account.activation_email_sent'));
            }

            /*
             * Automatically activated or not required, log the user in
             */
            if ($automaticActivation || !$requireActivation) {
                Auth::login($user);
            }

            /*
             * Redirect to the intended page after successful sign in
             */
            if ($redirect = $this->makeRedirection(true)) {
                return $redirect;
            }
        }
        catch (Exception $ex) {
            if (Request::ajax()) throw $ex;
            else Flash::error($ex->getMessage());
        }
    }
public function onRegister ( ) { try { if ( ! $ this -> canRegister ( ) ) { throw new ApplicationException ( Lang :: get ( /*Registrations are currently disabled.*/ 'rainlab.user::lang.account.registration_disabled' ) ) ; } /*
             * Validate input
             */ $ data = post ( ) ; if ( ! array_key_exists ( 'password_confirmation' , $ data ) ) { $ data [ 'password_confirmation' ] = post ( 'password' ) ; } $ rules = [ 'email' => 'required|email|between:6,255' , 'password' => 'required|between:4,255|confirmed' ] ; if ( $ this -> loginAttribute ( ) == UserSettings :: LOGIN_USERNAME ) { $ rules [ 'username' ] = 'required|between:2,255' ; } $ validation = Validator :: make ( $ data , $ rules ) ; if ( $ validation -> fails ( ) ) { throw new ValidationException ( $ validation ) ; } /*
             * Register user
             */ Event :: fire ( 'rainlab.user.beforeRegister' , [ & $ data ] ) ; $ requireActivation = UserSettings :: get ( 'require_activation' , true ) ; $ automaticActivation = UserSettings :: get ( 'activate_mode' ) == UserSettings :: ACTIVATE_AUTO ; $ userActivation = UserSettings :: get ( 'activate_mode' ) == UserSettings :: ACTIVATE_USER ; $ user = Auth :: register ( $ data , $ automaticActivation ) ; Event :: fire ( 'rainlab.user.register' , [ $ user , $ data ] ) ; /*
             * Activation is by the user, send the email
             */ if ( $ userActivation ) { $ this -> sendActivationEmail ( $ user ) ; Flash :: success ( Lang :: get ( /*An activation email has been sent to your email address.*/ 'rainlab.user::lang.account.activation_email_sent' ) ) ; } /*
             * Automatically activated or not required, log the user in
             */ if ( $ automaticActivation || ! $ requireActivation ) { Auth :: login ( $ user ) ; } /*
             * Redirect to the intended page after successful sign in
             */ if ( $ redirect = $ this -> makeRedirection ( true ) ) { return $ redirect ; } } catch ( Exception $ ex ) { if ( Request :: ajax ( ) ) throw $ ex ; else Flash :: error ( $ ex -> getMessage ( ) ) ; } }
Register the user
Register the user