diff --git a/db_structure.xml b/db_structure.xml index 51ab9210933..6eea47fec4f 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -17,6 +17,13 @@ true 64 + + app + text + + true + 64 + value text @@ -28,12 +35,16 @@ true - timestamp - false - - timestamp - ascending - + appkey + true + + key + ascending + + + app + ascending + diff --git a/inc/lib_ocs.php b/inc/lib_ocs.php index 3a675b64d8a..a4c51f7c62d 100644 --- a/inc/lib_ocs.php +++ b/inc/lib_ocs.php @@ -145,11 +145,12 @@ class OC_OCS { OC_OCS::privateDataGet($format, $key); // set - POST DATA - }elseif(($method=='post') and (strtolower($ex[$paracount-5])=='v1.php')and (strtolower($ex[$paracount-3])=='setattribute')){ + }elseif(($method=='post') and (strtolower($ex[$paracount-6])=='v1.php')and (strtolower($ex[$paracount-4])=='setattribute')){ $format=OC_OCS::readdata('format','text'); $key=$ex[$paracount-2]; + $app=$ex[$paracount-3]; $value=OC_OCS::readdata('value','text'); - OC_OCS::privatedataset($format, $key, $value); + OC_OCS::privatedataset($format, $app, $key, $value); }else{ $format=OC_OCS::readdata('format','text'); @@ -472,19 +473,19 @@ class OC_OCS { * @param string $value * @return string xml/json */ - private static function privateDataSet($format, $key, $value) { + private static function privateDataSet($format, $app, $key, $value) { global $CONFIG_DBTABLEPREFIX; //TODO: prepared statements, locking tables, fancy stuff, error checking/handling $user=OC_OCS::checkpassword(); - $result=OC_DB::select("select count(*) as co from {$CONFIG_DBTABLEPREFIX}privatedata where key = '".addslashes($key)."'"); + $result=OC_DB::select("select count(*) as co from {$CONFIG_DBTABLEPREFIX}privatedata where key = '".addslashes($key)."' and app = '".addslashes($app)."'"); $totalcount=$result[0]['co']; if ($totalcount != 0) { - $result = OC_DB::query("update {$CONFIG_DBTABLEPREFIX}privatedata set value='".addslashes($value)."', timestamp = datetime('now') where key = '".addslashes($key)."'"); + $result = OC_DB::query("update {$CONFIG_DBTABLEPREFIX}privatedata set value='".addslashes($value)."', timestamp = datetime('now') where key = '".addslashes($key)."' and app = '".addslashes($app)."'"); } else { - $result = OC_DB::query("insert into {$CONFIG_DBTABLEPREFIX}privatedata(key, value, timestamp) values('".addslashes($key)."', '".addslashes($value)."', datetime('now'))"); + $result = OC_DB::query("insert into {$CONFIG_DBTABLEPREFIX}privatedata(app, key, value, timestamp) values('".addslashes($app)."', '".addslashes($key)."', '".addslashes($value)."', datetime('now'))"); } echo(OC_OCS::generatexml($format,'ok',100,''));