Beispiel #1
0
 /**
  *
  */
 public function mail()
 {
     $conf = Config::getSystemConfig();
     if (!empty($conf->general->logrecipient)) {
         \Logger::debug(get_class($this) . ": detected log recipient:" . $conf->general->logrecipient);
         $user = User::getById($conf->general->logrecipient);
         \Logger::debug(get_class($this) . ": detected log recipient:" . $user->getEmail());
         if ($user instanceof User && $user->isAdmin()) {
             $email = $user->getEmail();
             \Logger::debug(get_class($this) . ": user is valid");
             if (!empty($email)) {
                 if (is_dir(PIMCORE_LOG_MAIL_TEMP)) {
                     \Logger::debug(get_class($this) . ": detected mail log dir");
                     \Logger::debug(get_class($this) . ": opening dir " . PIMCORE_LOG_MAIL_TEMP);
                     if ($handle = opendir(PIMCORE_LOG_MAIL_TEMP)) {
                         \Logger::debug(get_class($this) . ": reading dir " . PIMCORE_LOG_MAIL_TEMP);
                         while (false !== ($file = readdir($handle))) {
                             \Logger::debug(get_class($this) . ": detected file " . $file);
                             if (is_file(PIMCORE_LOG_MAIL_TEMP . "/" . $file) and is_writable(PIMCORE_LOG_MAIL_TEMP . "/" . $file)) {
                                 $now = time();
                                 $threshold = 1 * 60 * 15;
                                 $fileModified = filemtime(PIMCORE_LOG_MAIL_TEMP . "/" . $file);
                                 \Logger::debug(get_class($this) . ": file is writeable and was last modified: " . $fileModified);
                                 if ($fileModified !== FALSE and $fileModified < $now - $threshold) {
                                     $mail = Tool::getMail(array($email), "pimcore log notification - " . $file);
                                     $mail->setIgnoreDebugMode(true);
                                     $mail->setBodyText(file_get_contents(PIMCORE_LOG_MAIL_TEMP . "/" . $file));
                                     $mail->send();
                                     @unlink(PIMCORE_LOG_MAIL_TEMP . "/" . $file);
                                     \Logger::debug(get_class($this) . ": sent mail and deleted temp log file " . $file);
                                 } else {
                                     if ($fileModified > $now - $threshold) {
                                         \Logger::debug(get_class($this) . ": leaving temp log file alone because file [ {$file} ] was written to within the last 15 minutes");
                                     }
                                 }
                             }
                         }
                     }
                 }
             } else {
                 \Logger::err(get_class($this) . ": Cannot send mail to configured log user [" . $user->getName() . "] because email is empty");
             }
         } else {
             \Logger::err(get_class($this) . ": Cannot send mail to configured log user. User is either null or not an admin");
         }
     } else {
         \Logger::debug(get_class($this) . ": No log recipient configured");
     }
 }
Beispiel #2
0
 /**
  * @static
  * @throws Exception
  * @return User
  */
 public static function authenticateSession()
 {
     if (!isset($_COOKIE["pimcore_admin_sid"]) && !isset($_REQUEST["pimcore_admin_sid"])) {
         // if no session cookie / ID no authentication possible, we don't need to start a session
         return null;
     }
     $session = Session::getReadOnly();
     $user = $session->user;
     if ($user instanceof User) {
         // renew user
         $user = User::getById($user->getId());
         if (self::isValidUser($user)) {
             return $user;
         }
     }
     return null;
 }
Beispiel #3
0
 public function getTokenLoginLinkAction()
 {
     $user = User::getById($this->getParam("id"));
     if ($user->isAdmin() && !$this->getUser()->isAdmin()) {
         throw new \Exception("Only admin users are allowed to login as an admin user");
     }
     if ($user) {
         $token = Tool\Authentication::generateToken($user->getName(), $user->getPassword());
         $r = $this->getRequest();
         $link = $r->getScheme() . "://" . $r->getHttpHost() . "/admin/login/login/?username="******"&token=" . $token;
         $this->_helper->json(["link" => $link]);
     }
 }
