/** * 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(); }
/** * 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; }