示例#1
0
 /**
  * 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;
 }
示例#3
0
 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");
 }