Example #1
0
 /**
  * Register a new user and save in the database,
  * then log the user in
  * @param \stdClass $user
  * @return bool
  */
 public function register(\stdClass $user)
 {
     // Logged in users can't register a new account
     if ($this->check()) {
         return false;
     }
     $model = new ModelUser($this->dbh);
     $user->ugroups = json_encode(["user"]);
     if ($id = $model->save($user)) {
         $user = $model->getUser($id);
         $this->setUserSessionInfo($user);
         return true;
     } else {
         return false;
     }
 }
Example #2
0
 public function actionRegUsu()
 {
     $this->layout = '//layouts/main';
     if (Yii::app()->request->getPost('FormReg') != null) {
         $FormReg = Yii::app()->request->getPost('FormReg');
         $modelUser = new ModelUser();
         $criteria = new CDbCriteria();
         $modelUser->attributes = $FormReg;
         $criteria->addCondition('dni_user = :dni');
         $params['dni'] = $modelUser->dni_user;
         $criteria->params = $params;
         $total = ModelUser::model()->count($criteria);
         if ($total > 0) {
             $this->render('registro', array('msg' => 'DNI ya registrado'));
         } else {
             $modelUser->id_user = ModelKey::getKeyid($modelUser->nombre_user, $modelUser->dni_user);
             $apellido = strtolower(str_replace(' ', '', Utils::verifyUTF($modelUser->apellido_padre_user)));
             $nombre = strtolower(substr(Utils::verifyUTF($modelUser->nombre_user), 0, 1));
             $login = $nombre . $apellido;
             $modelLogin = new ModelLogin();
             $modelLogin->clave_login = ModelKey::getPassworrd($modelUser->dni_user);
             $modelLogin->id_login = $modelUser->id_user;
             $modelLogin->name_login = $login;
             $transaction = Yii::app()->db->beginTransaction();
             try {
                 if (!$modelUser->save()) {
                     throw new Exception("No se puede guardar el usuario");
                 } else {
                     if (!$modelLogin->save()) {
                         throw new Exception("No se puede guardar el login");
                     } else {
                         if ($FormReg['key_proyecto'] != 1) {
                             $modelProyecto = new ModelProyectos();
                             Utils::show($modelProyecto, true);
                         }
                     }
                 }
                 $transaction->commit();
                 $this->redirect(Yii::app()->controller->createUrl("{$this->id}/login"));
             } catch (Exception $exc) {
                 $transaction->rollBack();
                 $msg = $exc->getMessage();
                 $this->render('registro', array('msg' => $msg));
             }
         }
     } else {
         $this->render('registro');
     }
 }