Пример #1
0
 /**
  * @brief returns true if and only if a user with the given uuid exists in the LDAP
  * @param string a unique user identifier
  * @return a boolean value
  */
 public function uuidExists($uuid)
 {
     //check backend status
     if (!$this->enabled) {
         return false;
     }
     //check tables
     $query = \OCP\DB::prepare('SELECT COUNT(*) FROM *PREFIX*ldap_user_mapping WHERE owncloud_name = ?');
     $result = $query->execute(array($uuid));
     if (!\OCP\DB::isError($result)) {
         $count = $result->fetchAll(\PDO::FETCH_COLUMN, 0);
         if ($count[0] === 1) {
             return true;
         }
     }
     //check primary LDAP server
     $this->connect();
     $uuid = $this->access->escapeFilterPart($uuid);
     $filter = \OCP\Util::mb_str_replace('%uid', $uuid, $this->access->connection->ldapLoginFilter, 'UTF-8');
     $result = $this->access->fetchListOfUsers($filter, $this->connection->ldapUuidAttribute);
     if (count($result) === 1 && $result[0]['count'] === 1) {
         return true;
     }
     return false;
 }
Пример #2
0
 /**
  * test if the mount point moves up if the parent folder no longer exists
  */
 function testShareMountLoseParentFolder()
 {
     // share to user
     $fileinfo = $this->view->getFileInfo($this->folder);
     $result = \OCP\Share::shareItem('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2, 31);
     $statement = "UPDATE `*PREFIX*share` SET `file_target` = ? where `share_with` = ?";
     $query = \OCP\DB::prepare($statement);
     $arguments = array('/foo/bar' . $this->folder, self::TEST_FILES_SHARING_API_USER2);
     $query->execute($arguments);
     $query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share`');
     $result = $query->execute();
     $shares = $result->fetchAll();
     $this->assertSame(1, count($shares));
     $share = reset($shares);
     $this->assertSame('/foo/bar' . $this->folder, $share['file_target']);
     self::loginHelper(self::TEST_FILES_SHARING_API_USER2);
     // share should have moved up
     $query = \OCP\DB::prepare('SELECT * FROM `*PREFIX*share`');
     $result = $query->execute();
     $shares = $result->fetchAll();
     $this->assertSame(1, count($shares));
     $share = reset($shares);
     $this->assertSame($this->folder, $share['file_target']);
     //cleanup
     self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
     \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_USER, self::TEST_FILES_SHARING_API_USER2);
     $this->view->unlink($this->folder);
 }
Пример #3
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;
        }
    }
Пример #4
0
 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();
 }
Пример #5
0
 protected function deleteTestActivities()
 {
     $query = DB::prepare('DELETE FROM `*PREFIX*activity` WHERE `app` = ?');
     $query->execute(array('test'));
     $query = DB::prepare('DELETE FROM `*PREFIX*activity_mq` WHERE `amq_appid` = ?');
     $query->execute(array('test'));
 }
 /**
  * Background scanner main job
  * @return null
  */
 public function run()
 {
     if (!$this->initFS()) {
         return;
     }
     // locate files that are not checked yet
     $dirMimetypeId = \OC::$server->getMimeTypeLoader()->getId('httpd/unix-directory');
     $sql = 'SELECT `*PREFIX*filecache`.`fileid`, `*PREFIX*storages`.*' . ' FROM `*PREFIX*filecache`' . ' LEFT JOIN `*PREFIX*files_antivirus` ON `*PREFIX*files_antivirus`.`fileid` = `*PREFIX*filecache`.`fileid`' . ' JOIN `*PREFIX*storages` ON `*PREFIX*storages`.`numeric_id` = `*PREFIX*filecache`.`storage`' . ' WHERE `mimetype` != ?' . ' AND (`*PREFIX*storages`.`id` LIKE ? OR `*PREFIX*storages`.`id` LIKE ?)' . ' AND (`*PREFIX*files_antivirus`.`fileid` IS NULL OR `mtime` > `check_time`)' . ' AND `path` LIKE ?';
     $stmt = \OCP\DB::prepare($sql, 5);
     try {
         $result = $stmt->execute(array($dirMimetypeId, 'local::%', 'home::%', 'files/%'));
         if (\OCP\DB::isError($result)) {
             \OCP\Util::writeLog('files_antivirus', __METHOD__ . 'DB error: ' . \OCP\DB::getErrorMessage($result), \OCP\Util::ERROR);
             return;
         }
     } catch (\Exception $e) {
         \OCP\Util::writeLog('files_antivirus', __METHOD__ . ', exception: ' . $e->getMessage(), \OCP\Util::ERROR);
         return;
     }
     $view = new \OC\Files\View('/');
     while ($row = $result->fetchRow()) {
         $path = $view->getPath($row['fileid']);
         if (!is_null($path)) {
             $item = new Item($this->l10n, $view, $path, $row['fileid']);
             $scanner = $this->scannerFactory->getScanner();
             $status = $scanner->scan($item);
             $status->dispatch($item, true);
         }
     }
     \OC_Util::tearDownFS();
 }
Пример #7
0
 public function getChildren($itemSource)
 {
     $children = array();
     $parents = array($itemSource);
     $query = \OCP\DB::prepare('SELECT `id` FROM `*PREFIX*mimetypes` WHERE `mimetype` = ?');
     $result = $query->execute(array('httpd/unix-directory'));
     if ($row = $result->fetchRow()) {
         $mimetype = $row['id'];
     } else {
         $mimetype = -1;
     }
     while (!empty($parents)) {
         $parents = "'" . implode("','", $parents) . "'";
         $query = \OCP\DB::prepare('SELECT `fileid`, `name`, `mimetype` FROM `*PREFIX*filecache`' . ' WHERE `parent` IN (' . $parents . ')');
         $result = $query->execute();
         $parents = array();
         while ($file = $result->fetchRow()) {
             $children[] = array('source' => $file['fileid'], 'file_path' => $file['name']);
             // If a child folder is found look inside it
             if ($file['mimetype'] == $mimetype) {
                 $parents[] = $file['fileid'];
             }
         }
     }
     return $children;
 }
 public function getstats()
 {
     $timeperiod = json_decode($_POST['accessstats']);
     $from_timestamp = date("Y-m-d 0:0:0", strtotime($timeperiod->from_date));
     $to_timestamp = date("Y-m-d 23:59:59", strtotime($timeperiod->to_date));
     $sql = 'SELECT id, time, username, path FROM `*PREFIX*accessstats_items` WHERE time >= ? and time <= ?';
     error_log($from_timestamp);
     $query = \OCP\DB::prepare($sql);
     $query->bindparam(1, $from_timestamp);
     $query->bindparam(2, $to_timestamp);
     $result = $query->execute();
     $data = "id,time,username,path\r\n";
     while ($row = $result->fetchRow()) {
         $data .= "\"" . $row['id'] . "\",\"" . $row['time'] . "\",\"" . $row['username'] . "\",\"" . $row['path'] . "\"\r\n";
     }
     header('Content-Description: File Transfer');
     //header('Content-Type: application/octet-stream');
     header('Content-Disposition: attachment; filename=access_report.csv');
     header('Expires: 0');
     header('Cache-Control: must-revalidate');
     header('Pragma: public');
     header('Content-Length: ' . strlen($data));
     print $data;
     exit(0);
 }
Пример #9
0
 function import()
 {
     switch ($this->appinfo->version) {
         default:
             // All versions of the app have had the same db structure, so all can use the same import function
             $query = $this->content->prepare('SELECT * FROM contacts_addressbooks WHERE userid = ?');
             $results = $query->execute(array($this->olduid));
             $idmap = array();
             $app = new \OCA\Contacts\App($this->uid);
             while ($row = $results->fetchRow()) {
                 // Import each addressbook
                 $addressbookquery = \OCP\DB::prepare('INSERT INTO `*PREFIX*contacts_addressbooks` ' . '(`userid`, `displayname`, `uri`, `description`, `ctag`) VALUES (?, ?, ?, ?, ?)');
                 $addressbookquery->execute(array($this->uid, $row['displayname'], $row['uri'], $row['description'], $row['ctag']));
                 // Map the id
                 $idmap[$row['id']] = \OCP\DB::insertid('*PREFIX*contacts_addressbooks');
                 // Make the addressbook active
                 $addressbook = $app->getAddressBook('local', $idmap[$row['id']]);
                 $addressbook->setActive(true);
             }
             // Now tags
             foreach ($idmap as $oldid => $newid) {
                 $query = $this->content->prepare('SELECT * FROM contacts_cards WHERE addressbookid = ?');
                 $results = $query->execute(array($oldid));
                 while ($row = $results->fetchRow()) {
                     // Import the contacts
                     $contactquery = \OCP\DB::prepare('INSERT INTO `*PREFIX*contacts_cards` ' . '(`addressbookid`, `fullname`, `carddata`, `uri`, `lastmodified`) VALUES (?, ?, ?, ?, ?)');
                     $contactquery->execute(array($newid, $row['fullname'], $row['carddata'], $row['uri'], $row['lastmodified']));
                 }
             }
             // All done!
             break;
     }
     return true;
 }
Пример #10
0
 /**
  * get the sha256 hash of the password needed for ampache
  *
  * @param array $params, parameters passed from OC_Hook
  */
 public static function passwordChangeListener($params)
 {
     if (isset($params['uid']) and $params['password']) {
         $name = $params['uid'];
         $password = hash('sha256', $params['password']);
         $query = \OCP\DB::prepare("UPDATE `*PREFIX*media_users` SET `user_password_sha256` = ? WHERE `user_id` = ?");
         $query->execute(array($password, $name));
     }
 }
Пример #11
0
 public function update(OtpUserData $OtpUserData)
 {
     $sql = 'UPDATE  `' . $this->getTableName() . '` ' . 'SET `request_prefix_pin` =?,' . '`algorithm` =?,' . '`token_seed` =?,' . '`user_pin` =?,' . '`number_of_digits` =?,' . '`time_interval` =?,' . '`last_event` =?,' . '`last_login` =?,' . '`error_counter` =?,' . '`locked` =?,' . '`qrcode` =? ' . 'WHERE `user`=? ';
     //print_r($OtpUserData);
     $query = \OCP\DB::prepare($sql);
     $result = $query->execute(array($OtpUserData->getRequestPrefixPin(), $OtpUserData->getAlgorithm(), $OtpUserData->getTokenSeed(), $OtpUserData->getUserPin(), $OtpUserData->getNumberOfDigits(), $OtpUserData->getTimeInterval(), $OtpUserData->getLastEvent(), $OtpUserData->getLastLogin(), $OtpUserData->getErrorCounter(), $OtpUserData->getLocked(), $OtpUserData->getQrcode(), $OtpUserData->getUser()));
     //~ print_r($query);exit;
     return $result;
 }
Пример #12
0
 public function setFileData($path, $width, $height)
 {
     $stmt = \OCP\DB::prepare('INSERT INTO `*PREFIX*pictures_images_cache` (`uid_owner`, `path`, `width`, `height`) VALUES (?, ?, ?, ?)');
     $stmt->execute(array(\OCP\USER::getUser(), $path, $width, $height));
     $ret = array('path' => $path, 'width' => $width, 'height' => $height);
     $dir = dirname($path);
     $this->cache[$dir][$path] = $ret;
     return $ret;
 }
Пример #13
0
 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();
 }
Пример #14
0
 function tearDown()
 {
     $this->view->unlink($this->filename);
     $this->view->deleteAll($this->folder);
     self::$tempStorage = null;
     // clear database table
     $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*share`');
     $query->execute();
     parent::tearDown();
 }
Пример #15
0
 public function getSetting($userId, $settingName)
 {
     $sql = 'SELECT value FROM ' . '*PREFIX*weather_config WHERE `user` = ? and `key` = ?';
     $query = \OCP\DB::prepare($sql);
     $result = $query->execute(array($userId, $settingName));
     if ($row = $result->fetchRow()) {
         return $row["value"];
     }
     return 0;
 }
Пример #16
0
 protected function tearDown()
 {
     self::loginHelper(self::TEST_FILES_SHARING_API_USER1);
     $this->view->unlink($this->filename);
     $this->view->deleteAll($this->folder);
     self::$tempStorage = null;
     // clear database table
     $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*share`');
     $query->execute();
     parent::tearDown();
 }
Пример #17
0
 public function migrate()
 {
     $sql = 'SELECT user_id, datakey, datavalue FROM ' . '*PREFIX*ocsms_user_datas WHERE datakey LIKE \'lastReadDate-%\'';
     $query = \OCP\DB::prepare($sql);
     $result = $query->execute(array());
     while ($row = $result->fetchRow()) {
         $pn = preg_replace("#lastReadDate[-]#", "", $row["datakey"]);
         $this->setLast($row["user_id"], $pn, $row["datavalue"]);
     }
     $query = \OCP\DB::prepare("DELETE FROM *PREFIX*ocsms_user_datas WHERE datakey LIKE 'lastReadDate-%'");
     $query->execute(array());
 }
Пример #18
0
 public function testTableTruncate()
 {
     $statement = \OCP\DB::prepare('INSERT INTO `*PREFIX*ldap_user_mapping` (`ldap_dn`, `owncloud_name`, `directory_uuid`) VALUES (?, ?, ?)');
     $statement->execute(array('db01', 'oc1', '000-0000-0000'));
     $statement->execute(array('db02', 'oc2', '000-0000-0001'));
     $statement = \OCP\DB::prepare('SELECT count(*) FROM `*PREFIX*ldap_user_mapping`');
     $result = $statement->execute();
     $this->assertEquals(2, $result->fetchOne());
     Helper::clearMapping('user');
     $result = $statement->execute();
     $this->assertEquals(0, $result->fetchOne());
 }
Пример #19
0
 public function getKey($key)
 {
     try {
         $query = \OCP\DB::prepare("SELECT `value` FROM `*PREFIX*ocsms_config` WHERE `key` = ? AND `user` = ?");
         $result = $query->execute(array($key, $this->user));
         while ($row = $result->fetchRow()) {
             return $this->crypto->decrypt($row["value"]);
         }
         return false;
     } catch (DoesNotExistException $e) {
         return false;
     }
 }
Пример #20
0
 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();
 }
Пример #21
0
 /**
  * delete a key
  * test: curl http://login:passwd@oc/core/ocs/v1.php/privatedata/deleteattribute/testy/123 --data "post=1"
  * @param array $parameters The OCS parameter
  * @return \OC_OCS_Result
  */
 public static function delete($parameters)
 {
     $user = OC_User::getUser();
     if (!isset($parameters['app']) or !isset($parameters['key'])) {
         //key and app are NOT optional here
         return new OC_OCS_Result(null, 101);
     }
     $app = addslashes(strip_tags($parameters['app']));
     $key = addslashes(strip_tags($parameters['key']));
     // delete in DB
     $query = \OCP\DB::prepare('DELETE FROM `*PREFIX*privatedata`  WHERE `user` = ? AND `app` = ? AND `key` = ? ');
     $query->execute(array($user, $app, $key));
     return new OC_OCS_Result(null, 100);
 }
Пример #22
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;
 }
Пример #23
0
 public function dropTableEncryption()
 {
     $tableName = $this->tableName;
     if (!\OC_DB::tableExists($tableName)) {
         return;
     }
     $sql = "select `uid`, max(`recovery_enabled`) as `recovery_enabled`, min(`migration_status`) as `migration_status` from `*PREFIX*{$tableName}` group by `uid`";
     $query = \OCP\DB::prepare($sql);
     $result = $query->execute(array())->fetchAll();
     foreach ($result as $row) {
         \OC_Preferences::setValue($row['uid'], 'files_encryption', 'recovery_enabled', $row['recovery_enabled']);
         \OC_Preferences::setValue($row['uid'], 'files_encryption', 'migration_status', $row['migration_status']);
     }
     \OC_DB::dropTable($tableName);
 }
Пример #24
0
    public function getOpsAfter($esId, $seq)
    {
        if ($seq == "") {
            $seq = -1;
        }
        $query = \OCP\DB::prepare('
			SELECT `opspec`
			FROM ' . self::DB_TABLE . '
			WHERE `es_id`=?
				AND `seq`>?
			ORDER BY `seq` ASC
			');
        $result = $query->execute(array($esId, $seq));
        return $result->fetchAll();
    }
Пример #25
0
 protected function setUp()
 {
     parent::setUp();
     $this->originalWEBROOT = \OC::$WEBROOT;
     \OC::$WEBROOT = '';
     \OC_User::createUser('activity-api-user1', 'activity-api-user1');
     \OC_User::createUser('activity-api-user2', 'activity-api-user2');
     $activities = array(array('affectedUser' => 'activity-api-user1', 'subject' => 'created_self', 'subjectparams' => array('/A/B.txt'), 'type' => 'file_created'), array('affectedUser' => 'activity-api-user1', 'subject' => 'deleted_by', 'subjectparams' => array('/A/B.txt', 'Deleter'), 'type' => 'file_deleted'));
     $queryActivity = \OCP\DB::prepare('INSERT INTO `*PREFIX*activity`(`app`, `subject`, `subjectparams`, `message`, `messageparams`, `file`, `link`, `user`, `affecteduser`, `timestamp`, `priority`, `type`)' . ' VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )');
     $loop = 0;
     foreach ($activities as $activity) {
         $queryActivity->execute(array('files', $activity['subject'], serialize($activity['subjectparams']), '', serialize(array()), 'file', 'link', 'user', $activity['affectedUser'], time() + $loop, IExtension::PRIORITY_MEDIUM, $activity['type']));
         $loop++;
     }
 }
Пример #26
0
 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;
 }
Пример #27
0
 protected function setUp()
 {
     parent::setUp();
     $this->originalWEBROOT = \OC::$WEBROOT;
     \OC::$WEBROOT = '';
     \OC::$server->getUserManager()->createUser('activity-api-user1', 'activity-api-user1');
     \OC::$server->getUserManager()->createUser('activity-api-user2', 'activity-api-user2');
     $activities = array(array('affectedUser' => 'activity-api-user1', 'subject' => 'subject1', 'subjectparams' => array('/A/B.txt'), 'type' => 'type1'), array('affectedUser' => 'activity-api-user1', 'subject' => 'subject2', 'subjectparams' => array('/A/B.txt', 'User'), 'type' => 'type2'));
     $queryActivity = \OCP\DB::prepare('INSERT INTO `*PREFIX*activity`(`app`, `subject`, `subjectparams`, `message`, `messageparams`, `file`, `link`, `user`, `affecteduser`, `timestamp`, `priority`, `type`)' . ' VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )');
     $loop = 0;
     foreach ($activities as $activity) {
         $queryActivity->execute(array('app1', $activity['subject'], json_encode($activity['subjectparams']), '', json_encode([]), 'file', 'link', 'user', $activity['affectedUser'], time() + $loop, IExtension::PRIORITY_MEDIUM, $activity['type']));
         $loop++;
     }
 }
Пример #28
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);
     }
 }
Пример #29
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);
     }
 }
Пример #30
0
 public static function Add($URL)
 {
     try {
         self::Load();
         $URL = urldecode($URL);
         if (Tools::CheckURL($URL)) {
             if (preg_match('/^https{0,1}:\\/\\/www\\.youtube\\.com\\/watch\\?v=.*$/', $URL) == 1) {
                 $YouTube = new YouTube(self::$YTDLBinary, $URL);
                 if (!is_null(self::$ProxyAddress) && self::$ProxyPort > 0 && self::$ProxyPort <= 65536) {
                     $YouTube->SetProxy(self::$ProxyAddress, self::$ProxyPort);
                 }
                 $VideoData = $YouTube->GetVideoData();
                 if (!isset($VideoData['VIDEO']) || !isset($VideoData['FULLNAME'])) {
                     return array('ERROR' => true, 'MESSAGE' => 'UnabletoretrievetrueYouTubevideoURL');
                 }
                 $DL = array('URL' => $VideoData['VIDEO'], 'FILENAME' => Tools::CleanString($VideoData['FULLNAME']), 'PROTO' => 'Video');
             } else {
                 $DL = array('URL' => $URL, 'FILENAME' => Tools::CleanString(substr($URL, strrpos($URL, '/') + 1)), 'PROTO' => strtoupper(substr($URL, 0, strpos($URL, ':'))));
             }
             $OPTIONS = array('dir' => self::$AbsoluteDownloadsFolder, 'out' => $DL['FILENAME']);
             if (!is_null(self::$ProxyAddress) && self::$ProxyPort > 0 && self::$ProxyPort <= 65536) {
                 $OPTIONS['all-proxy'] = rtrim(self::$ProxyAddress, '/') . ':' . self::$ProxyPort;
                 if (!is_null(self::$ProxyUser) && !is_null(self::$ProxyPasswd)) {
                     $OPTIONS['all-proxy-user'] = self::$ProxyUser;
                     $OPTIONS['all-proxy-passwd'] = self::$ProxyPasswd;
                 }
             }
             $AddURI = Aria2::AddUri(array($DL['URL']), $OPTIONS);
             if (isset($AddURI['result']) && !is_null($AddURI['result'])) {
                 $SQL = 'INSERT INTO `*PREFIX*ocdownloader_queue` (`UID`, `GID`, `FILENAME`, `PROTOCOL`, `IS_CLEANED`, `STATUS`, `TIMESTAMP`) VALUES (?, ?, ?, ?, ?, ?, ?)';
                 if (self::$DbType == 1) {
                     $SQL = 'INSERT INTO *PREFIX*ocdownloader_queue ("UID", "GID", "FILENAME", "PROTOCOL", "IS_CLEANED", "STATUS", "TIMESTAMP") VALUES (?, ?, ?, ?, ?, ?, ?)';
                 }
                 $Query = \OCP\DB::prepare($SQL);
                 $Result = $Query->execute(array(self::$CurrentUID, $AddURI['result'], $DL['FILENAME'], strcmp($DL['PROTO'], 'Video') == 0 ? 'YT ' . (string) self::$L10N->t('Video') : $DL['PROTO'], 1, 1, time()));
                 return array('ERROR' => false, 'FILENAME' => $DL['FILENAME']);
             } else {
                 return array('ERROR' => true, 'MESSAGE' => 'ReturnedGIDisnullIsAria2crunningasadaemon');
             }
         } else {
             return array('ERROR' => true, 'MESSAGE' => 'InvalidURL');
         }
     } catch (Exception $E) {
         return array('ERROR' => true, 'MESSAGE' => 'Unabletolaunchthedownload');
     }
 }