Skip to content
Snippets Groups Projects
Select Git revision
  • 9f016da6b56eeff327b6029039185e9df0557b5f
  • master default protected
2 results

inc_config.js.dist

Blame
  • actionlog.class.php 14.17 KiB
    <?php
    require_once 'user.class.php';
    
    /**
     * class to log all project actions, ie. build, deploy etc.
     *
     * @author hahn
     */
    class Actionlog {
    
        private $_aLoglevels = array("info", "warning", "error", "success"); // array of valid loglevels
        private $_sIP = false;
        private $_sUser = false;
        private $_sProject = false;
        private $_sCreate = '
            CREATE TABLE "logs" (
              `id` INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,
              `time` DATETIME,
              `loglevel` TEXT,
              `ip` TEXT,
              `user` TEXT,
              `project` TEXT,
              `action` TEXT,
              `message` TEXT
            )';
        /*
        private $_sCreateFUTURE = '
            CREATE TABLE "logs" (
              `id` INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL  UNIQUE ,
              `time` DATETIME,
              `time-start` DATETIME,
              `loglevel` TEXT,
              `ip` TEXT,
              `user` TEXT,
              `project` TEXT,
              `action` TEXT,
              `message` TEXT
            )';
            */
        /**
         * constructor - sets internal environment variables and checks existence 
         * of the database
         * @global array $aConfig    settings
         * @param  string $sProject  project ID
         */
        public function __construct($sProject = false) {
            global $aConfig;
            if (!is_array($aConfig) || !array_key_exists("appRootDir", $aConfig)) {
                die(__CLASS__ . "::".__FUNCTION__." ERROR: configuration with \$aConfig was not loaded.");
            }
            $this->_dbfile = $aConfig['dataDir'] . '/database/logs.db';
            if (!file_exists($this->_dbfile)) {
                $this->_createDb();
                if (!file_exists($this->_dbfile)) {
                    die("ERROR: unable to create sqlite database " . $this->_dbfile);
                }
            }
            $this->_sProject = $sProject;
            $oUser=new user();
            if ($oUser->getUsername()) {
                $this->_sIP = $_SERVER["REMOTE_ADDR"];
                $this->_sUser = $oUser->getUsername() . " (web)";
            } else {
                $this->_sIP = 'local';
                $aUser=posix_getpwuid(posix_geteuid());
                $this->_sUser = $aUser['name'] . " (system)";
            }
        }
    
        /**