Beispiel #4
0
 public function noteListAction()
 {
     $this->checkPermission("notes_events");
     $list = new Element\Note\Listing();
     $list->setLimit($this->getParam("limit"));
     $list->setOffset($this->getParam("start"));
     $sortingSettings = \Pimcore\Admin\Helper\QueryParams::extractSortingSettings($this->getAllParams());
     if ($sortingSettings['orderKey'] && $sortingSettings['order']) {
         $list->setOrderKey($sortingSettings['orderKey']);
         $list->setOrder($sortingSettings['order']);
     } else {
         $list->setOrderKey(["date", "id"]);
         $list->setOrder(["DESC", "DESC"]);
     }
     $conditions = [];
     if ($this->getParam("filter")) {
         $conditions[] = "(`title` LIKE " . $list->quote("%" . $this->getParam("filter") . "%") . " OR `description` LIKE " . $list->quote("%" . $this->getParam("filter") . "%") . " OR `type` LIKE " . $list->quote("%" . $this->getParam("filter") . "%") . ")";
     }
     if ($this->getParam("cid") && $this->getParam("ctype")) {
         $conditions[] = "(cid = " . $list->quote($this->getParam("cid")) . " AND ctype = " . $list->quote($this->getParam("ctype")) . ")";
     }
     if (!empty($conditions)) {
         $list->setCondition(implode(" AND ", $conditions));
     }
     $list->load();
     $notes = [];
     foreach ($list->getNotes() as $note) {
         $cpath = "";
         if ($note->getCid() && $note->getCtype()) {
             if ($element = Element\Service::getElementById($note->getCtype(), $note->getCid())) {
                 $cpath = $element->getRealFullPath();
             }
         }
         $e = ["id" => $note->getId(), "type" => $note->getType(), "cid" => $note->getCid(), "ctype" => $note->getCtype(), "cpath" => $cpath, "date" => $note->getDate(), "title" => $note->getTitle(), "description" => $note->getDescription()];
         // prepare key-values
         $keyValues = [];
         if (is_array($note->getData())) {
             foreach ($note->getData() as $name => $d) {
                 $type = $d["type"];
                 $data = $d["data"];
                 if ($type == "document" || $type == "object" || $type == "asset") {
                     if ($d["data"] instanceof Element\ElementInterface) {
                         $data = ["id" => $d["data"]->getId(), "path" => $d["data"]->getRealFullPath(), "type" => $d["data"]->getType()];
                     }
                 } elseif ($type == "date") {
                     if (is_object($d["data"])) {
                         $data = $d["data"]->getTimestamp();
                     }
                 }
                 $keyValue = ["type" => $type, "name" => $name, "data" => $data];
                 $keyValues[] = $keyValue;
             }
         }
         $e["data"] = $keyValues;
         // prepare user data
         if ($note->getUser()) {
             $user = Model\User::getById($note->getUser());
             if ($user) {
                 $e["user"] = ["id" => $user->getId(), "name" => $user->getName()];
             } else {
                 $e["user"] = "";
             }
         }
         $notes[] = $e;
     }
     $this->_helper->json(["data" => $notes, "success" => true, "total" => $list->getTotalCount()]);
 }
Beispiel #5
0
 /**
  * @param integer $userId
  * @return void
  */
 public function setUserId($userId)
 {
     if (is_numeric($userId)) {
         if ($user = User::getById($userId)) {
             $this->userId = (int) $userId;
             $this->setUser($user);
         }
     }
     return $this;
 }
