示例#1
0
 public static function logAuditEvent($moduleName, $eventName, $data = null, RedBeanModel $model = null, User $user = null)
 {
     assert('is_string($moduleName) && $moduleName != ""');
     assert('is_string($eventName)  && $eventName  != ""');
     if ($user === null) {
         $user = Yii::app()->user->userModel;
         if (!$user instanceof User) {
             throw new NoCurrentUserSecurityException();
         }
     }
     if ($eventName == "Item Viewed") {
         AuditEventsRecentlyViewedUtil::resolveNewRecentlyViewedModel($data[1], $model, AuditEventsRecentlyViewedUtil::RECENTLY_VIEWED_COUNT + 1);
     }
     if ($eventName == "Item Deleted") {
         $modelClassName = get_class($model);
         AuditEventsRecentlyViewedUtil::deleteModelFromRecentlyViewed($modelClassName::getModuleClassName(), $model);
     }
     if (!AuditEvent::$isTableOptimized && !AUDITING_OPTIMIZED) {
         $auditEvent = new AuditEvent();
         $auditEvent->dateTime = DateTimeUtil::convertTimestampToDbFormatDateTime(time());
         $auditEvent->moduleName = $moduleName;
         $auditEvent->eventName = $eventName;
         $auditEvent->user = $user;
         $auditEvent->modelClassName = $model !== null ? get_class($model) : null;
         $auditEvent->modelId = $model !== null ? $model->id : null;
         $auditEvent->serializedData = serialize($data);
         $saved = $auditEvent->save();
         AuditEvent::$isTableOptimized = true;
     } else {
         $sql = "insert into auditevent (datetime,\n                                                modulename,\n                                                eventname,\n                                                _user_id,\n                                                modelclassname,\n                                                modelid,\n                                                serializeddata)\n                        values ('" . DateTimeUtil::convertTimestampToDbFormatDateTime(time()) . "',\n                                '{$moduleName}',\n                                '{$eventName}',\n                                {$user->id}, " . ($model !== null ? "'" . get_class($model) . "', " : 'null, ') . ($model !== null ? "{$model->id}, " : 'null, ') . ":data)";
         ZurmoRedBean::exec($sql, array('data' => serialize($data))) !== null;
         $saved = true;
     }
     return $saved;
 }