ms/pg compatibility for api and security

This commit is contained in:
Ulf Gebhardt 2013-07-05 20:56:21 +02:00
parent 03a4c784f4
commit d72046c163
2 changed files with 30 additions and 12 deletions

View File

@ -139,7 +139,11 @@ class Api {
private function getApiTree(){ private function getApiTree(){
$con = new \SYSTEM\DB\Connection($this->m_dbinfo); $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); unset($con);
if(!$res){ if(!$res){

View File

@ -178,11 +178,19 @@ class Security {
return false;} return false;}
$con = new \SYSTEM\DB\Connection($dbinfo); $con = new \SYSTEM\DB\Connection($dbinfo);
$res = $con->prepare( 'security_check', if(\SYSTEM\system::isSystemDbInfoPG()){
'SELECT COUNT(*) as count FROM '.(\SYSTEM\system::isSystemDbInfoPG() ? \SYSTEM\DBD\UserRightsTable::NAME_PG : \SYSTEM\DBD\UserRightsTable::NAME_MYS). $res = $con->prepare( 'security_check',
' WHERE "'.\SYSTEM\DBD\UserRightsTable::FIELD_USERID.'" = $1'. 'SELECT COUNT(*) as count FROM '.\SYSTEM\DBD\UserRightsTable::NAME_PG.
' AND "'.\SYSTEM\DBD\UserRightsTable::FIELD_RIGHTID.'" = $2;', ' WHERE "'.\SYSTEM\DBD\UserRightsTable::FIELD_USERID.'" = $1'.
array($user->id, $rightid)); ' 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())){ if(!($res = $res->next())){
throw new \SYSTEM\LOG\ERROR("Cannot determine if you have the required rights!");} 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");} throw new \SYSTEM\LOG\ERROR("You need to be logged in");}
$con = new \SYSTEM\DB\Connection($dbinfo); $con = new \SYSTEM\DB\Connection($dbinfo);
$res = $con->prepare( 'updateUserLocaleStmt', if(\SYSTEM\system::isSystemDbInfoPG()){
'UPDATE '.(\SYSTEM\system::isSystemDbInfoPG() ? \SYSTEM\DBD\UserTable::NAME_PG : \SYSTEM\DBD\UserTable::NAME_MYS).' SET '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.' = $1 '. $res = $con->prepare( 'updateUserLocaleStmt',
'WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = $2'.' RETURNING '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.';', 'UPDATE '.\SYSTEM\DBD\UserTable::NAME_PG.' SET '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.' = $1 '.
array($lang, $user->id)); 'WHERE '.\SYSTEM\DBD\UserTable::FIELD_ID.' = $2'.' RETURNING '.\SYSTEM\DBD\UserTable::FIELD_LOCALE.';',
if(!$res->next()){ array($lang, $user->id));
throw new \SYSTEM\LOG\ERROR("Problem updating the User!");} }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;
} }
} }