/** * @depends testResolveConversationParticipants */ public function testResolveEmailInvitesByPeople() { $this->assertEquals(0, Notification::getCount()); $this->assertEquals(0, EmailMessage::getCount()); $super = Yii::app()->user->userModel; $super->primaryEmail->emailAddress = '*****@*****.**'; NotificationTestHelper::setNotificationSettingsForUser($super, 'ConversationInvites'); $jack = User::getByUsername('jack'); $jack->primaryEmail->emailAddress = '*****@*****.**'; NotificationTestHelper::setNotificationSettingsForUser($jack, 'ConversationInvites', true, false); $steven = User::getByUsername('steven'); $steven->primaryEmail->emailAddress = '*****@*****.**'; NotificationTestHelper::setNotificationSettingsForUser($steven, 'ConversationInvites', false, true); $mary = User::getByUsername('mary'); $mary->primaryEmail->emailAddress = '*****@*****.**'; NotificationTestHelper::setNotificationSettingsForUser($mary, 'ConversationInvites', false, false); $conversation = new Conversation(); $conversation->owner = $super; $conversation->subject = 'Test Resolve Conversation Participants'; $conversation->description = 'This is for testing conversation participants.'; $this->assertTrue($conversation->save()); ConversationParticipantsUtil::resolveEmailInvitesByPeople($conversation, array($super, $jack, $steven, $mary)); $this->assertEquals(2, Notification::getCount()); $notifications = Notification::getAll(); $this->assertContains('<h2 class="h2">Join the Conversation</h2>Clark Kent would like you to join a conversation <strong>"Test Resolve Conversation Participants"</strong><br/>', $notifications[0]->notificationMessage->htmlContent); $this->assertContains('Clark Kent would like you to join a conversation "Test Resolve Conversation Participants"', $notifications[0]->notificationMessage->textContent); $this->assertEquals(2, EmailMessage::getCount()); $emailMessages = EmailMessage::getAll(); $this->assertContains('<h2 class="h2">Join the Conversation</h2>Clark Kent would like you to join a conversation <strong>"Test Resolve Conversation Participants"</strong><br/>', $emailMessages[0]->content->htmlContent); $this->assertContains('Powered By <a href="http://www.zurmo.com">Zurmo</a>', $emailMessages[0]->content->htmlContent); $this->assertContains('Clark Kent would like you to join a conversation "Test Resolve Conversation Participants"', $emailMessages[0]->content->textContent); $this->assertContains('Manage your email preferences', $emailMessages[0]->content->textContent); $this->assertEquals('You have been invited to participate in a conversation', $emailMessages[0]->subject); }
/** * Process email invites for participants * (non-PHPdoc) * @see ZurmoControllerUtil::afterSuccessfulSave() */ protected function afterSuccessfulSave($model) { assert('$model instanceof Conversation'); ConversationParticipantsUtil::resolveEmailInvitesByPeople($model, $this->peopleAddedAsConversationParticipants); }
public function actionUpdateParticipants($id) { $postData = PostUtil::getData(); if (isset($postData['ConversationParticipantsForm'])) { $conversation = Conversation::getById((int) $id); $explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::makeBySecurableItem($conversation); $currentUserWasParticipant = ConversationParticipantsUtil::isUserAParticipant($conversation, Yii::app()->user->userModel); $peopleAdded = ConversationParticipantsUtil::resolveConversationHasManyParticipantsFromPost($conversation, $postData['ConversationParticipantsForm'], $explicitReadWriteModelPermissions); ConversationParticipantsUtil::resolveEmailInvitesByPeople($conversation, $peopleAdded); $saved = $conversation->save(); if ($saved) { $success = ExplicitReadWriteModelPermissionsUtil::resolveExplicitReadWriteModelPermissions($conversation, $explicitReadWriteModelPermissions); $currentUserIsParticipant = ConversationParticipantsUtil::isCurrentUserAParticipant($conversation); if ($currentUserWasParticipant && !$currentUserIsParticipant) { echo 'redirectToList'; } } else { throw new FailedToSaveModelException(); } } }