Beispiel #6
0
 /** Returns a list of available perspectives for the given user
  * @param Model\User $user
  * @return array
  */
 public static function getAvailablePerspectives($user)
 {
     $currentConfigName = null;
     $masterConfig = self::getPerspectivesConfig()->toArray();
     if ($user instanceof Model\User) {
         if ($user->isAdmin()) {
             $config = self::getPerspectivesConfig()->toArray();
         } else {
             $config = [];
             $roleIds = $user->getRoles();
             $userIds = [$user->getId()];
             $userIds = array_merge($userIds, $roleIds);
             foreach ($userIds as $userId) {
                 if (in_array($userId, $roleIds)) {
                     $userOrRoleToCheck = Model\User\Role::getById($userId);
                 } else {
                     $userOrRoleToCheck = Model\User::getById($userId);
                 }
                 $perspectives = $userOrRoleToCheck->getPerspectives();
                 if ($perspectives) {
                     foreach ($perspectives as $perspectiveName) {
                         $masterDef = $masterConfig[$perspectiveName];
                         if ($masterDef) {
                             $config[$perspectiveName] = $masterDef;
                         }
                     }
                 }
             }
             if (!$config) {
                 $config = self::getPerspectivesConfig()->toArray();
             }
         }
         if ($config) {
             $tmpConfig = [];
             $validPerspectiveNames = array_keys($config);
             // sort the stuff
             foreach ($masterConfig as $masterConfigName => $masterConfiguration) {
                 if (in_array($masterConfigName, $validPerspectiveNames)) {
                     $tmpConfig[$masterConfigName] = $masterConfiguration;
                 }
             }
             $config = $tmpConfig;
         }
         $currentConfigName = $user->getActivePerspective();
         if ($config && !in_array($currentConfigName, array_keys($config))) {
             $currentConfigName = reset(array_keys($config));
         }
     } else {
         $config = self::getPerspectivesConfig()->toArray();
     }
     $result = [];
     foreach ($config as $configName => $configItem) {
         $item = ["name" => $configName, "icon" => isset($configItem["icon"]) ? $configItem["icon"] : null, "iconCls" => isset($configItem["iconCls"]) ? $configItem["iconCls"] : null];
         if ($user) {
             $item["active"] = $configName == $currentConfigName;
         }
         $result[] = $item;
     }
     return $result;
 }
