diff --git a/authorizationdb.php b/authorizationdb.php index 3ec3a3b..770fb3c 100644 --- a/authorizationdb.php +++ b/authorizationdb.php @@ -15,6 +15,8 @@ class authorizationdb extends authorization private $separator = "/"; /** Database PDO connector */ private $db = null; + /** The prefix for the table */ + public $tableprefix = ""; /** Establish a connexion to the authorization database @param string $dsn The DSN needed to connect to database @@ -28,6 +30,7 @@ class authorizationdb extends authorization // Define the structure of the table in the database $this->db = new dblayer ($dsn, $username, $password, $driver_options); $this->db->table = "domframework_authorization"; + $this->db->tableprefix = $this->tableprefix; $this->db->fields = array ( "object"=>array ("varchar", "255", "not null"), "ownerid"=>array ("integer", "not null"), @@ -43,7 +46,7 @@ class authorizationdb extends authorization if ($this->db === null) throw new Exception (_("Database to authorize is not connected"), 500); $tables = $this->db->listTables (); - if (!in_array ($this->db->table, $tables)) + if (!in_array ($this->db->tableprefix.$this->db->table, $tables)) { $this->db->createTable (); $first = array ("object"=>"/", "ownerid"=>0, "groupid"=>0, diff --git a/dblayer.php b/dblayer.php index a1d027e..a133fc7 100644 --- a/dblayer.php +++ b/dblayer.php @@ -35,9 +35,9 @@ class dblayer extends PDO { /** The table name to use */ public $table = null; - /** The prefix text to prepend to table name (Should finish by _) + /** The tableprefix text to prepend to table name (Should finish by _) Just allow chars ! */ - public $prefix = ""; + public $tableprefix = ""; /** The fields with the definition of type, and special parameters */ public $fields = array (); /** The primary field */ @@ -166,7 +166,8 @@ class dblayer extends PDO if (file_exists ($file) && ! is_writeable ($file)) throw new Exception (_("The SQLite database file is write protected"), 500); - if (function_exists ("posix_getuid") && fileowner ($file) === posix_getuid ()) + if (function_exists ("posix_getuid") && + fileowner ($file) === posix_getuid ()) chmod ($file, 0666); // Force ForeignKeys support (disabled by default) $this->db->exec("PRAGMA foreign_keys = ON"); @@ -255,7 +256,8 @@ class dblayer extends PDO { $table = $data[0]; $column = $data[1]; - $req = "SELECT $column FROM `$this->prefix$table` WHERE $column=:$column"; + $req = "SELECT $column FROM `$this->tableprefix$table` ". + "WHERE $column=:$column"; if ($this->debug) echo "DEBUG : $req\n"; $st = $this->db->prepare ($req); $val = $datasOK[$foreign]; @@ -281,7 +283,7 @@ class dblayer extends PDO $column), 405); } - $req = "INSERT INTO `$this->prefix$this->table` "; + $req = "INSERT INTO `$this->tableprefix$this->table` "; $req .= "(".implode (",", array_keys ($datasOK)).")"; $req .= " VALUES "; $req .= "(:".implode (",:", array_keys ($datasOK)).")"; @@ -344,7 +346,7 @@ class dblayer extends PDO $req = "SELECT "; $req .= implode (",", $display); - $req .= " FROM `$this->prefix$this->table`"; + $req .= " FROM `$this->tableprefix$this->table`"; if ($select !== null) { $req .= " WHERE "; @@ -477,7 +479,8 @@ class dblayer extends PDO { $table = $data[0]; $column = $data[1]; - $req = "SELECT $column FROM `$this->prefix$table` WHERE $column=:$column"; + $req = "SELECT $column FROM `$this->tableprefix$table` ". + "WHERE $column=:$column"; if ($this->debug) echo "DEBUG : $req\n"; $st = $this->db->prepare ($req); $val = $datasOK[$foreign]; @@ -504,7 +507,7 @@ class dblayer extends PDO } $datasOK[$this->primary] = $updatekey; - $req = "UPDATE `".$this->prefix."$this->table` SET "; + $req = "UPDATE `".$this->tableprefix."$this->table` SET "; $i = 0; foreach ($datasOK as $key=>$val) { @@ -557,7 +560,7 @@ class dblayer extends PDO { if ($this->db === null) throw new Exception ("Database not connected"); - $req = "DELETE FROM `$this->prefix$this->table` "; + $req = "DELETE FROM `$this->tableprefix$this->table` "; $req .= "WHERE $this->primary = :primary"; $st = $this->db->prepare ($req); if ($this->debug) echo "DEBUG : $req\n"; @@ -600,7 +603,7 @@ class dblayer extends PDO switch ($this->db->getAttribute(PDO::ATTR_DRIVER_NAME)) { case "sqlite": - $sql = "CREATE TABLE `$this->prefix$this->table` (\n"; + $sql = "CREATE TABLE `$this->tableprefix$this->table` (\n"; $i = 0; foreach ($this->fields as $field=>$params) { @@ -681,7 +684,7 @@ class dblayer extends PDO $sql .=")"; break; case "mysql": - $sql = "CREATE TABLE `$this->prefix$this->table` (\n"; + $sql = "CREATE TABLE `$this->tableprefix$this->table` (\n"; $i = 0; foreach ($this->fields as $field=>$params) { @@ -760,7 +763,7 @@ class dblayer extends PDO $sql .=") ENGINE=InnoDB DEFAULT CHARSET=utf8;"; break; case "pgsql": - $sql = "CREATE TABLE \"$this->prefix$this->table\" (\n"; + $sql = "CREATE TABLE \"$this->tableprefix$this->table\" (\n"; $i = 0; foreach ($this->fields as $field=>$params) {