diff options
author | Martin Sandsmark <martin.sandsmark@kde.org> | 2010-08-02 20:39:14 +0200 |
---|---|---|
committer | Martin Sandsmark <martin.sandsmark@kde.org> | 2010-08-02 20:39:14 +0200 |
commit | 9d99c4fbdcd31615212bf11abe61cab022fec319 (patch) | |
tree | 7f0836eb3e964d0da99ff3c7e98c10697d5b52f4 | |
parent | 6642d4af6ff44c92e91e347c8ea392efac28f842 (diff) | |
download | nextcloud-server-9d99c4fbdcd31615212bf11abe61cab022fec319.tar.gz nextcloud-server-9d99c4fbdcd31615212bf11abe61cab022fec319.zip |
update to comply with the OCS spec (lookup by application name too)
-rw-r--r-- | db_structure.xml | 23 | ||||
-rw-r--r-- | inc/lib_ocs.php | 13 |
2 files changed, 24 insertions, 12 deletions
diff --git a/db_structure.xml b/db_structure.xml index 51ab9210933..6eea47fec4f 100644 --- a/db_structure.xml +++ b/db_structure.xml @@ -18,6 +18,13 @@ <length>64</length> </field> <field> + <name>app</name> + <type>text</type> + <default></default> + <notnull>true</notnull> + <length>64</length> + </field> + <field> <name>value</name> <type>text</type> <notnull>false</notnull> @@ -28,12 +35,16 @@ <notnull>true</notnull> </field> <index> - <name>timestamp</name> - <unique>false</unique> - <field> - <name>timestamp</name> - <sorting>ascending</sorting> - </field> + <name>appkey</name> + <unique>true</unique> + <field> + <name>key</name> + <sorting>ascending</sorting> + </field> + <field> + <name>app</name> + <sorting>ascending</sorting> + </field> </index> </declaration> </table> 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,'')); |