/** * 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; // 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; } if ($userInvite->validate() && $userInvite->save()) { $userInvite->sendInviteMail(); return true; } return false; }