From d72046c163f804e8abe382ed1a72ccab2c17dc1f Mon Sep 17 00:00:00 2001 From: rylon Date: Fri, 5 Jul 2013 20:56:21 +0200 Subject: [PATCH] ms/pg compatibility for api and security --- api/Api.php | 6 +++++- security/Security.php | 36 +++++++++++++++++++++++++----------- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/api/Api.php b/api/Api.php index 49f3e6b..914e25f 100644 --- a/api/Api.php +++ b/api/Api.php @@ -139,7 +139,11 @@ class Api { private function getApiTree(){ $con = new \SYSTEM\DB\Connection($this->m_dbinfo); - $res = $con->query('SELECT * FROM '.(\SYSTEM\system::isSystemDbInfoPG() ? \SYSTEM\DBD\APITable::NAME_PG : \SYSTEM\DBD\APITable::NAME_MYS).' ORDER BY "'.\SYSTEM\DBD\APITable::FIELD_ID.'"'); + if(\SYSTEM\system::isSystemDbInfoPG()){ + $res = $con->query('SELECT * FROM '.\SYSTEM\DBD\APITable::NAME_PG.' ORDER BY "'.\SYSTEM\DBD\APITable::FIELD_ID.'"'); + } else { + $res = $con->query('SELECT * FROM '.\SYSTEM\DBD\APITable::NAME_MYS.' ORDER BY '.\SYSTEM\DBD\APITable::FIELD_ID); + } unset($con); if(!$res){ diff --git a/security/Security.php b/security/Security.php index 155b2c7..5922805 100644 --- a/security/Security.php +++ b/security/Security.php @@ -178,11 +178,19 @@ class Security { return false;} $con = new \SYSTEM\DB\Connection($dbinfo); - $res = $con->prepare( 'security_check', - 'SELECT COUNT(*) as count FROM '.(\SYSTEM\system::isSystemDbInfoPG() ? \SYSTEM\DBD\UserRightsTable::NAME_PG : \SYSTEM\DBD\UserRightsTable::NAME_MYS). - ' WHERE "'.\SYSTEM\DBD\UserRightsTable::FIELD_USERID.'" = $1'. - ' AND "'.\SYSTEM\DBD\UserRightsTable::FIELD_RIGHTID.'" = $2;', - array($user->id, $rightid)); + if(\SYSTEM\system::isSystemDbInfoPG()){ + $res = $con->prepare( 'security_check', + 'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\UserRightsTable::NAME_PG. + ' WHERE "'.\SYSTEM\DBD\UserRightsTable::FIELD_USERID.'" = $1'. + ' AND "'.\SYSTEM\DBD\UserRightsTable::FIELD_RIGHTID.'" = $2;', + array($user->id, $rightid)); + } else { + $res = $con->prepare( 'security_check', + 'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\UserRightsTable::NAME_MYS. + ' WHERE '.\SYSTEM\DBD\UserRightsTable::FIELD_USERID.' = ?'. + ' AND '.\SYSTEM\DBD\UserRightsTable::FIELD_RIGHTID.' = ?;', + array($user->id, $rightid)); + } if(!($res = $res->next())){ throw new \SYSTEM\LOG\ERROR("Cannot determine if you have the required rights!");} @@ -224,11 +232,17 @@ class Security { throw new \SYSTEM\LOG\ERROR("You need to be logged in");} $con = new \SYSTEM\DB\Connection($dbinfo); - $res = $con->prepare( 'updateUserLocaleStmt', - 'UPDATE '.(\SYSTEM\system::isSystemDbInfoPG() ? \SYSTEM\DBD\UserTable::NAME_PG : \SYSTEM\DBD\UserTable::NAME_MYS).' SET '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.' = $1 '. - 'WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = $2'.' RETURNING '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.';', - array($lang, $user->id)); - if(!$res->next()){ - throw new \SYSTEM\LOG\ERROR("Problem updating the User!");} + if(\SYSTEM\system::isSystemDbInfoPG()){ + $res = $con->prepare( 'updateUserLocaleStmt', + 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_PG.' SET '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.' = $1 '. + 'WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = $2'.' RETURNING '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.';', + array($lang, $user->id)); + }else{ + $res = $con->prepare( 'updateUserLocaleStmt', + 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_MYS.' SET '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.' = ? '. + 'WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = ?;', + array($lang, $user->id)); + } + return true; } } \ No newline at end of file