コード例 #1
0
ファイル: commentmapper.php プロジェクト: nerzhul/ownBoard
 public function delete($id)
 {
     \OCP\DB::beginTransaction();
     $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ownboard_postit_comments ' . 'WHERE id = ?');
     $query->execute(array($id));
     \OCP\DB::commit();
 }
コード例 #2
0
    /**
     * Handle user removal from ownCloud
     */
    public static function notifyUserDeletion($args)
    {
        try {
            \OCP\DB::beginTransaction();
            $query = \OCP\DB::prepare('SELECT `pid`, `title` FROM `*PREFIX*collaboration_project` WHERE `pid` IN 
										(SELECT DISTINCT(`pid`) FROM `*PREFIX*collaboration_works_on` WHERE `member`=?) AND `completed`=?');
            $result = $query->execute(array($args['uid'], false));
            $projs = $result->fetchAll();
            if (count($projs) != 0) {
                $projects = $projs[0]['title'];
                $pids = $projs[0]['pid'];
                for ($i = 1; $i < count($projs); $i++) {
                    $projects .= ', ' . $projs[$i]['title'];
                    $pids .= ' ' . $projs[$i]['pid'];
                }
                OC_Collaboration_Post::createPost('Member Removed', 'Owncloud member \'' . $args['uid'] . '\' has been removed from owncloud and hence from the project(s) ' . $projects, OC_User::getUser(), NULL, 'Member removal', OC_Collaboration_Project::getMembersWorkingOnProjects(explode(' ', $pids)), true);
            }
            OC_Collaboration_Project::deleteMemberRole(NULL, $args['uid'], NULL, OC_User::getUser(), true);
            OC_Collaboration_Skillset::removeSkillsOfMember($args['uid']);
            OC_Collaboration_Post::removePostsByMember($args['uid'], true);
            \OCP\DB::commit();
            OC_Log::write('collaboration', 'User deletion notification posted.', OCP\Util::INFO);
        } catch (\Exception $e) {
            OC_Log::write('collaboration', __METHOD__ . ', Exception: ' . $e->getMessage(), OCP\Util::DEBUG);
            return false;
        }
    }
コード例 #3
0
 public function setLast($userId, $phoneNumber, $lastDate)
 {
     \OCP\DB::beginTransaction();
     $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ocsms_conversation_read_states ' . 'WHERE user_id = ? AND phone_number = ?');
     $query->execute(array($userId, $phoneNumber));
     $query = \OCP\DB::prepare('INSERT INTO *PREFIX*ocsms_conversation_read_states' . '(user_id, phone_number, int_date) VALUES ' . '(?,?,?)');
     $query->execute(array($userId, $phoneNumber, $lastDate));
     \OCP\DB::commit();
 }
コード例 #4
0
 public function setSetting($settingName, $userId, $settingValue)
 {
     \OCP\DB::beginTransaction();
     $query = \OCP\DB::prepare('DELETE FROM *PREFIX*weather_config ' . 'WHERE `user` = ? and `key` = ?');
     $query->execute(array($userId, $settingName));
     $query = \OCP\DB::prepare('INSERT INTO *PREFIX*weather_config ' . '(`user`,`key`,`value`) VALUES (?,?,?)');
     $query->execute(array($userId, $settingName, $settingValue));
     \OCP\DB::commit();
 }
コード例 #5
0
ファイル: hooks.php プロジェクト: nickbooties/accessstats
 public static function logRead($params)
 {
     //LOG: user, path, time
     // $logstring = \OCP\User::getUser().", ".$params['path'].", ".date("d-m-Y H:i:s");
     $sql = "insert into `*PREFIX*accessstats_items` (`username`,`path`,`time`) values (?,?,?)";
     \OCP\DB::beginTransaction();
     $query = \OCP\DB::prepare($sql);
     $result = $query->execute(array(\OCP\User::getUser(), $params['path'], time()));
     \OCP\DB::commit();
 }
コード例 #6
0
ファイル: categorymapper.php プロジェクト: nerzhul/ownBoard
 public function delete($id)
 {
     \OCP\DB::beginTransaction();
     // First delete comments in postits in the category
     $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ownboard_postit_comments ' . 'WHERE postit_id IN (SELECT id FROM *PREFIX*ownboard_postit ' . 'WHERE category_id = ?)');
     $query->execute(array($id));
     // Next delete postits in the category
     $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ownboard_postit ' . 'WHERE category_id = ?');
     $query->execute(array($id));
     // Then delete the category
     $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ownboard_category ' . 'WHERE id = ?');
     $query->execute(array($id));
     \OCP\DB::commit();
 }
コード例 #7
0
 public function create($userId, $name)
 {
     \OCP\DB::beginTransaction();
     $query = \OCP\DB::prepare('INSERT INTO *PREFIX*weather_city ' . '(user_id, name) VALUES (?,?)');
     $query->execute(array($userId, $name));
     \OCP\DB::commit();
     $sql = 'SELECT max(id) as maxid FROM ' . '*PREFIX*weather_city WHERE user_id = ? and name = ?';
     $query = \OCP\DB::prepare($sql);
     $result = $query->execute(array($userId, $name));
     if ($row = $result->fetchRow()) {
         return $row['maxid'];
     }
     return null;
 }
コード例 #8
0
ファイル: postitmapper.php プロジェクト: nerzhul/ownBoard
 public function create($categoryId, $title)
 {
     $now = date("Y-m-d H:i:s");
     \OCP\DB::beginTransaction();
     $query = \OCP\DB::prepare('INSERT INTO *PREFIX*ownboard_postit' . '(title, category_id, last_update) VALUES (?,?,?)');
     $query->execute(array($title, $categoryId, $now));
     \OCP\DB::commit();
     $sql = 'SELECT max(id) FROM ' . '*PREFIX*ownboard_postit WHERE category_id = ? and title = ? ' . 'and last_update = ?';
     $query = \OCP\DB::prepare($sql);
     $result = $query->execute(array($categoryId, $title, $now));
     if ($row = $result->fetchRow()) {
         return array("id" => $row['max'], "last_update" => $now);
     }
     return null;
 }
コード例 #9
0
 /**
  * Reset the flag to true for all accounts
  * @param OutputInterface $output
  */
 protected function reset($output)
 {
     try {
         \OCP\DB::beginTransaction();
         $sql = "UPDATE *PREFIX*preferences\n                        SET configvalue = 1\n                        WHERE appid = 'user_set_password' AND configkey = 'show'";
         $stmt = \OCP\DB::prepare($sql);
         $rowCount = $stmt->execute();
         \OCP\DB::commit();
         $this->consoleDisplay(' flags have been resetted to "true".');
     } catch (\Exception $e) {
         // rollBack not implemented in \OCP\DB! (ownCloud 7.0.5)
         $conn = \OCP\DB::getConnection();
         $conn->rollBack();
         $this->consoleDisplay('Fatal error: ' . $e->getMessage(), self::ERROR);
     }
 }
コード例 #10
0
 /**
  * Create a flag set to false for each existing account
  * @param OutputInterface $output
  */
 protected function Init($output)
 {
     try {
         \OCP\DB::beginTransaction();
         $sql = "INSERT INTO *PREFIX*preferences\n                        (SELECT uid, 'user_set_password', 'show', 0 FROM oc_users)\n                        ON duplicate key UPDATE configvalue = 0";
         $stmt = \OCP\DB::prepare($sql);
         $rowCount = $stmt->execute();
         \OCP\DB::commit();
         $this->consoleDisplay(' flags have been initialized to "false".');
     } catch (\Exception $e) {
         // rollBack not implemented in \OCP\DB! (ownCloud 7.0.5)
         $conn = \OCP\DB::getConnection();
         $conn->rollBack();
         $this->consoleDisplay('Fatal error: ' . $e->getMessage(), self::ERROR);
     }
 }
コード例 #11
0
 /**
  * @brief Alter the contents of a comment
  * @param Comment ID
  * @param Modified content to be presented in the comment
  * @return date|boolean (Modified time|false)
  */
 public static function editComment($comment_id, $content)
 {
     try {
         \OCP\DB::beginTransaction();
         $query = \OCP\DB::prepare('UPDATE `*PREFIX*collaboration_comment` SET `content`=?, `time`=CURRENT_TIMESTAMP WHERE `comment_id`=?');
         $result = $query->execute(array($content, $comment_id));
         $query = \OCP\DB::prepare('SELECT `time` FROM `*PREFIX*collaboration_comment` WHERE `comment_id`=?');
         $result = $query->execute(array($comment_id));
         $time = NULL;
         if ($row = $result->fetchRow()) {
             $time = $row['time'];
         }
         \OCP\DB::commit();
         return $time;
     } catch (\Exception $e) {
         OC_Log::write('collaboration', __METHOD__ . ', Exception: ' . $e->getMessage(), OCP\Util::DEBUG);
         return false;
     }
 }
コード例 #12
0
 /**
  * @brief Delete a member from a role of a project
  * @param Project ID from which the role has to be removed
  * @param Member whose role has to be removed
  * @param Role to be removed
  * @param Member who removed the other member from his/her role
  * @param Whether the calling method has already initiated the (database) transaction
  * @return int|boolean (ID of the post intimating the role removal|false)
  */
 public static function deleteMemberRole($pid, $member, $role, $user, $inTransaction = false)
 {
     try {
         if (!$inTransaction) {
             \OCP\DB::beginTransaction();
         }
         // Remove from all roles
         if (is_null($pid) && is_null($role)) {
             $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*collaboration_works_on` WHERE `member`=?');
             $result = $query->execute(array($member));
         } else {
             $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*collaboration_works_on` WHERE `pid`=? AND `member`=? AND `role`=?');
             $result = $query->execute(array($pid, $member, $role));
         }
         // Member removed from owncloud
         if (is_null($pid)) {
             OC_Collaboration_Task::removeMembersTasks($member, $user, true);
         } else {
             if (!self::isMemberWorkingOnProject($member, $pid)) {
                 OC_Collaboration_Task::unassignMembersTasks($member, $pid, $user, true);
             }
         }
         $post_id = OC_Collaboration_Post::createPost('Removed from role', 'You are removed from \'' . $role . '\' role from project \'' . self::getProjectTitle($pid) . '\'.', $user, $pid, 'Role Deletion', array($member), true);
         if (!$inTransaction) {
             \OCP\DB::commit();
         }
         return $post_id;
     } catch (\Exception $e) {
         OC_Log::write('collaboration', __METHOD__ . ', Exception: ' . $e->getMessage(), OCP\Util::DEBUG);
         return false;
     }
 }
コード例 #13
0
ファイル: smsmapper.php プロジェクト: nerzhul/ocsms
 public function writeToDB($userId, $smsList, $purgeAllSmsBeforeInsert = false)
 {
     \OCP\DB::beginTransaction();
     if ($purgeAllSmsBeforeInsert === true) {
         $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ocsms_smsdatas ' . 'WHERE user_id = ?');
         $result = $query->execute(array($userId));
     }
     foreach ($smsList as $sms) {
         $smsFlags = sprintf("%s%s", $sms["read"] === "true" ? "1" : "0", $sms["seen"] === "true" ? "1" : "0");
         // Only delete if we haven't purged the DB
         if ($purgeAllSmsBeforeInsert === false) {
             // Remove previous record
             // @ TODO: only update the required fields, getAllIds can be useful
             $query = \OCP\DB::prepare('DELETE FROM *PREFIX*ocsms_smsdatas ' . 'WHERE user_id = ? AND sms_id = ?');
             $result = $query->execute(array($userId, (int) $sms["_id"]));
         }
         $now = date("Y-m-d H:i:s");
         $query = \OCP\DB::prepare('INSERT INTO *PREFIX*ocsms_smsdatas ' . '(user_id, added, lastmodified, sms_flags, sms_date, sms_id,' . 'sms_address, sms_msg, sms_mailbox, sms_type) VALUES ' . '(?,?,?,?,?,?,?,?,?,?)');
         $result = $query->execute(array($userId, $now, $now, $smsFlags, $sms["date"], (int) $sms["_id"], $sms["address"], $sms["body"], (int) $sms["mbox"], (int) $sms["type"]));
     }
     \OCP\DB::commit();
 }
コード例 #14
0
 /**
  * @brief Edit the given post with the given title and content
  * @param Post ID
  * @param Title of the post
  * @param Modified post content
  * @return boolean (true|false)
  */
 public static function editPost($post_id, $title, $content)
 {
     try {
         \OCP\DB::beginTransaction();
         $query = \OCP\DB::prepare('UPDATE `*PREFIX*collaboration_post` SET `title`=?, `content`=?, `time`=CURRENT_TIMESTAMP WHERE `post_id`=?');
         $del_comment = \OCP\DB::prepare('DELETE FROM `*PREFIX*collaboration_comment` WHERE `post_id`=?');
         $result = $query->execute(array($title, $content, $post_id));
         $result = $del_comment->execute(array($post_id));
         \OCP\DB::commit();
         return true;
     } catch (\Exception $e) {
         OC_Log::write('collaboration', __METHOD__ . ', Exception: ' . $e->getMessage(), OCP\Util::DEBUG);
         return false;
     }
 }
コード例 #15
0
ファイル: api.php プロジェクト: CDN-Sparks/owncloud
     $data['songs'] = $collection->getSongs();
     \OCP\JSON::encodedPrint($data);
     break;
 case 'scan':
     \OCP\DB::beginTransaction();
     set_time_limit(0);
     //recursive scan can take a while
     $eventSource = new \OC_EventSource();
     $watcher = new ScanWatcher($eventSource);
     $scanner = new Scanner($collection);
     \OC_Hook::connect('media', 'song_count', $watcher, 'count');
     \OC_Hook::connect('media', 'song_scanned', $watcher, 'scanned');
     $scanner->scanCollection();
     $watcher->done();
     $eventSource->close();
     \OCP\DB::commit();
     break;
 case 'scanFile':
     $scanner = new Scanner($collection);
     echo $scanner->scanFile($arguments['path']) ? 'true' : 'false';
     break;
 case 'get_artists':
     \OCP\JSON::encodedPrint($collection->getArtists($arguments['search']));
     break;
 case 'get_albums':
     \OCP\JSON::encodedPrint($collection->getAlbums($arguments['artist'], $arguments['search']));
     break;
 case 'get_songs':
     \OCP\JSON::encodedPrint($collection->getSongs($arguments['artist'], $arguments['album'], $arguments['search']));
     break;
 case 'get_path_info':
コード例 #16
0
 /**
  * @brief Changes the status of the task
  * @param Title ID
  * @param Title of the task
  * @param Task modified status
  * @param Member who created the task
  * @param Member who modified the task status
  * @param Reason for status change
  * @param Whether the calling method has already initiated the (database) transaction
  * @return boolean (true|false)
  */
 public static function changeStatus($tid, $title, $status, $creator, $member = NULL, $reason = NULL, $inTransaction = false)
 {
     try {
         if (!$inTransaction) {
             \OCP\DB::beginTransaction();
         }
         if (strcmp($status, 'Unassigned') == 0) {
             $member = NULL;
         } else {
             $member = self::getWorkingMember($tid);
         }
         $query = OCP\DB::prepare('INSERT INTO `*PREFIX*collaboration_task_status`(`tid`, `status`, `member`, `reason`, `last_updated_time`) VALUES(?, ?, ?, ?, CURRENT_TIMESTAMP)');
         $result = $query->execute(array($tid, $status, $member, $reason));
         $post_to = array();
         if (is_null($member)) {
             $post_to = array(self::getTaskCreator($tid));
         } else {
             $post_to = array(self::getTaskCreator($tid), $member);
         }
         OC_Collaboration_Post::createPost('Task Status Changed', 'The status of the task \'' . $title . '\' has been changed. Current status: ' . self::getStatusInFormat($status, $member, self::getTaskCreator($tid)) . '.', $creator, self::getProjectId($tid), 'Task Status Updation', $post_to, true, $tid);
         if (!$inTransaction) {
             \OCP\DB::commit();
         }
     } catch (\Exception $e) {
         OC_Log::write('collaboration', __METHOD__ . ', Exception: ' . $e->getMessage(), OCP\Util::DEBUG);
         return false;
     }
     return true;
 }