Beispiel #7
0
 /**
  * @static
  *
  */
 public static function initLogger()
 {
     // for forks, etc ...
     \Logger::resetLoggers();
     // try to load configuration
     $conf = Config::getSystemConfig();
     if ($conf) {
         // redirect php error_log to /website/var/log/php.log
         if ($conf->general->custom_php_logfile) {
             $phpLog = PIMCORE_LOG_DIRECTORY . "/php.log";
             if (!file_exists($phpLog)) {
                 touch($phpLog);
             }
             if (is_writable($phpLog)) {
                 ini_set("error_log", $phpLog);
                 ini_set("log_errors", "1");
             }
         }
     }
     if (!is_file(PIMCORE_LOG_DEBUG)) {
         if (is_writable(dirname(PIMCORE_LOG_DEBUG))) {
             File::put(PIMCORE_LOG_DEBUG, "AUTOCREATE\n");
         }
     }
     $prioMapping = array("debug" => \Zend_Log::DEBUG, "info" => \Zend_Log::INFO, "notice" => \Zend_Log::NOTICE, "warning" => \Zend_Log::WARN, "error" => \Zend_Log::ERR, "critical" => \Zend_Log::CRIT, "alert" => \Zend_Log::ALERT, "emergency" => \Zend_Log::EMERG);
     $prios = array();
     if ($conf && $conf->general->debugloglevel) {
         $prioMapping = array_reverse($prioMapping);
         foreach ($prioMapping as $level => $state) {
             $prios[] = $prioMapping[$level];
             if ($level == $conf->general->debugloglevel) {
                 break;
             }
         }
     } else {
         // log everything if config isn't loaded (eg. at the installer)
         foreach ($prioMapping as $p) {
             $prios[] = $p;
         }
     }
     \Logger::setPriorities($prios);
     if (is_writable(PIMCORE_LOG_DEBUG)) {
         // check for big logfile, empty it if it's bigger than about 200M
         if (filesize(PIMCORE_LOG_DEBUG) > 200000000) {
             rename(PIMCORE_LOG_DEBUG, PIMCORE_LOG_DEBUG . "-archive-" . date("m-d-Y-H-i"));
             // archive log (will be cleaned up by maintenance)
             File::put(PIMCORE_LOG_DEBUG, "");
         }
         if (!empty($prios)) {
             $writerFile = new \Zend_Log_Writer_Stream(PIMCORE_LOG_DEBUG);
             $loggerFile = new \Zend_Log($writerFile);
             \Logger::addLogger($loggerFile);
         }
         $conf = Config::getSystemConfig();
         if ($conf) {
             //email logger
             if (!empty($conf->general->logrecipient)) {
                 $user = User::getById($conf->general->logrecipient);
                 if ($user instanceof User && $user->isAdmin()) {
                     $email = $user->getEmail();
                     if (!empty($email)) {
                         $mail = Tool::getMail(array($email), "pimcore log notification");
                         $mail->setIgnoreDebugMode(true);
                         if (!is_dir(PIMCORE_LOG_MAIL_TEMP)) {
                             File::mkdir(PIMCORE_LOG_MAIL_TEMP);
                         }
                         $tempfile = PIMCORE_LOG_MAIL_TEMP . "/log-" . uniqid() . ".log";
                         $writerEmail = new \Pimcore\Log\Writer\Mail($tempfile, $mail);
                         $loggerEmail = new \Zend_Log($writerEmail);
                         \Logger::addLogger($loggerEmail);
                     }
                 }
             }
         }
     } else {
         // try to use syslog instead
         try {
             $writerSyslog = new \Zend_Log_Writer_Syslog(array('application' => 'pimcore'));
             $loggerSyslog = new \Zend_Log($writerSyslog);
             \Logger::addLogger($loggerSyslog);
         } catch (\Exception $e) {
         }
     }
     if (array_key_exists("pimcore_log", $_REQUEST) && self::inDebugMode()) {
         if (empty($_REQUEST["pimcore_log"])) {
             $requestLogName = date("Y-m-d_H-i-s");
         } else {
             $requestLogName = $_REQUEST["pimcore_log"];
         }
         $requestLogFile = dirname(PIMCORE_LOG_DEBUG) . "/request-" . $requestLogName . ".log";
         if (!file_exists($requestLogFile)) {
             File::put($requestLogFile, "");
         }
         $writerRequestLog = new \Zend_Log_Writer_Stream($requestLogFile);
         $loggerRequest = new \Zend_Log($writerRequestLog);
         \Logger::addLogger($loggerRequest);
         \Logger::setVerbosePriorities();
     }
 }
