/** * Displays the login page */ public function actionLogin() { // If user is already logged in, redirect him to the dashboard if (!Yii::app()->user->isGuest) { $this->redirect(Yii::app()->user->returnUrl); } // Show/Allow Anonymous Registration $canRegister = HSetting::Get('anonymousRegistration', 'authentication_internal'); $ntlmAutoLogin = false; $model = new AccountLoginForm(); //TODO: Solve this via events! if (Yii::app()->getModule('zsso') != null) { ZSsoModule::beforeActionLogin(); } // if it is ajax validation request if (isset($_POST['ajax']) && $_POST['ajax'] === 'account-login-form') { echo CActiveForm::validate($model); Yii::app()->end(); } // collect user input data if (isset($_POST['AccountLoginForm'])) { #$_POST['AccountLoginForm'] = Yii::app()->input->stripClean($_POST['AccountLoginForm']); $model->attributes = $_POST['AccountLoginForm']; // validate user input and redirect to the previous page if valid if ($model->validate() && $model->login()) { $this->redirect(Yii::app()->user->returnUrl); } } // Always clear password $model->password = ""; $registerModel = new AccountRegisterForm(); // Registration enabled? if ($canRegister) { // if it is ajax validation request if (isset($_POST['ajax']) && $_POST['ajax'] === 'account-register-form') { echo CActiveForm::validate($registerModel); Yii::app()->end(); } if (isset($_POST['AccountRegisterForm'])) { $_POST['AccountRegisterForm'] = Yii::app()->input->stripClean($_POST['AccountRegisterForm']); $registerModel->attributes = $_POST['AccountRegisterForm']; if ($registerModel->validate()) { // Try Load an invite $userInvite = UserInvite::model()->findByAttributes(array('email' => $registerModel->email)); if (!$userInvite) { $userInvite = new UserInvite(); } $userInvite->email = $registerModel->email; $userInvite->source = UserInvite::SOURCE_SELF; $userInvite->save(); $userInvite->sendInviteMail(); $this->render('register_success', array('model' => $registerModel)); return; } } } // display the login form $this->render('login', array('model' => $model, 'registerModel' => $registerModel, 'canRegister' => $canRegister)); }
/** * Invites a not registered member to this space * * @param type $email * @param type $originatorUserId */ public function inviteMemberByEMail($email, $originatorUserId) { // Invalid E-Mail $validator = new CEmailValidator(); if (!$validator->validateValue($email)) { return false; } // User already registered $user = User::model()->findByAttributes(array('email' => $email)); if ($user != null) { return false; } $userInvite = UserInvite::model()->findByAttributes(array('email' => $email)); // No invite yet if ($userInvite == null) { // Invite EXTERNAL user $userInvite = new UserInvite(); $userInvite->email = $email; $userInvite->source = UserInvite::SOURCE_INVITE; $userInvite->user_originator_id = $originatorUserId; $userInvite->space_invite_id = $this->getOwner()->id; $userInvite->save(); $userInvite->sendInviteMail(); // There is a pending registration // Steal it und send mail again // Unfortunately there a no multiple workspace invites supported // so we take the last one } else { $userInvite->user_originator_id = $originatorUserId; $userInvite->space_invite_id = $this->getOwner()->id; $userInvite->save(); $userInvite->sendInviteMail(); } return true; }
public function actionMail() { $userInvite = UserInvite::model()->findByAttributes(array('email' => Yii::app()->request->getQuery('email'))); if ($userInvite === null) { $userInvite = new UserInvite(); } else { $update = Yii::app()->db->createCommand()->update('user_invite', array('created_at' => new CDbExpression('NOW()'), 'updated_at' => new CDbExpression('NOW()')), 'email=:email', array(':email' => Yii::app()->request->getQuery('email'))); $userInvite->sendInviteMail(); } $this->render("mail"); }