Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so dont bother with any of their useless mail servers here and just use oauth login instead. Thank the nice Russians for causing that. :)

Paste

Pasted as PHP by 111 ( 16 years ago )
<?php
class Module_User_Controller_FrontendRegistration extends Module_Common_Controller_Common
{
    /**
     * Объект пользователя, которого пытаемся зарегестрировать.
     * @var Module_User_Model_User
     */
    private $user;

    /**
     * User Mapper
     * @var Module_User_Mapper_User
     */
    private $Module_User_Mapper_User;

    public function run()
    {
        parent::run();

        if (!$this->current_user->isGuest())
        {
            $this->response->setHeader('Location', '/my/info/');
            return;
        }

        $this->createView();

        $this->view->loadI18n('common/controller/frontend_general',
                              'user/controller/registration');

        $this->view->getHelper('Html_Title')->add( $this->view->lang->main_title );
        $this->view->getHelper('Html_Title')->add( $this->view->lang->controller_title );

        $this->Module_User_Mapper_User = new Module_User_Mapper_User();

        if (!isset($this->user))
        {
            $this->user = $this->Module_User_Mapper_User->createNew();
        }

        if (Http_Request::isPost())
        {
            $this->post();
        }

        $this->view->user = $this->user;
    }

    private function post()
    {
        $this->user = $this->Module_User_Mapper_User->createFromCover($this->request->getPost()->user);

        $validator = new Validator_Chain('common/general', 'user/registration');

        $validator->add('user_login', new Module_Common_Validator_VarEmpty($this->user->user_login));
        $validator->add('user_login', new Module_Common_Validator_CharPassword($this->user->user_login));
        $validator->add('user_login', new Module_User_Validator_UserLoginExists($this->user->user_login, $this->user->id));

        if (!$this->user->id)
        {
            $validator->add('user_password_2', new Module_Common_Validator_VarEmpty($this->user->user_password_2));
            $validator->add('user_password_2', new Module_Common_Validator_CharPassword($this->user->user_password_2));
        }

        if (isset($this->user->user_password_1) &&
            isset($this->user->user_password_2) &&
            $this->user->user_password_1 !== $this->user->user_password_2
           )
        {
            $validator->addError('user_password', 'INCORRECT_PASSWORDS');
        }

        $validator->add('user_mail', new Module_Common_Validator_VarEmpty($this->user->user_mail));
        $validator->add('user_mail', new Module_Common_Validator_Email($this->user->user_mail));
        $validator->add('user_mail', new Module_User_Validator_UserMailExists($this->user->user_mail, $this->user->id));

        $validator->validate();

        if ($this->view->err = $validator->getErrors())
        {
            $redirect = new Redirect_Redirect();
            $redirect->setType('alert');
            $redirect->setMessage('post_errors');
            $this->view->setRedirect($redirect);
        }
        else
        {
            $this->user->user_group = 'user';
            $this->user->user_active = 0;

            pr($this->user, 1);


            $this->user_mapper->save($this->user);

            $redirect = new Redirect_Redirect();
            //$redirect->setMessage('');
            $redirect->setRedirectUrl('/my/');
            $redirect->run();
        }
    }
}
?>

 

Revise this Paste

Children: 18126
Your Name: Code Language: