Esempio n. 1
0
 /**
  * Creates and sends an e-mail invite
  * 
  * @param email $email
  */
 protected function createInvite($email)
 {
     $userInvite = new Invite();
     $userInvite->email = $email;
     $userInvite->source = Invite::SOURCE_INVITE;
     $userInvite->user_originator_id = Yii::$app->user->getIdentity()->id;
     $userInvite->save();
     $userInvite->sendInviteMail();
 }
Esempio n. 2
0
 public function testInviteToSpace()
 {
     Yii::$app->getModule('user')->settings->set('auth.needApproval', 0);
     $invite = new Invite();
     $invite->user_originator_id = 1;
     $invite->space_invite_id = 2;
     $invite->email = "*****@*****.**";
     $invite->source = Invite::SOURCE_INVITE;
     $this->assertTrue($invite->save());
     $space = Space::findOne(['id' => 2]);
     $user = new User();
     $user->username = "******";
     $user->email = "*****@*****.**";
     $this->assertTrue($user->save());
     $this->assertTrue($space->isMember($user->id));
 }
Esempio n. 3
0
 public function testInviteToSpace()
 {
     \humhub\models\Setting::Set('needApproval', 0, 'authentication_internal');
     $invite = new Invite();
     $invite->user_originator_id = 1;
     $invite->space_invite_id = 2;
     $invite->email = "*****@*****.**";
     $invite->source = Invite::SOURCE_INVITE;
     $this->assertTrue($invite->save());
     $space = Space::findOne(['id' => 2]);
     $user = new User();
     $user->username = "******";
     $user->group_id = 1;
     $user->email = "*****@*****.**";
     $this->assertTrue($user->save());
     $this->assertTrue($space->isMember($user->id));
 }
Esempio n. 4
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
     $loginModel = new \humhub\modules\user\models\forms\AccountLogin();
     if ($loginModel->load(Yii::$app->request->post()) && $loginModel->login()) {
         if (Yii::$app->request->getIsAjax()) {
             return $this->htmlRedirect(Yii::$app->user->returnUrl);
         } else {
             return $this->redirect(Yii::$app->user->returnUrl);
         }
     }
     $loginModel->password = "";
     $canRegister = \humhub\models\Setting::Get('anonymousRegistration', 'authentication_internal');
     $registerModel = new \humhub\modules\user\models\forms\AccountRegister();
     if ($canRegister) {
         if ($registerModel->load(Yii::$app->request->post()) && $registerModel->validate()) {
             $invite = \humhub\modules\user\models\Invite::findOne(['email' => $registerModel->email]);
             if ($invite === null) {
                 $invite = new \humhub\modules\user\models\Invite();
             }
             $invite->email = $registerModel->email;
             $invite->source = \humhub\modules\user\models\Invite::SOURCE_SELF;
             $invite->language = Yii::$app->language;
             $invite->save();
             $invite->sendInviteMail();
             if (Yii::$app->request->getIsAjax()) {
                 return $this->render('register_success_modal', ['model' => $registerModel]);
             } else {
                 return $this->render('register_success', ['model' => $registerModel]);
             }
         }
     }
     if (Yii::$app->request->getIsAjax()) {
         return $this->renderAjax('login_modal', array('model' => $loginModel, 'registerModel' => $registerModel, 'canRegister' => $canRegister));
     } else {
         return $this->render('login', array('model' => $loginModel, '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 \yii\validators\EmailValidator();
     if (!$validator->validate($email)) {
         return false;
     }
     // User already registered
     $user = User::findOne(['email' => $email]);
     if ($user != null) {
         return false;
     }
     $userInvite = Invite::findOne(['email' => $email]);
     // No invite yet
     if ($userInvite == null) {
         // Invite EXTERNAL user
         $userInvite = new Invite();
         $userInvite->email = $email;
         $userInvite->source = Invite::SOURCE_INVITE;
         $userInvite->user_originator_id = $originatorUserId;
         $userInvite->space_invite_id = $this->owner->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->owner->id;
         $userInvite->save();
         $userInvite->sendInviteMail();
     }
     return true;
 }