Beispiel #8
0
 /**
  * @throws \Exception
  */
 public function save()
 {
     $isUpdate = false;
     if ($this->getId()) {
         $isUpdate = true;
         \Pimcore::getEventManager()->trigger("object.class.preUpdate", $this);
     } else {
         \Pimcore::getEventManager()->trigger("object.class.preAdd", $this);
     }
     $this->setModificationDate(time());
     $this->getDao()->save();
     // create class for object
     $extendClass = "Concrete";
     if ($this->getParentClass()) {
         $extendClass = $this->getParentClass();
         $extendClass = "\\" . ltrim($extendClass, "\\");
     }
     // creaste directory if not exists
     if (!is_dir(PIMCORE_CLASS_DIRECTORY . "/Object")) {
         File::mkdir(PIMCORE_CLASS_DIRECTORY . "/Object");
     }
     $cd = '<?php ';
     $cd .= "\n\n";
     $cd .= "/** Generated at " . date('c') . " */";
     $cd .= "\n\n";
     $cd .= "/**\n";
     if ($this->getDescription()) {
         $description = str_replace(array("/**", "*/", "//"), "", $this->getDescription());
         $description = str_replace("\n", "\n* ", $description);
         $cd .= "* " . $description . "\n";
     }
     $cd .= "* Inheritance: " . ($this->getAllowInherit() ? "yes" : "no") . "\n";
     $cd .= "* Variants   : " . ($this->getAllowVariants() ? "yes" : "no") . "\n";
     $user = Model\User::getById($this->getUserModification());
     if ($user) {
         $cd .= "* Changed by : " . $user->getName() . " (" . $user->getId() . ")" . "\n";
     }
     if ($_SERVER["REMOTE_ADDR"]) {
         $cd .= "* IP:          " . $_SERVER["REMOTE_ADDR"] . "\n";
     }
     $cd .= "*/\n";
     $cd .= "\n\n";
     $cd .= "namespace Pimcore\\Model\\Object;";
     $cd .= "\n\n";
     $cd .= "\n\n";
     $cd .= "/**\n";
     if (is_array($this->getFieldDefinitions()) && count($this->getFieldDefinitions())) {
         foreach ($this->getFieldDefinitions() as $key => $def) {
             if (!(method_exists($def, "isRemoteOwner") and $def->isRemoteOwner())) {
                 $cd .= "* @method static \\Pimcore\\Model\\Object\\" . ucfirst($this->getName()) . '\\Listing getBy' . ucfirst($def->getName()) . ' ($value, $limit = 0) ' . "\n";
             }
         }
     }
     $cd .= "*/\n\n";
     $cd .= "class " . ucfirst($this->getName()) . " extends " . $extendClass . " {";
     $cd .= "\n\n";
     if ($this->getUseTraits()) {
         $cd .= 'use ' . $this->getUseTraits() . ";\n";
         $cd .= "\n";
     }
     $cd .= 'public $o_classId = ' . $this->getId() . ";\n";
     $cd .= 'public $o_className = "' . $this->getName() . '"' . ";\n";
     if (is_array($this->getFieldDefinitions()) && count($this->getFieldDefinitions())) {
         foreach ($this->getFieldDefinitions() as $key => $def) {
             if (!(method_exists($def, "isRemoteOwner") && $def->isRemoteOwner()) && !$def instanceof Object\ClassDefinition\Data\CalculatedValue) {
                 $cd .= "public \$" . $key . ";\n";
             }
         }
     }
     $cd .= "\n\n";
     $cd .= '/**' . "\n";
     $cd .= '* @param array $values' . "\n";
     $cd .= '* @return \\Pimcore\\Model\\Object\\' . ucfirst($this->getName()) . "\n";
     $cd .= '*/' . "\n";
     $cd .= 'public static function create($values = array()) {';
     $cd .= "\n";
     $cd .= "\t" . '$object = new static();' . "\n";
     $cd .= "\t" . '$object->setValues($values);' . "\n";
     $cd .= "\t" . 'return $object;' . "\n";
     $cd .= "}";
     $cd .= "\n\n";
     if (is_array($this->getFieldDefinitions()) && count($this->getFieldDefinitions())) {
         $relationTypes = array();
         foreach ($this->getFieldDefinitions() as $key => $def) {
             if (method_exists($def, "isRemoteOwner") and $def->isRemoteOwner()) {
                 continue;
             }
             // get setter and getter code
             $cd .= $def->getGetterCode($this);
             $cd .= $def->getSetterCode($this);
             // call the method "classSaved" if exists, this is used to create additional data tables or whatever which depends on the field definition, for example for localizedfields
             if (method_exists($def, "classSaved")) {
                 $def->classSaved($this);
             }
             if ($def->isRelationType()) {
                 $relationTypes[$key] = array("type" => $def->getFieldType());
             }
             // collect lazyloaded fields
             if (method_exists($def, "getLazyLoading") and $def->getLazyLoading()) {
                 $lazyLoadedFields[] = $key;
             }
         }
         $cd .= 'protected static $_relationFields = ' . var_export($relationTypes, true) . ";\n\n";
         $cd .= 'public $lazyLoadedFields = ' . var_export($lazyLoadedFields, true) . ";\n\n";
     }
     $cd .= "}\n";
     $cd .= "\n";
     $classFile = PIMCORE_CLASS_DIRECTORY . "/Object/" . ucfirst($this->getName()) . ".php";
     if (!is_writable(dirname($classFile)) || is_file($classFile) && !is_writable($classFile)) {
         throw new \Exception("Cannot write class file in " . $classFile . " please check the rights on this directory");
     }
     File::put($classFile, $cd);
     // create list class
     $cd = '<?php ';
     $cd .= "\n\n";
     $cd .= "namespace Pimcore\\Model\\Object\\" . ucfirst($this->getName()) . ";";
     $cd .= "\n\n";
     $cd .= "use Pimcore\\Model\\Object;";
     $cd .= "\n\n";
     $cd .= "/**\n";
     $cd .= " * @method Object\\" . ucfirst($this->getName()) . " current()\n";
     $cd .= " */";
     $cd .= "\n\n";
     $cd .= "class Listing extends Object\\Listing\\Concrete {";
     $cd .= "\n\n";
     $cd .= 'public $classId = ' . $this->getId() . ";\n";
     $cd .= 'public $className = "' . $this->getName() . '"' . ";\n";
     $cd .= "\n\n";
     $cd .= "}\n";
     /*$cd .= "?>";*/
     File::mkdir(PIMCORE_CLASS_DIRECTORY . "/Object/" . ucfirst($this->getName()));
     $classListFile = PIMCORE_CLASS_DIRECTORY . "/Object/" . ucfirst($this->getName()) . "/Listing.php";
     if (!is_writable(dirname($classListFile)) || is_file($classListFile) && !is_writable($classListFile)) {
         throw new \Exception("Cannot write class file in " . $classListFile . " please check the rights on this directory");
     }
     File::put($classListFile, $cd);
     // empty object cache
     try {
         Cache::clearTag("class_" . $this->getId());
     } catch (\Exception $e) {
     }
     if ($isUpdate) {
         \Pimcore::getEventManager()->trigger("object.class.postUpdate", $this);
     } else {
         \Pimcore::getEventManager()->trigger("object.class.postAdd", $this);
     }
 }
