/** * @param int $partnerId * @param string $objectType * @return AuditTrailConfig */ protected static function getAuditTrailConfig($partnerId, $objectType) { $config = null; if (isset(self::$cachedPartnerConfig[$partnerId])) { $config = self::$cachedPartnerConfig[$partnerId]; } else { $cacheFolder = kConf::get("cache_root_path") . "/audit"; if (!is_dir($cacheFolder)) { mkdir($cacheFolder, 0777); } $cachePath = "{$cacheFolder}/{$partnerId}.cfg"; if (file_exists($cachePath)) { $config = unserialize(file_get_contents($cachePath)); } else { $auditTrailConfigs = AuditTrailConfigPeer::retrieveByPartnerId($partnerId); $config = array(); if (count($auditTrailConfigs)) { foreach ($auditTrailConfigs as $auditTrailConfig) { $config[$auditTrailConfig->getObjectType()] = $auditTrailConfig; } } file_put_contents($cachePath, serialize($config)); } self::$cachedPartnerConfig[$partnerId] = $config; } if (!isset($config[$objectType])) { KalturaLog::info("Object type [{$objectType}] not audited"); return null; } return $config[$objectType]; }
/** * Retrieve multiple objects by partner id. * * @param string $objectType * @param int $partnerId * @param PropelPDO $con the connection to use * @return AuditTrailConfig */ public static function retrieveByObjectType($objectType, $partnerId = null, PropelPDO $con = null) { $criteria = new Criteria(); $criteria->add(AuditTrailConfigPeer::OBJECT_TYPE, $objectType); if (!is_null($partnerId)) { $criteria->add(AuditTrailConfigPeer::PARTNER_ID, $partnerId); } return AuditTrailConfigPeer::doSelectOne($criteria, $con); }
public static function cleanMemory() { AuditTrailPeer::clearInstancePool(); AuditTrailConfigPeer::clearInstancePool(); // AuditTrailDataPeer::clearInstancePool(); }
/** * Exports the object as an array. * * You can specify the key type of the array by passing one of the class * type constants. * * @param string $keyType (optional) One of the class type constants BasePeer::TYPE_PHPNAME, BasePeer::TYPE_STUDLYPHPNAME * BasePeer::TYPE_COLNAME, BasePeer::TYPE_FIELDNAME, BasePeer::TYPE_NUM. Defaults to BasePeer::TYPE_PHPNAME. * @param boolean $includeLazyLoadColumns (optional) Whether to include lazy loaded columns. Defaults to TRUE. * @return an associative array containing the field names (as keys) and field values */ public function toArray($keyType = BasePeer::TYPE_PHPNAME, $includeLazyLoadColumns = true) { $keys = AuditTrailConfigPeer::getFieldNames($keyType); $result = array($keys[0] => $this->getId(), $keys[1] => $this->getPartnerId(), $keys[2] => $this->getObjectType(), $keys[3] => $this->getDescriptors(), $keys[4] => $this->getActions()); return $result; }
/** * Retrieve multiple objects by pkey. * * @param array $pks List of primary keys * @param PropelPDO $con the connection to use * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function retrieveByPKs($pks, PropelPDO $con = null) { $objs = null; if (empty($pks)) { $objs = array(); } else { $criteria = new Criteria(AuditTrailConfigPeer::DATABASE_NAME); $criteria->add(AuditTrailConfigPeer::ID, $pks, Criteria::IN); $objs = AuditTrailConfigPeer::doSelect($criteria, $con); } return $objs; }
<?php $partnerId = 1; chdir(dirname(__FILE__)); require_once dirname(__FILE__) . '/../bootstrap.php'; $objectsToTrack = array(KalturaAuditTrailObjectType::ACCESS_CONTROL => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED), 'descriptors' => array(accessControlPeer::NAME, accessControlPeer::SITE_RESTRICT_TYPE, accessControlPeer::SITE_RESTRICT_LIST, accessControlPeer::COUNTRY_RESTRICT_TYPE, accessControlPeer::COUNTRY_RESTRICT_LIST, accessControlPeer::KS_RESTRICT_PRIVILEGE, accessControlPeer::PRV_RESTRICT_PRIVILEGE, accessControlPeer::PRV_RESTRICT_LENGTH, accessControlPeer::KDIR_RESTRICT_TYPE)), KalturaAuditTrailObjectType::CONVERSION_PROFILE_2 => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED), 'descriptors' => array(conversionProfile2Peer::NAME)), KalturaAuditTrailObjectType::ENTRY => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::COPIED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED, KalturaAuditTrailAction::VIEWED, KalturaAuditTrailAction::CONTENT_VIEWED, KalturaAuditTrailAction::RELATION_ADDED, KalturaAuditTrailAction::RELATION_REMOVED), 'descriptors' => array(entryPeer::NAME, entryPeer::TAGS, entryPeer::STATUS, entryPeer::LENGTH_IN_MSECS, entryPeer::PARTNER_DATA, entryPeer::ADMIN_TAGS, entryPeer::MODERATION_STATUS, entryPeer::PUSER_ID, entryPeer::ACCESS_CONTROL_ID, entryPeer::CONVERSION_PROFILE_ID, entryPeer::CATEGORIES, entryPeer::START_DATE, entryPeer::END_DATE, entryPeer::FLAVOR_PARAMS_IDS, entryPeer::AVAILABLE_FROM, "conversion_quality", "current_kshow_version", "encodingIP1", "encodingIP2", "streamUsername", "streamPassword", "streamRemoteId", "streamRemoteBackupId", "streamUrl", "streamBitrates", "ismVersion", "dynamicFlavorAttributes", "height", "width", "puserId", "thumb_offset")), KalturaAuditTrailObjectType::FLAVOR_ASSET => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED, KalturaAuditTrailAction::VIEWED, KalturaAuditTrailAction::CONTENT_VIEWED, KalturaAuditTrailAction::RELATION_ADDED, KalturaAuditTrailAction::RELATION_REMOVED), 'descriptors' => array(assetPeer::TAGS, assetPeer::FLAVOR_PARAMS_ID, assetPeer::STATUS, assetPeer::VERSION, assetPeer::WIDTH, assetPeer::HEIGHT, assetPeer::BITRATE, assetPeer::FRAME_RATE, assetPeer::SIZE, assetPeer::FILE_EXT, assetPeer::CONTAINER_FORMAT, assetPeer::VIDEO_CODEC_ID)), KalturaAuditTrailObjectType::FLAVOR_PARAMS_CONVERSION_PROFILE => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED), 'descriptors' => array(flavorParamsConversionProfilePeer::READY_BEHAVIOR, flavorParamsConversionProfilePeer::FORCE_NONE_COMPLIED)), KalturaAuditTrailObjectType::KSHOW_KUSER => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED), 'descriptors' => array(KshowKuserPeer::SUBSCRIPTION_TYPE, KshowKuserPeer::ALERT_TYPE)), KalturaAuditTrailObjectType::MEDIA_INFO => array('actions' => array(KalturaAuditTrailAction::CREATED), 'descriptors' => array()), KalturaAuditTrailObjectType::PARTNER => array('actions' => array(KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED), 'descriptors' => array(PartnerPeer::PARTNER_NAME, PartnerPeer::URL1, PartnerPeer::URL2, PartnerPeer::ADMIN_NAME, PartnerPeer::ADMIN_EMAIL, PartnerPeer::NOTIFY, PartnerPeer::STATUS, PartnerPeer::ADULT_CONTENT, "allowQuickEdit", "defConversionProfileType", "curConvProfType", "defaultAccessControlId", "defaultConversionProfileId", "notificationsConfig", "allowMultiNotification", "defThumbOffset", "host", "forceCdnHost", "rtmpUrl", "iisHost", "landingPage", "userLandingPage")), KalturaAuditTrailObjectType::METADATA => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED), 'descriptors' => array(MetadataPeer::VERSION, MetadataPeer::STATUS)), KalturaAuditTrailObjectType::METADATA_PROFILE => array('actions' => array(KalturaAuditTrailAction::CREATED, KalturaAuditTrailAction::CHANGED, KalturaAuditTrailAction::DELETED), 'descriptors' => array(MetadataProfilePeer::VERSION, MetadataProfilePeer::STATUS))); KalturaLog::setLogger(new KalturaStdoutLogger()); $dbConf = kConf::getDB(); DbManager::setConfig($dbConf); DbManager::initialize(); $partner = PartnerPeer::retrieveByPK($partnerId); $partner->setPluginEnabled(AuditPlugin::PLUGIN_NAME, true); $partner->save(); foreach ($objectsToTrack as $objectType => $objectConfig) { $actions = implode(',', $objectConfig['actions']); $descriptors = isset($objectConfig['descriptors']) ? implode(',', $objectConfig['descriptors']) : null; $auditTrailConfig = AuditTrailConfigPeer::retrieveByObjectType($objectType, $partnerId); if (!$auditTrailConfig) { $auditTrailConfig = new AuditTrailConfig(); $auditTrailConfig->setPartnerId($partnerId); } $auditTrailConfig->setObjectType($objectType); $auditTrailConfig->setActions($actions); $auditTrailConfig->setDescriptors($descriptors); $auditTrailConfig->save(); }