* * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE * License as published by the Free Software Foundation; either * version 3 of the License, or any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU AFFERO GENERAL PUBLIC LICENSE for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . * */ // Check if we are a user OCP\JSON::checkLoggedIn(); OCP\JSON::callCheck(); OCP\JSON::checkAppEnabled('bookmarks'); $CONFIG_DBTYPE = OCP\Config::getSystemValue( "dbtype", "sqlite" ); if( $CONFIG_DBTYPE == 'sqlite' or $CONFIG_DBTYPE == 'sqlite3' ) { $_ut = "strftime('%s','now')"; } elseif($CONFIG_DBTYPE == 'pgsql') { $_ut = 'date_part(\'epoch\',now())::integer'; } elseif($CONFIG_DBTYPE == 'oci') { $_ut = '(oracletime - to_date(\'19700101\',\'YYYYMMDD\')) * 86400'; } else { $_ut = "UNIX_TIMESTAMP()"; } $bookmark_id = (int)$_POST["id"]; $user_id = OCP\USER::getUser(); //TODO check using CURRENT_TIMESTAMP? prepare already does magic when using now() $query = OCP\DB::prepare(' UPDATE `*PREFIX*bookmarks` SET `url` = ?, `title` = ?, `lastmodified` = '.$_ut.' WHERE `id` = ? AND `user_id` = ? '); $params=array( htmlspecialchars_decode($_POST["url"]), htmlspecialchars_decode($_POST["title"]), $bookmark_id, $user_id, ); $result = $query->execute($params); # Abort the operation if bookmark couldn't be set (probably because the user is not allowed to edit this bookmark) if ($result->numRows() == 0) exit(); # Remove old tags and insert new ones. $query = OCP\DB::prepare(' DELETE FROM `*PREFIX*bookmarks_tags` WHERE `bookmark_id` = ? '); $params=array( $bookmark_id ); $query->execute($params); $query = OCP\DB::prepare(' INSERT INTO `*PREFIX*bookmarks_tags` (`bookmark_id`, `tag`) VALUES (?, ?) '); $tags = explode(' ', urldecode($_POST["tags"])); foreach ($tags as $tag) { if(empty($tag)) { //avoid saving blankspaces continue; } $params = array($bookmark_id, trim($tag)); $query->execute($params); }