Beispiel #9
0
 /**
  * Checks if data is valid for current data field
  *
  * @param mixed $data
  * @param boolean $omitMandatoryCheck
  * @throws \Exception
  */
 public function checkValidity($data, $omitMandatoryCheck = false)
 {
     if (!$omitMandatoryCheck and $this->getMandatory() and empty($data)) {
         throw new \Exception("Empty mandatory field [ " . $this->getName() . " ]");
     }
     if (!empty($data)) {
         $user = Model\User::getById($data);
         if (!$user instanceof Model\User) {
             throw new \Exception("invalid user reference");
         }
     }
 }
Beispiel #10
0
 /**
  * @static
  *
  */
 public static function initLogger()
 {
     // for forks, etc ...
     \Logger::resetLoggers();
     // try to load configuration
     $conf = Config::getSystemConfig();
     if ($conf) {
         // redirect php error_log to /website/var/log/php.log
         if ($conf->general->custom_php_logfile) {
             $phpLog = PIMCORE_LOG_DIRECTORY . "/php.log";
             if (!file_exists($phpLog)) {
                 touch($phpLog);
             }
             if (is_writable($phpLog)) {
                 ini_set("error_log", $phpLog);
                 ini_set("log_errors", "1");
             }
         }
     }
     if (!is_file(PIMCORE_LOG_DEBUG)) {
         if (is_writable(dirname(PIMCORE_LOG_DEBUG))) {
             File::put(PIMCORE_LOG_DEBUG, "AUTOCREATE\n");
         }
     }
     $prios = [];
     $availablePrios = \Logger::getAvailablePriorities();
     if ($conf && $conf->general->debugloglevel) {
         foreach ($availablePrios as $level) {
             $prios[] = $level;
             if ($level == $conf->general->debugloglevel) {
                 break;
             }
         }
         \Logger::setPriorities($prios);
     } else {
         \Logger::setVerbosePriorities();
     }
     if (is_writable(PIMCORE_LOG_DEBUG)) {
         // check for big logfile, empty it if it's bigger than about 200M
         if (filesize(PIMCORE_LOG_DEBUG) > 200000000) {
             rename(PIMCORE_LOG_DEBUG, PIMCORE_LOG_DEBUG . "-archive-" . date("m-d-Y-H-i"));
             // archive log (will be cleaned up by maintenance)
             File::put(PIMCORE_LOG_DEBUG, "");
         }
         // set default core logger (debug.log)
         if (!empty($prios)) {
             $loggerFile = new \Monolog\Logger('core');
             $loggerFile->pushHandler(new \Monolog\Handler\StreamHandler(PIMCORE_LOG_DEBUG));
             \Logger::addLogger($loggerFile);
         }
         $conf = Config::getSystemConfig();
         if ($conf) {
             //email logger
             if (!empty($conf->general->logrecipient)) {
                 $user = User::getById($conf->general->logrecipient);
                 if ($user instanceof User && $user->isAdmin()) {
                     $email = $user->getEmail();
                     if (!empty($email)) {
                         $loggerMail = new \Monolog\Logger('email');
                         $mailHandler = new \Pimcore\Log\Handler\Mail($email);
                         $loggerMail->pushHandler(new \Monolog\Handler\BufferHandler($mailHandler));
                         \Logger::addLogger($loggerMail);
                     }
                 }
             }
         }
     } else {
         // try to use syslog instead
         try {
             $loggerSyslog = new \Monolog\Logger('core');
             $loggerSyslog->pushHandler(new \Monolog\Handler\SyslogHandler("pimcore"));
             \Logger::addLogger($loggerSyslog);
         } catch (\Exception $e) {
             // nothing to do here
         }
     }
     // special request log -> if parameter pimcore_log is set
     if (array_key_exists("pimcore_log", $_REQUEST) && self::inDebugMode()) {
         if (empty($_REQUEST["pimcore_log"])) {
             $requestLogName = date("Y-m-d_H-i-s");
         } else {
             $requestLogName = $_REQUEST["pimcore_log"];
         }
         $requestLogFile = dirname(PIMCORE_LOG_DEBUG) . "/request-" . $requestLogName . ".log";
         if (!file_exists($requestLogFile)) {
             File::put($requestLogFile, "");
         }
         $loggerRequest = new \Monolog\Logger('request');
         $loggerRequest->pushHandler(new \Monolog\Handler\StreamHandler($requestLogFile));
         \Logger::addLogger($loggerRequest);
         \Logger::setVerbosePriorities();
     }
 }
