/** * Handle all necessary operations when a user is updated * * @see DB_DataObject::update() */ function update($dataObject = false) { if (isset($this->username)) { $this->username = strtolower($this->username); } return parent::update($dataObject); }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Campaign trackers don't have an account_id, get it from // the parent tracker (stored in the "trackers" table) using // the "trackerid" key -- note, this could equally be done // via the parent campaign, but the end result is the same return parent::getOwningAccountIds('trackers', 'trackerid'); }
/** * Delete all referenced records * * Although it's a public access to this method it shouldn't be called outside * this class. The only reason it's not private is because it needs to be executed * on new objects. * * @return boolean True on success else false * @access public **/ function deleteCascade($linkedRefs, $primaryKey, $parentid) { $result = parent::deleteCascade($linkedRefs, $primaryKey, $parentid); // Delete users or link them to other accounts if ($result) { return $this->_relinkOrDeleteUsers(); } return $result; }
function delete($useWhere = false, $cascadeDelete = true, $parentid = null) { // delete also all permissions linked to this account/user $doAccount_user_permission_assoc = OA_Dal::factoryDO('account_user_permission_assoc'); $doAccount_user_permission_assoc->user_id = $this->user_id; $doAccount_user_permission_assoc->account_id = $this->account_id; if ($useWhere) { $doAccount_user_permission_assoc->_query['condition'] = $this->_query['condition']; } $doAccount_user_permission_assoc->delete($useWhere, false, $parentid); return parent::delete($useWhere, $cascadeDelete, $parentid); }
/** * A private method to return the account ID of the * account that should "own" audit trail entries for * this entity type; NOT related to the account ID * of the currently active account performing an * action. * * @return integer The account ID to insert into the * "account_id" column of the audit trail * database table. */ public function getOwningAccountIds($resetCache = false) { $accountType = OA_Permission::getAccountType(false); switch ($accountType) { case OA_ACCOUNT_ADMIN: return parent::_getOwningAccountIdsByAccountId($accountId = OA_Permission::getAccountId()); case OA_ACCOUNT_ADVERTISER: $parentTable = 'clients'; $parentKeyName = 'clientid'; break; case OA_ACCOUNT_TRAFFICKER: $parentTable = 'affiliates'; $parentKeyName = 'affiliateid'; break; case OA_ACCOUNT_MANAGER: $parentTable = 'agency'; $parentKeyName = 'agencyid'; break; } return $this->_getOwningAccountIds($parentTable, $parentKeyName); }
/** * Handle all necessary operations when a trafficker is deleted * * @see DB_DataObject::delete() */ function delete($useWhere = false, $cascade = true, $parentid = null) { $result = parent::delete($useWhere, $cascade, $parentid); if ($result) { $this->deleteAccount(); } return $result; }
function _formatValue($field, $type = '') { $fieldVal = $this->{$field}; if (is_a($fieldVal, 'DB_DataObject_Cast') && $fieldVal->type == 'blob') { return 'binary data'; } else { parent::_formatValue($field, $type); } }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Variables don't have an account_id, get it from the // parent tracker (stored in the "trackers" table) using // the "trackerid" key return parent::getOwningAccountIds('trackers', 'trackerid'); }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // A channel can be "owned" by a manager account, or // by an advertiser account if (!empty($this->affiliateid)) { // The channel is owned by an advertiser account, but // channels don't have an account_id, so get it from the // parent advertiser account (stored in the "affiliates" // table) using the "affiliateid" key return parent::getOwningAccountIds('affiliates', 'affiliateid'); } // The channel is owned by a manager account, but // channels don't have an account_id, so get it from the // parent manager account (stored in the "agency" table) using // the "agencyid" key return parent::getOwningAccountIds('agency', 'agencyid'); }
function testBoolToStr() { $this->assertEqual(DB_DataObjectCommon::_boolToStr('t'), 'true'); $this->assertEqual(DB_DataObjectCommon::_boolToStr('1'), 'true'); $this->assertEqual(DB_DataObjectCommon::_boolToStr(1), 'true'); $this->assertEqual(DB_DataObjectCommon::_boolToStr(true), 'true'); $this->assertEqual(DB_DataObjectCommon::_boolToStr('true'), 'true'); $this->assertEqual(DB_DataObjectCommon::_boolToStr('f'), 'false'); $this->assertEqual(DB_DataObjectCommon::_boolToStr('0'), 'false'); $this->assertEqual(DB_DataObjectCommon::_boolToStr(0), 'false'); $this->assertEqual(DB_DataObjectCommon::_boolToStr(false), 'false'); $this->assertEqual(DB_DataObjectCommon::_boolToStr('false'), 'false'); }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Banners don't have an account_id, get it from the parent // campaign (stored in the "campaigns" table) using the // "campaignid" key return parent::getOwningAccountIds('campaigns', 'campaignid'); }
function delete($useWhere = false, $cascade = true, $parentid = null) { // Find acls which use this channels $dalAcls = OA_Dal::factoryDAL('acls'); $rsChannel = $dalAcls->getAclsByDataValueType($this->channelid, 'Site:Channel'); $rsChannel->reset(); while ($rsChannel->next()) { // Get the IDs of the banner that's using this channel $bannerId = $rsChannel->get('bannerid'); // Get the remaining channels the banner will use, if any $aChannelIds = explode(',', $rsChannel->get('data')); $aChannelIds = array_diff($aChannelIds, array($this->channelid)); // Prepare to update the banner's limitations in the "acls" table $doAcls = DB_DataObject::factory('acls'); $doAcls->init(); $doAcls->bannerid = $bannerId; $doAcls->executionorder = $rsChannel->get('executionorder'); if (!empty($aChannelIds)) { $doAcls->data = implode(',', $aChannelIds); $doAcls->update(); } else { $doAcls->delete(); } // Re-compile the banner's limitations $aAcls = array(); $doAcls = DB_DataObject::factory('acls'); $doAcls->init(); $doAcls->bannerid = $bannerId; $doAcls->orderBy('executionorder'); $doAcls->find(); while ($doAcls->fetch()) { $aData = $doAcls->toArray(); $deliveryLimitationPlugin = OX_Component::factoryByComponentIdentifier('deliveryLimitations:' . $aData['type']); if ($deliveryLimitationPlugin) { $deliveryLimitationPlugin->init($aData); if ($deliveryLimitationPlugin->isAllowed($page)) { $aAcls[$aData['executionorder']] = $aData; } } } $doBanners = OA_Dal::factoryDO('banners'); $doBanners->bannerid = $bannerId; $doBanners->find(); $doBanners->fetch(); $doBanners->acl_plugins = MAX_AclGetPlugins($aAcls); $doBanners->acls_updated = OA::getNow(); $doBanners->compiledlimitation = MAX_AclGetCompiled($aAcls, $page); $doBanners->update(); } return parent::delete($useWhere, $cascade, $parentid); }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Campaigns don't have an account_id, get it from the parent // advertiser account (stored in the "clients" table) using // the "clientid" key return parent::getOwningAccountIds('clients', 'clientid'); }
/** * Automatically refreshes HTML cache in addition to normal * update() call. * * @see DB_DataObject::update() * @param object $dataObject * @return boolean * @access public */ function update($dataObject = false) { $this->_rebuildCache(); return parent::update($dataObject); }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Delivery limitations don't have an account_id, get it from // the parent banner (stored in the "banners" table) using // the "bannerid" key return parent::getOwningAccountIds('banners', 'bannerid'); }
function insert() { $aConf = $GLOBALS['_MAX']['CONF']; // $this->setEcpmEnabled(); if ($this->priority == self::PRIORITY_ECPM || $this->ecpm_enabled) { $this->ecpm = $this->calculateEcpm(); } // Set the correct campaign status $this->recalculateStatus(); // Set deafult connection windows if not supplied if (!isset($this->viewwindow) && !empty($aConf['logging']['defaultImpressionConnectionWindow'])) { $this->viewwindow = $aConf['logging']['defaultImpressionConnectionWindow']; } if (!isset($this->clickwindow) && !empty($aConf['logging']['defaultClickConnectionWindow'])) { $this->clickwindow = $aConf['logging']['defaultClickConnectionWindow']; } $id = parent::insert(); if (!$id) { return $id; } // Initalise any tracker based plugins $plugins = array(); require_once LIB_PATH . '/Plugin/Component.php'; $invocationPlugins =& OX_Component::getComponents('invocationTags'); foreach ($invocationPlugins as $pluginKey => $plugin) { if (!empty($plugin->trackerEvent)) { $plugins[] = $plugin; } } // Link automatically any trackers which are marked as "link with any new campaigns" $doTrackers = $this->factory('trackers'); $doTrackers->clientid = $this->clientid; $doTrackers->linkcampaigns = 't'; $doTrackers->find(); while ($doTrackers->fetch()) { $doCampaigns_trackers = $this->factory('campaigns_trackers'); $doCampaigns_trackers->init(); $doCampaigns_trackers->trackerid = $doTrackers->trackerid; $doCampaigns_trackers->campaignid = $this->campaignid; $doCampaigns_trackers->clickwindow = $doTrackers->clickwindow; $doCampaigns_trackers->viewwindow = $doTrackers->viewwindow; $doCampaigns_trackers->status = $doTrackers->status; foreach ($plugins as $oPlugin) { $fieldName = strtolower($oPlugin->trackerEvent); $doCampaigns_trackers->{$fieldName} = $doTrackers->{$fieldName}; } $doCampaigns_trackers->insert(); } return $id; }
/** * ON DELETE CASCADE is handled by parent class but we have * to also make sure here that we are handling here: * - zone chaining * - zone appending * * @param boolean $useWhere * @param boolean $cascadeDelete * @return boolean * @see DB_DataObjectCommon::delete() */ function delete($useWhere = false, $cascadeDelete = true, $parentid = null) { // Handle all "appended" zones $doZones = $this->factory('zones'); $doZones->init(); $doZones->appendtype = phpAds_ZoneAppendZone; $doZones->whereAdd("append LIKE '%zone:" . $this->zoneid . "%'"); $doZones->find(); while ($doZones->fetch()) { $doZoneUpdate = clone $doZones; $doZoneUpdate->appendtype = phpAds_ZoneAppendRaw; $doZoneUpdate->append = ''; $doZoneUpdate->update(); } // Handle all "chained" zones $doZones = $this->factory('zones'); $doZones->init(); $doZones->chain = 'zone:' . $this->zoneid; $doZones->find(); while ($doZones->fetch()) { $doZoneUpdate = clone $doZones; $doZoneUpdate->chain = ''; $doZoneUpdate->update(); } return parent::delete($useWhere, $cascadeDelete, $parentid); }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Zones don't have an account_id, get it from the parent // website account (stored in the "affiliates" table) using // the "affiliateid" key return parent::getOwningAccountIds('affiliates', 'affiliateid'); }
function belongsToAccount($accountId = null) { // Set the account ID, if not passed in if (empty($accountId)) { $accountId = OA_Permission::getAccountId(); } $result = parent::belongsToAccount($accountId); if (!$result) { $doAccounts = OA_Dal::staticGetDO('accounts', $accountId); $result = $doAccounts->account_type == OA_ACCOUNT_ADMIN; } return $result; }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Placement/zone associations are a special case, as both the // advertiser and the website accounts should be able to see // the audit entries, so the results of two calls need to be // merged $aAdvertiserAccountIds = array(); if (!empty($this->placement_id)) { // Placement/zone assocs don't have an account_id, get it from // the parent campaign (stored in the "campaigns" table) using // the "placement_id" key $aAdvertiserAccountIds = parent::getOwningAccountIds('campaigns', 'placement_id'); } $aWebsiteAccountIds = array(); if (!empty($this->zone_id)) { // Placement/zone assocs don't have an account_id, get it from // the parent zone (stored in the "zones" table) using // the "zone_id" key $aWebsiteAccountIds = parent::getOwningAccountIds('zones', 'zone_id'); } // Check that the manager account IDs match from the two results if (isset($aAdvertiserAccountIds[OA_ACCOUNT_MANAGER]) && isset($aWebsiteAccountIds[OA_ACCOUNT_MANAGER])) { if ($aAdvertiserAccountIds[OA_ACCOUNT_MANAGER] != $aWebsiteAccountIds[OA_ACCOUNT_MANAGER]) { $message = "Cannot locate owning account IDs for ad/zone association, as manager account IDs, " . "do not match, where ad ID was {$this->ad_id} and zone ID was {$this->zone_id}."; MAX::raiseError($message, PEAR_LOG_ERR); } } // Merge the arrays and return $aResult = array_merge($aAdvertiserAccountIds, $aWebsiteAccountIds); return $aResult; }
/** * A method to return an array of account IDs of the account(s) that * should "own" any audit trail entries for this entity type; these * are NOT related to the account ID of the currently active account * (which is performing some kind of action on the entity), but is * instead related to the type of entity, and where in the account * heirrachy the entity is located. * * @return array An array containing up to three indexes: * - "OA_ACCOUNT_ADMIN" or "OA_ACCOUNT_MANAGER": * Contains the account ID of the manager account * that needs to be able to see the audit trail * entry, or, the admin account, if the entity * is a special case where only the admin account * should see the entry. * - "OA_ACCOUNT_ADVERTISER": * Contains the account ID of the advertiser account * that needs to be able to see the audit trail * entry, if such an account exists. * - "OA_ACCOUNT_TRAFFICKER": * Contains the account ID of the trafficker account * that needs to be able to see the audit trail * entry, if such an account exists. */ function getOwningAccountIds() { // Extra "affiliate" info doesn't have an account_id, get it // from the parent advertiser account (stored in the "affiliates" // table) using the "affiliateid" key return parent::getOwningAccountIds('affiliates', 'affiliateid'); }