commit
26732ecaa6
12
lib/app.php
12
lib/app.php
|
@ -172,9 +172,17 @@ class OC_App{
|
|||
return array();
|
||||
}
|
||||
$apps=array('files');
|
||||
$query = OC_DB::prepare( 'SELECT `appid` FROM `*PREFIX*appconfig`'
|
||||
.' WHERE `configkey` = \'enabled\' AND `configvalue`=\'yes\'' );
|
||||
$sql = 'SELECT `appid` FROM `*PREFIX*appconfig`'
|
||||
.' WHERE `configkey` = \'enabled\' AND `configvalue`=\'yes\'';
|
||||
if (OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') { //FIXME oracle hack
|
||||
$sql = 'SELECT `appid` FROM `*PREFIX*appconfig`'
|
||||
.' WHERE `configkey` = \'enabled\' AND to_char(`configvalue`)=\'yes\'';
|
||||
}
|
||||
$query = OC_DB::prepare( $sql );
|
||||
$result=$query->execute();
|
||||
if( \OC_DB::isError($result)) {
|
||||
throw new DatabaseException($result->getMessage(), $query);
|
||||
}
|
||||
while($row=$result->fetchRow()) {
|
||||
if(array_search($row['appid'], $apps)===false) {
|
||||
$apps[]=$row['appid'];
|
||||
|
|
17
lib/db.php
17
lib/db.php
|
@ -273,18 +273,13 @@ class OC_DB {
|
|||
break;
|
||||
case 'oci':
|
||||
$dsn = array(
|
||||
'phptype' => 'oci8',
|
||||
'username' => $user,
|
||||
'password' => $pass,
|
||||
'charset' => 'AL32UTF8',
|
||||
'phptype' => 'oci8',
|
||||
'username' => $user,
|
||||
'password' => $pass,
|
||||
'service' => $name,
|
||||
'hostspec' => $host,
|
||||
'charset' => 'AL32UTF8',
|
||||
);
|
||||
if ($host != '') {
|
||||
$dsn['hostspec'] = $host;
|
||||
$dsn['database'] = $name;
|
||||
} else { // use dbname for hostspec
|
||||
$dsn['hostspec'] = $name;
|
||||
$dsn['database'] = $user;
|
||||
}
|
||||
break;
|
||||
case 'mssql':
|
||||
$dsn = array(
|
||||
|
|
|
@ -145,8 +145,11 @@ class Cache {
|
|||
if ($fileId > -1) {
|
||||
$query = \OC_DB::prepare(
|
||||
'SELECT `fileid`, `storage`, `path`, `parent`, `name`, `mimetype`, `mimepart`, `size`, `mtime`, `storage_mtime`, `encrypted`, `etag`
|
||||
FROM `*PREFIX*filecache` WHERE parent = ? ORDER BY `name` ASC');
|
||||
FROM `*PREFIX*filecache` WHERE `parent` = ? ORDER BY `name` ASC');
|
||||
$result = $query->execute(array($fileId));
|
||||
if (\OC_DB::isError($result)) {
|
||||
\OCP\Util::writeLog('cache', 'getFolderContents failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
||||
}
|
||||
$files = $result->fetchAll();
|
||||
foreach ($files as &$file) {
|
||||
$file['mimetype'] = $this->getMimetype($file['mimetype']);
|
||||
|
@ -201,7 +204,7 @@ class Cache {
|
|||
. ' VALUES(' . implode(', ', $valuesPlaceholder) . ')');
|
||||
$result = $query->execute($params);
|
||||
if (\OC_DB::isError($result)) {
|
||||
\OCP\Util::writeLog('cache', 'Insert to cache failed: ' . $result, \OCP\Util::ERROR);
|
||||
\OCP\Util::writeLog('cache', 'Insert to cache failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
||||
}
|
||||
|
||||
return (int)\OC_DB::insertid('*PREFIX*filecache');
|
||||
|
@ -372,6 +375,9 @@ class Cache {
|
|||
$pathHash = md5($file);
|
||||
$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*filecache` WHERE `storage` = ? AND `path_hash` = ?');
|
||||
$result = $query->execute(array($this->getNumericStorageId(), $pathHash));
|
||||
if( \OC_DB::isError($result)) {
|
||||
\OCP\Util::writeLog('cache', 'get status failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
||||
}
|
||||
if ($row = $result->fetchRow()) {
|
||||
if ((int)$row['size'] === -1) {
|
||||
return self::SHALLOW;
|
||||
|
@ -509,8 +515,11 @@ class Cache {
|
|||
*/
|
||||
public function getIncomplete() {
|
||||
$query = \OC_DB::prepare('SELECT `path` FROM `*PREFIX*filecache`'
|
||||
. ' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC LIMIT 1');
|
||||
. ' WHERE `storage` = ? AND `size` = -1 ORDER BY `fileid` DESC',1);
|
||||
$result = $query->execute(array($this->getNumericStorageId()));
|
||||
if (\OC_DB::isError($result)) {
|
||||
\OCP\Util::writeLog('cache', 'getIncomplete failed: ' . $result->getMessage(), \OCP\Util::ERROR);
|
||||
}
|
||||
if ($row = $result->fetchRow()) {
|
||||
return $row['path'];
|
||||
} else {
|
||||
|
|
|
@ -152,8 +152,12 @@ class OC_Setup {
|
|||
self::setupOCIDatabase($dbhost, $dbuser, $dbpass, $dbname, $dbtableprefix, $dbtablespace, $username);
|
||||
} catch (Exception $e) {
|
||||
$error[] = array(
|
||||
'error' => $l->t('Oracle username and/or password not valid'),
|
||||
'hint' => $l->t('You need to enter either an existing account or the administrator.')
|
||||
'error' => $l->t('Oracle connection could not be established'),
|
||||
'hint' => $e->getMessage().' Check environment: ORACLE_HOME='.getenv('ORACLE_HOME')
|
||||
.' ORACLE_SID='.getenv('ORACLE_SID')
|
||||
.' LD_LIBRARY_PATH='.getenv('LD_LIBRARY_PATH')
|
||||
.' NLS_LANG='.getenv('NLS_LANG')
|
||||
.' tnsnames.ora is '.(is_readable(getenv('ORACLE_HOME').'/network/admin/tnsnames.ora')?'':'not ').'readable'
|
||||
);
|
||||
return $error;
|
||||
}
|
||||
|
@ -452,9 +456,13 @@ class OC_Setup {
|
|||
} else {
|
||||
$easy_connect_string = '//'.$e_host.'/'.$e_dbname;
|
||||
}
|
||||
\OC_Log::write('setup oracle', 'connect string: ' . $easy_connect_string, \OC_Log::DEBUG);
|
||||
$connection = @oci_connect($dbuser, $dbpass, $easy_connect_string);
|
||||
if(!$connection) {
|
||||
$e = oci_error();
|
||||
if (is_array ($e) && isset ($e['message'])) {
|
||||
throw new Exception($e['message']);
|
||||
}
|
||||
throw new Exception($l->t('Oracle username and/or password not valid'));
|
||||
}
|
||||
//check for roles creation rights in oracle
|
||||
|
|
|
@ -610,6 +610,10 @@ class OC_User {
|
|||
public static function isEnabled($userid) {
|
||||
$sql = 'SELECT `userid` FROM `*PREFIX*preferences`'
|
||||
.' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND `configvalue` = ?';
|
||||
if (OC_Config::getValue( 'dbtype', 'sqlite' ) === 'oci') { //FIXME oracle hack
|
||||
$sql = 'SELECT `userid` FROM `*PREFIX*preferences`'
|
||||
.' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ? AND to_char(`configvalue`) = ?';
|
||||
}
|
||||
$stmt = OC_DB::prepare($sql);
|
||||
if ( ! OC_DB::isError($stmt) ) {
|
||||
$result = $stmt->execute(array($userid, 'core', 'enabled', 'false'));
|
||||
|
|
|
@ -136,7 +136,7 @@ class OC_User_Database extends OC_User_Backend {
|
|||
*/
|
||||
public function getDisplayName($uid) {
|
||||
if( $this->userExists($uid) ) {
|
||||
$query = OC_DB::prepare( 'SELECT displayname FROM `*PREFIX*users` WHERE `uid` = ?' );
|
||||
$query = OC_DB::prepare( 'SELECT `displayname` FROM `*PREFIX*users` WHERE `uid` = ?' );
|
||||
$result = $query->execute( array( $uid ))->fetchAll();
|
||||
$displayName = trim($result[0]['displayname'], ' ');
|
||||
if ( !empty($displayName) ) {
|
||||
|
|
|
@ -173,7 +173,8 @@ class OC_Util {
|
|||
//check for database drivers
|
||||
if(!(is_callable('sqlite_open') or class_exists('SQLite3'))
|
||||
and !is_callable('mysql_connect')
|
||||
and !is_callable('pg_connect')) {
|
||||
and !is_callable('pg_connect')
|
||||
and !is_callable('oci_connect')) {
|
||||
$errors[]=array('error'=>'No database drivers (sqlite, mysql, or postgresql) installed.',
|
||||
'hint'=>'');//TODO: sane hint
|
||||
$web_server_restart= true;
|
||||
|
|
Loading…
Reference in New Issue