Beispiel #11
0
 /**
  * @param integer $userId
  * @return void
  */
 public function setUserId($userId)
 {
     if ($userId) {
         if ($user = Model\User::getById($userId)) {
             $this->userId = (int) $userId;
             $this->setUser($user);
         }
     }
     return $this;
 }
Beispiel #12
0
 /**
  * @return string
  */
 protected function getInfoDocBlock()
 {
     $cd = "";
     $cd .= "/** ";
     $cd .= "\n";
     $cd .= "* Generated at: " . date('c') . "\n";
     $cd .= "* Inheritance: " . ($this->getAllowInherit() ? "yes" : "no") . "\n";
     $cd .= "* Variants: " . ($this->getAllowVariants() ? "yes" : "no") . "\n";
     $user = Model\User::getById($this->getUserModification());
     if ($user) {
         $cd .= "* Changed by: " . $user->getName() . " (" . $user->getId() . ")" . "\n";
     }
     if (isset($_SERVER["REMOTE_ADDR"])) {
         $cd .= "* IP: " . $_SERVER["REMOTE_ADDR"] . "\n";
     }
     if ($this->getDescription()) {
         $description = str_replace(["/**", "*/", "//"], "", $this->getDescription());
         $description = str_replace("\n", "\n* ", $description);
         $cd .= "* " . $description . "\n";
     }
     $cd .= "\n\n";
     $cd .= "Fields Summary: \n";
     $cd = $this->getInfoDocBlockForFields($this, $cd, 1);
     $cd .= "*/ ";
     return $cd;
 }