protected function makeBuilderPredefinedEmailTemplate($name, $unserializedData, $subject = null, $modelClassName = null, $language = null, $type = null, $isDraft = 0, $textContent = null, $htmlContent = null) { $emailTemplate = new EmailTemplate(); $emailTemplate->type = $type; //EmailTemplate::TYPE_WORKFLOW; $emailTemplate->builtType = EmailTemplate::BUILT_TYPE_BUILDER_TEMPLATE; $emailTemplate->isDraft = $isDraft; $emailTemplate->modelClassName = $modelClassName; $emailTemplate->name = $name; if (empty($subject)) { $subject = $name; } $emailTemplate->subject = $subject; if (!isset($language)) { $language = Yii::app()->languageHelper->getForCurrentUser(); } $emailTemplate->language = $language; $emailTemplate->htmlContent = $htmlContent; $emailTemplate->textContent = $textContent; $emailTemplate->serializedData = CJSON::encode($unserializedData); $emailTemplate->addPermissions(Group::getByName(Group::EVERYONE_GROUP_NAME), Permission::READ_WRITE_CHANGE_PERMISSIONS_CHANGE_OWNER); $saved = $emailTemplate->save(false); if (!$saved) { throw new FailedToSaveModelException(); } $emailTemplate = EmailTemplate::getById($emailTemplate->id); ReadPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($emailTemplate, Group::getByName(Group::EVERYONE_GROUP_NAME)); $saved = $emailTemplate->save(false); assert('$saved'); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; ReadPermissionsOptimizationUtil::rebuild(); //Add the nobody user to an account, but only read only. $nobody = User::getByUsername('nobody'); $account = AccountTestHelper::createAccountByNameForOwner('superAccountReadableByNobody', Yii::app()->user->userModel); $account->addPermissions($nobody, Permission::READ, Permission::ALLOW); assert($account->save()); // Not Coding Standard ReadPermissionsOptimizationUtil::securableItemGivenPermissionsForUser($account, $nobody); //Give the nobody user rights to the accounts module. $nobody->setRight('AccountsModule', AccountsModule::RIGHT_ACCESS_ACCOUNTS); $nobody->setRight('AccountsModule', AccountsModule::RIGHT_CREATE_ACCOUNTS); assert($nobody->save()); // Not Coding Standard $everyoneGroup = Group::getByName(Group::EVERYONE_GROUP_NAME); assert($everyoneGroup->save()); // Not Coding Standard $group1 = new Group(); $group1->name = 'Group1'; assert($group1->save()); // Not Coding Standard }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); SecurityTestHelper::createUsers(); $super = User::getByUsername('super'); $super->primaryEmail->emailAddress = '*****@*****.**'; $saved = $super->save(); if (!$saved) { throw new FailedToSaveModelException(); } MarketingListTestHelper::createMarketingListByName('testMarketingList'); $campaign = CampaignTestHelper::createCampaign('testCampaign', 'testSubject', 'testContent'); $contact = ContactTestHelper::createContactByNameForOwner('test', $super); $emailMessage = EmailMessageTestHelper::createArchivedUnmatchedSentMessage($super); $campaignItem = new CampaignItem(); $campaignItem->contact = $contact; $campaignItem->processed = true; $campaignItem->campaign = $campaign; $campaignItem->emailMessage = $emailMessage; $campaignItem->unrestrictedSave(); if (!$saved) { throw new FailedToSaveModelException(); } ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); SecurityTestHelper::createUsers(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('superAccount', $super); $account2 = AccountTestHelper::createAccountByNameForOwner('superAccount2', $super); $contact1 = ContactTestHelper::createContactWithAccountByNameForOwner('superContact', $super, $account); $contact2 = ContactTestHelper::createContactWithAccountByNameForOwner('superContact2', $super, $account2); $contact3 = ContactTestHelper::createContactWithAccountByNameForOwner('superContact3', $super, $account); $contact4 = ContactTestHelper::createContactWithAccountByNameForOwner('superContact4', $super, $account2); $contact5 = ContactTestHelper::createContactWithAccountByNameForOwner('superContact5', $super, $account); $marketingList1 = MarketingListTestHelper::createMarketingListByName('MarketingList1', 'MarketingList Description1'); $marketingList2 = MarketingListTestHelper::createMarketingListByName('MarketingList2', 'MarketingList Description2'); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList1, $contact1); MarketingListMemberTestHelper::createMarketingListMember(1, $marketingList1, $contact2); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList1, $contact3); MarketingListMemberTestHelper::createMarketingListMember(1, $marketingList1, $contact4); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList1, $contact5); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList2, $contact1); MarketingListMemberTestHelper::createMarketingListMember(1, $marketingList2, $contact2); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); SecurityTestHelper::createUsers(); // set up data owned by super Yii::app()->user->userModel = User::getByUsername('super'); $account1 = AccountTestHelper::createAccountByNameForOwner('account1', Yii::app()->user->userModel); $contact1 = ContactTestHelper::createContactWithAccountByNameForOwner('contact1', Yii::app()->user->userModel, $account1); $contact2 = ContactTestHelper::createContactWithAccountByNameForOwner('contact2', Yii::app()->user->userModel, $account1); $contact3 = ContactTestHelper::createContactWithAccountByNameForOwner('contact3', Yii::app()->user->userModel, $account1); $marketingList1 = MarketingListTestHelper::createMarketingListByName('MarketingList1'); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList1, $contact1); MarketingListMemberTestHelper::createMarketingListMember(1, $marketingList1, $contact2); $member1 = MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList1, $contact3); static::$superUserMarketingListId = $marketingList1->id; static::$superUserMemberId = $member1->id; // set up data owned by nobody Yii::app()->user->userModel = UserTestHelper::createBasicUser('nobody'); $account2 = AccountTestHelper::createAccountByNameForOwner('account2', Yii::app()->user->userModel); $contact4 = ContactTestHelper::createContactWithAccountByNameForOwner('contact4', Yii::app()->user->userModel, $account2); $contact5 = ContactTestHelper::createContactWithAccountByNameForOwner('contact5', Yii::app()->user->userModel, $account2); $contact6 = ContactTestHelper::createContactWithAccountByNameForOwner('contact6', Yii::app()->user->userModel, $account2); $marketingList2 = MarketingListTestHelper::createMarketingListByName('MarketingList2'); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList2, $contact4); $member2 = MarketingListMemberTestHelper::createMarketingListMember(1, $marketingList2, $contact5); MarketingListMemberTestHelper::createMarketingListMember(0, $marketingList2, $contact6); static::$regularUserMarketingListId = $marketingList2->id; static::$regularUserMemberId = $member2->id; ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); ZurmoDatabaseCompatibilityUtil::dropStoredFunctionsAndProcedures(); SecurityTestHelper::createSuperAdmin(); SecurityTestHelper::createUsers(); SecurityTestHelper::createGroups(); SecurityTestHelper::createRoles(); RedBeanModel::forgetAll(); //do the rebuild to ensure the tables get created properly. ReadPermissionsOptimizationUtil::rebuild(); //Manually build the test model munge tables. ReadPermissionsOptimizationUtil::recreateTable(ReadPermissionsOptimizationUtil::getMungeTableName('OwnedSecurableTestItem')); ReadPermissionsOptimizationUtil::recreateTable(ReadPermissionsOptimizationUtil::getMungeTableName('OwnedSecurableTestItem2')); $benny = User::getByUsername('benny'); $model = new OwnedSecurableTestItem(); $model->member = 'test'; assert($model->save()); // Not Coding Standard $model = new OwnedSecurableTestItem(); $model->member = 'test2'; assert($model->save()); // Not Coding Standard $model = new OwnedSecurableTestItem(); $model->member = 'test3'; $model->owner = $benny; assert($model->save()); // Not Coding Standard assert(OwnedSecurableTestItem::getCount() == 3); // Not Coding Standard $model = new OwnedSecurableTestItem2(); $model->member = 'test5'; assert($model->save()); // Not Coding Standard }
/** * Takes post data and prepares it for setting the membership on the group. * Adds and removes users to group based on a form's userMembershipData * @return boolean. True if membership was set successfully. */ public static function setMembershipFromForm($form, $group) { assert('$group instanceof Group'); assert('$form instanceof GroupUserMembershipForm'); $removedUsers = array(); $addedUsers = array(); foreach ($group->users as $index => $user) { if (empty($form->userMembershipData[$user->id])) { $group->users->removeByIndex($index); $removedUsers[] = $user; } } $users = GroupUserMembershipFormUtil::makeUsersFromUserMembershipData($form->userMembershipData); foreach ($users as $user) { if (!$group->users->contains($user)) { $group->users->add($user); $addedUsers[] = $user; } } $group->save(); foreach ($removedUsers as $user) { ReadPermissionsOptimizationUtil::userRemovedFromGroup($group, $user); } foreach ($addedUsers as $user) { ReadPermissionsOptimizationUtil::userAddedToGroup($group, $user); } return true; }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); ReadPermissionsOptimizationUtil::rebuild(); $box = EmailBox::resolveAndGetByName(EmailBox::NOTIFICATIONS_NAME); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = User::getByUsername('super'); ReadPermissionsOptimizationUtil::rebuild(); SecurityTestHelper::createUsers(); $billy = User::getByUsername('billy'); EmailMessageTestHelper::createEmailAccount($billy); $billy->setRight('ContactsModule', ContactsModule::RIGHT_ACCESS_CONTACTS); $billy->setRight('ContactsModule', ContactsModule::RIGHT_CREATE_CONTACTS); $billy->setRight('ContactsModule', ContactsModule::RIGHT_DELETE_CONTACTS); assert($billy->save()); // Not Coding Standard $contact = ContactTestHelper::createContactByNameForOwner('sally', Yii::app()->user->userModel); $contact->primaryEmail = new Email(); $contact->primaryEmail->emailAddress = '*****@*****.**'; $contact->secondaryEmail->emailAddress = '*****@*****.**'; $contact->addPermissions($billy, Permission::READ); $contact->addPermissions($billy, Permission::WRITE); $contact->save(); $molly = ContactTestHelper::createContactByNameForOwner('molly', User::getByUsername('bobby')); $molly->primaryEmail = new Email(); $molly->primaryEmail->emailAddress = '*****@*****.**'; $molly->secondaryEmail->emailAddress = '*****@*****.**'; $contact->save(); ReadPermissionsOptimizationUtil::securableItemGivenPermissionsForUser($contact, $billy); }
public function makeAll(&$demoDataHelper) { assert('$demoDataHelper instanceof DemoDataHelper'); assert('$demoDataHelper->isSetRange("User")'); $missions = array(); foreach (self::getMissionData() as $randomMissionData) { $postData = array(); $mission = new Mission(); $mission->setScenario('importModel'); $mission->status = Mission::STATUS_AVAILABLE; $mission->owner = $demoDataHelper->getRandomByModelName('User'); $mission->createdByUser = $mission->owner; $mission->description = $randomMissionData['description']; $mission->reward = $randomMissionData['reward']; //Add some comments foreach ($randomMissionData['comments'] as $commentDescription) { $comment = new Comment(); $comment->setScenario('importModel'); $comment->createdByUser = $demoDataHelper->getRandomByModelName('User'); $comment->description = $commentDescription; $mission->comments->add($comment); } $mission->addPermissions(Group::getByName(Group::EVERYONE_GROUP_NAME), Permission::READ_WRITE); $saved = $mission->save(); assert('$saved'); $mission = Mission::getById($mission->id); ReadPermissionsOptimizationUtil::securableItemGivenPermissionsForGroup($mission, Group::getByName(Group::EVERYONE_GROUP_NAME)); $mission->save(); $missions[] = $mission->id; } $demoDataHelper->setRangeByModelName('Mission', $missions[0], $missions[count($missions) - 1]); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $nobody = UserTestHelper::createBasicUser('nobody'); $nobody->setRight('MarketingListsModule', MarketingListsModule::getAccessRight()); $saved = $nobody->save(); static::assertTrue($saved); Yii::app()->user->userModel = $nobody; //Setup test data owned by the super user. $account = AccountTestHelper::createAccountByNameForOwner('nobodyAccount', $nobody); $marketingList1 = MarketingListTestHelper::createMarketingListByName('MarketingList1', 'MarketingList Description1'); $marketingList2 = MarketingListTestHelper::createMarketingListByName('MarketingList2', 'MarketingList Description2'); for ($i = 0; $i < 17; $i++) { if ($i % 2) { $unsubscribed = 0; } else { $unsubscribed = 1; } $contact1 = ContactTestHelper::createContactWithAccountByNameForOwner('nobodyContact1' . $i, $nobody, $account); $contact2 = ContactTestHelper::createContactWithAccountByNameForOwner('nobodyContact2' . $i, $nobody, $account); MarketingListMemberTestHelper::createMarketingListMember($unsubscribed, $marketingList1, $contact1); MarketingListMemberTestHelper::createMarketingListMember($unsubscribed, $marketingList2, $contact2); } ReadPermissionsOptimizationUtil::rebuild(); }
public function actionRebuildMunge() { ReadPermissionsOptimizationUtil::rebuild(); echo Zurmo::t('ZurmoModule', 'Read permissions rebuild complete.') . "<BR>"; if (SHOW_QUERY_DATA) { echo PageView::makeShowQueryDataContent(); } }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); // Setup test data owned by the super user. static::$templateOwnedBySuper = EmailTemplateTestHelper::create('Test Name1', 'Test Subject1', 'Contact', 'Test HtmlContent1', 'Test TextContent1'); UserTestHelper::createBasicUser('nobody'); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; //Setup test data owned by the super user. ReadPermissionsOptimizationUtil::rebuild(); $simpleUser = UserTestHelper::createBasicUser('simpleUser'); }
public function testGetMungeIdsByUserIncludesEveryoneGroup() { Yii::app()->user->userModel = User::getByUsername('super'); $mungeIds = ReadPermissionsOptimizationUtil::getMungeIdsByUser(Yii::app()->user->userModel); $this->assertEquals(2, count($mungeIds)); $group = Group::getByName(Group::EVERYONE_GROUP_NAME); $group->save(); $mungeIds = ReadPermissionsOptimizationUtil::getMungeIdsByUser(Yii::app()->user->userModel); $this->assertEquals(3, count($mungeIds)); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; self::$asynchronusThreshold = ExportModule::$asynchronusThreshold; ExportModule::$asynchronusThreshold = 5; ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; UserTestHelper::createBasicUser('nobody'); static::$listOwnedBySuper = MarketingListTestHelper::createMarketingListByName('MarketingListName', 'MarketingList Description'); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); ZurmoDatabaseCompatibilityUtil::dropStoredFunctionsAndProcedures(); SecurityTestHelper::createSuperAdmin(); //do the rebuild to ensure the tables get created properly. AllPermissionsOptimizationUtil::rebuild(); //Manually build the test model munge tables. ReadPermissionsOptimizationUtil::recreateTable(ReadPermissionsOptimizationUtil::getMungeTableName('OwnedSecurableTestItem')); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; MarketingListTestHelper::createMarketingListByName('MarketingListName', 'MarketingList Description', 'first', '*****@*****.**'); MarketingListTestHelper::createMarketingListByName('MarketingListName2', 'MarketingList Description2', 'second', '*****@*****.**'); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; UserTestHelper::createBasicUser('nobody'); MarketingListTestHelper::createMarketingListByName('MarketingListName', 'MarketingList Description', 'first', '*****@*****.**'); static::$campaignOwnedBySuper = CampaignTestHelper::createCampaign('campaign01', 'campaign subject 01', 'text content for campaign 01', 'html content for campaign 01', 'fromCampaign', '*****@*****.**'); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; UserTestHelper::createBasicUser('nobody'); // Setup test data owned by the super user. static::$templateOwnedBySuper = EmailTemplateTestHelper::createEmailTemplateByName(EmailTemplate::TYPE_CONTACT, 'Test Subject1', 'Contact', 'Test Name1', 'Test HtmlContent1', 'Test TextContent1'); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); ZurmoDatabaseCompatibilityUtil::dropStoredFunctionsAndProcedures(); SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = User::getByUsername('super'); SecurityTestHelper::createUsers(); SecurityTestHelper::createGroups(); SecurityTestHelper::createAccounts(); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = $super; ReadPermissionsOptimizationUtil::rebuild(); ContactsModule::loadStartingData(); //Setup test data owned by the super user. AccountTestHelper::createAccountByNameForOwner('Dinamite', $super); AccountTestHelper::createAccountByNameForOwner('dino', $super); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); //Setup test data owned by the super user. AccountTestHelper::createAccountByNameForOwner('superAccount', Yii::app()->user->userModel); AccountTestHelper::createAccountByNameForOwner('superAccount2', Yii::app()->user->userModel); AccountTestHelper::createAccountByNameForOwner('superAccount3', Yii::app()->user->userModel); AccountTestHelper::createAccountByNameForOwner('superAccount4', Yii::app()->user->userModel); //Setup default dashboard. Dashboard::getByLayoutIdAndUser(Dashboard::DEFAULT_USER_LAYOUT_ID, Yii::app()->user->userModel); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = Yii::app()->user->userModel; //Setup test data owned by the super user. LeadTestHelper::createLeadbyNameForOwner('superLead', $super); LeadTestHelper::createLeadbyNameForOwner('superLead2', $super); LeadTestHelper::createLeadbyNameForOwner('superLead3', $super); LeadTestHelper::createLeadbyNameForOwner('superLead4', $super); //Setup default dashboard. Dashboard::getByLayoutIdAndUser(Dashboard::DEFAULT_USER_LAYOUT_ID, $super); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = Yii::app()->user->userModel; //Setup test data owned by the super user. ContactWebFormTestHelper::createContactWebFormByName("Web Form 1"); ContactWebFormTestHelper::createContactWebFormByName("Web Form 2"); ContactWebFormTestHelper::createContactWebFormByName("Web Form 3"); ContactWebFormTestHelper::createContactWebFormByName("Web Form 4"); //Setup default dashboard. Dashboard::getByLayoutIdAndUser(Dashboard::DEFAULT_USER_LAYOUT_ID, $super); ReadPermissionsOptimizationUtil::rebuild(); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = User::getByUsername('super'); ReadPermissionsOptimizationUtil::rebuild(); $steven = UserTestHelper::createBasicUser('steven'); //Give user access, create, delete for conversation rights. $steven->setRight('ConversationsModule', ConversationsModule::RIGHT_ACCESS_CONVERSATIONS); $steven->setRight('ConversationsModule', ConversationsModule::RIGHT_CREATE_CONVERSATIONS); $steven->setRight('ConversationsModule', ConversationsModule::RIGHT_DELETE_CONVERSATIONS); $steven->save(); }
protected function addReadOptimizationWhereClause(&$where, $whereKey, $tableAliasName) { assert('is_array($where)'); assert('is_int($whereKey)'); assert('is_string($tableAliasName)'); $q = DatabaseCompatibilityUtil::getQuote(); $columnWithTableAlias = self::makeColumnNameWithTableAlias($tableAliasName, $this->modelAttributeToDataProviderAdapter->getColumnName()); $mungeTableName = ReadPermissionsOptimizationUtil::getMungeTableName($this->modelAttributeToDataProviderAdapter->getModelClassName()); $mungeIds = ReadPermissionsOptimizationUtil::getMungeIdsByUser(Yii::app()->user->userModel); $whereContent = $columnWithTableAlias . " " . SQLOperatorUtil::getOperatorByType('equals') . " "; $whereContent .= "(select securableitem_id from {$q}{$mungeTableName}{$q} " . "where {$q}securableitem_id{$q} = {$columnWithTableAlias} and {$q}munge_id{$q}" . " in ('" . join("', '", $mungeIds) . "') limit 1)"; $where[$whereKey] = $whereContent; }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = Yii::app()->user->userModel; //Setup test data owned by the super user. ProductTestHelper::createProductByNameForOwner("My Product 1", $super); ProductTestHelper::createProductByNameForOwner("My Product 2", $super); ProductTestHelper::createProductByNameForOwner("My Product 3", $super); ProductTestHelper::createProductByNameForOwner("My Product 4", $super); //Setup default dashboard. Dashboard::getByLayoutIdAndUser(Dashboard::DEFAULT_USER_LAYOUT_ID, $super); ReadPermissionsOptimizationUtil::rebuild(); }