summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2012-08-06 13:49:54 -0400
committerMichael Gapczynski <mtgap@owncloud.com>2012-08-06 13:49:54 -0400
commitea2385432817dcf5ad47396d83932f564aa76e4b (patch)
treeeffc5c5489cf385ee79c73a4bea59605f53240f9 /lib
parentba0cf9817526e1206a25a5fe6d70255ab3c9e3bc (diff)
parentfe6450002d6059260c743f48b6f40378454fa1dc (diff)
downloadnextcloud-server-ea2385432817dcf5ad47396d83932f564aa76e4b.tar.gz
nextcloud-server-ea2385432817dcf5ad47396d83932f564aa76e4b.zip
Merge branch 'master' into share_api
Conflicts: apps/contacts/lib/app.php apps/contacts/templates/part.chooseaddressbook.rowfields.php
Diffstat (limited to 'lib')
-rwxr-xr-xlib/app.php13
-rw-r--r--lib/connector/sabre/directory.php20
-rw-r--r--lib/connector/sabre/locks.php11
-rw-r--r--lib/filechunking.php94
-rw-r--r--lib/installer.php40
-rw-r--r--lib/l10n/eo.php24
-rw-r--r--lib/l10n/es.php25
-rw-r--r--lib/l10n/et_EE.php25
-rw-r--r--lib/l10n/fi_FI.php3
-rw-r--r--lib/l10n/fr.php25
-rw-r--r--lib/l10n/it.php25
-rw-r--r--lib/l10n/uk.php24
-rw-r--r--lib/mimetypes.list.php3
-rw-r--r--lib/public/app.php2
-rwxr-xr-xlib/util.php10
15 files changed, 307 insertions, 37 deletions
diff --git a/lib/app.php b/lib/app.php
index d1018c37aa7..1c91818ca75 100755
--- a/lib/app.php
+++ b/lib/app.php
@@ -183,7 +183,7 @@ class OC_App{
if(!OC_Installer::isInstalled($app)){
// check if app is a shipped app or not. OCS apps have an integer as id, shipped apps use a string
if(!is_numeric($app)){
- OC_Installer::installShippedApp($app);
+ $app = OC_Installer::installShippedApp($app);
}else{
$download=OC_OCSClient::getApplicationDownload($app,1);
if(isset($download['downloadlink']) and $download['downloadlink']!='') {
@@ -205,6 +205,7 @@ class OC_App{
}else{
return false;
}
+ return $app;
}
/**
@@ -292,19 +293,19 @@ class OC_App{
if (OC_User::isLoggedIn()) {
// personal menu
$settings[] = array( "id" => "personal", "order" => 1, "href" => OC_Helper::linkTo( "settings", "personal.php" ), "name" => $l->t("Personal"), "icon" => OC_Helper::imagePath( "settings", "personal.svg" ));
-
+
// if there're some settings forms
if(!empty(self::$settingsForms))
// settings menu
$settings[]=array( "id" => "settings", "order" => 1000, "href" => OC_Helper::linkTo( "settings", "settings.php" ), "name" => $l->t("Settings"), "icon" => OC_Helper::imagePath( "settings", "settings.svg" ));
-
+
//SubAdmins are also allowed to access user management
if(OC_SubAdmin::isSubAdmin($_SESSION["user_id"]) || OC_Group::inGroup( $_SESSION["user_id"], "admin" )){
// admin users menu
$settings[] = array( "id" => "core_users", "order" => 2, "href" => OC_Helper::linkTo( "settings", "users.php" ), "name" => $l->t("Users"), "icon" => OC_Helper::imagePath( "settings", "users.svg" ));
}
-
-
+
+
// if the user is an admin
if(OC_Group::inGroup( $_SESSION["user_id"], "admin" )) {
// admin apps menu
@@ -394,7 +395,7 @@ class OC_App{
return trim($version);
}else{
$appData=self::getAppInfo($appid);
- return $appData['version'];
+ return isset($appData['version'])? $appData['version'] : '';
}
}
diff --git a/lib/connector/sabre/directory.php b/lib/connector/sabre/directory.php
index 7f8434c7151..09c65f19b80 100644
--- a/lib/connector/sabre/directory.php
+++ b/lib/connector/sabre/directory.php
@@ -48,11 +48,23 @@ class OC_Connector_Sabre_Directory extends OC_Connector_Sabre_Node implements Sa
* @return null|string
*/
public function createFile($name, $data = null) {
+ if (isset($_SERVER['HTTP_OC_CHUNKED'])) {
+ $info = OC_FileChunking::decodeName($name);
+ $chunk_handler = new OC_FileChunking($info);
+ $chunk_handler->store($info['index'], $data);
+ if ($chunk_handler->isComplete()) {
+ $newPath = $this->path . '/' . $info['name'];
+ $f = OC_Filesystem::fopen($newPath, 'w');
+ $chunk_handler->assemble($f);
+ return OC_Connector_Sabre_Node::getETagPropertyForPath($newPath);
+ }
+ } else {
+ $newPath = $this->path . '/' . $name;
+ OC_Filesystem::file_put_contents($newPath,$data);
+ return OC_Connector_Sabre_Node::getETagPropertyForPath($newPath);
+ }
- $newPath = $this->path . '/' . $name;
- OC_Filesystem::file_put_contents($newPath,$data);
-
- return OC_Connector_Sabre_Node::getETagPropertyForPath($newPath);
+ return null;
}
/**
diff --git a/lib/connector/sabre/locks.php b/lib/connector/sabre/locks.php
index e95dcf02d27..1db4fc09446 100644
--- a/lib/connector/sabre/locks.php
+++ b/lib/connector/sabre/locks.php
@@ -41,8 +41,11 @@ class OC_Connector_Sabre_Locks extends Sabre_DAV_Locks_Backend_Abstract {
// NOTE: the following 10 lines or so could be easily replaced by
// pure sql. MySQL's non-standard string concatination prevents us
// from doing this though.
- $query = 'SELECT * FROM *PREFIX*locks WHERE userid = ? AND (created + timeout) > ? AND ((uri = ?)';
- $params = array(OC_User::getUser(),time(),$uri);
+ // NOTE: SQLite requires time() to be inserted directly. That's ugly
+ // but otherwise reading locks from SQLite Databases will return
+ // nothing
+ $query = 'SELECT * FROM *PREFIX*locks WHERE userid = ? AND (created + timeout) > '.time().' AND (( uri = ?)';
+ $params = array(OC_User::getUser(),$uri);
// We need to check locks for every part in the uri.
$uriParts = explode('/',$uri);
@@ -70,8 +73,8 @@ class OC_Connector_Sabre_Locks extends Sabre_DAV_Locks_Backend_Abstract {
}
$query.=')';
- $stmt = OC_DB::prepare($query);
- $result = $stmt->execute($params);
+ $stmt = OC_DB::prepare($query );
+ $result = $stmt->execute( $params );
$lockList = array();
while( $row = $result->fetchRow()){
diff --git a/lib/filechunking.php b/lib/filechunking.php
new file mode 100644
index 00000000000..d03af226d8b
--- /dev/null
+++ b/lib/filechunking.php
@@ -0,0 +1,94 @@
+<?php
+/**
+ * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+
+class OC_FileChunking {
+ protected $info;
+ protected $cache;
+
+ static public function decodeName($name) {
+ preg_match('/(?P<name>.*)-chunking-(?P<transferid>\d+)-(?P<chunkcount>\d+)-(?P<index>\d+)/', $name, $matches);
+ return $matches;
+ }
+
+ public function __construct($info) {
+ $this->info = $info;
+ }
+
+ public function getPrefix() {
+ $name = $this->info['name'];
+ $transferid = $this->info['transferid'];
+
+ return $name.'-chunking-'.$transferid.'-';
+ }
+
+ protected function getCache() {
+ if (!isset($this->cache)) {
+ $this->cache = new OC_Cache_File();
+ }
+ return $this->cache;
+ }
+
+ public function store($index, $data) {
+ $cache = $this->getCache();
+ $name = $this->getPrefix().$index;
+ $cache->set($name, $data);
+ }
+
+ public function isComplete() {
+ $prefix = $this->getPrefix();
+ $parts = 0;
+ $cache = $this->getCache();
+ for($i=0; $i < $this->info['chunkcount']; $i++) {
+ if ($cache->hasKey($prefix.$i)) {
+ $parts ++;
+ }
+ }
+ return $parts == $this->info['chunkcount'];
+ }
+
+ public function assemble($f) {
+ $cache = $this->getCache();
+ $prefix = $this->getPrefix();
+ for($i=0; $i < $this->info['chunkcount']; $i++) {
+ $chunk = $cache->get($prefix.$i);
+ $cache->remove($prefix.$i);
+ fwrite($f,$chunk);
+ }
+ fclose($f);
+ }
+
+ public function signature_split($orgfile, $input) {
+ $info = unpack('n', fread($input, 2));
+ $blocksize = $info[1];
+ $this->info['transferid'] = mt_rand();
+ $count = 0;
+ $needed = array();
+ $cache = $this->getCache();
+ $prefix = $this->getPrefix();
+ while (!feof($orgfile)) {
+ $new_md5 = fread($input, 16);
+ if (feof($input)) {
+ break;
+ }
+ $data = fread($orgfile, $blocksize);
+ $org_md5 = md5($data, true);
+ if ($org_md5 == $new_md5) {
+ $cache->set($prefix.$count, $data);
+ } else {
+ $needed[] = $count;
+ }
+ $count++;
+ }
+ return array(
+ 'transferid' => $this->info['transferid'],
+ 'needed' => $needed,
+ 'count' => $count,
+ );
+ }
+}
diff --git a/lib/installer.php b/lib/installer.php
index a8b56cb34f2..b8a3226aa0b 100644
--- a/lib/installer.php
+++ b/lib/installer.php
@@ -60,7 +60,7 @@ class OC_Installer{
OC_Log::write('core','No source specified when installing app',OC_Log::ERROR);
return false;
}
-
+
//download the file if necesary
if($data['source']=='http'){
$path=OC_Helper::tmpFile();
@@ -76,7 +76,7 @@ class OC_Installer{
}
$path=$data['path'];
}
-
+
//detect the archive type
$mime=OC_Helper::getMimeType($path);
if($mime=='application/zip'){
@@ -89,7 +89,7 @@ class OC_Installer{
OC_Log::write('core','Archives of type '.$mime.' are not supported',OC_Log::ERROR);
return false;
}
-
+
//extract the archive in a temporary folder
$extractDir=OC_Helper::tmpFolder();
OC_Helper::rmdirr($extractDir);
@@ -104,7 +104,7 @@ class OC_Installer{
}
return false;
}
-
+
//load the info.xml file of the app
if(!is_file($extractDir.'/appinfo/info.xml')){
//try to find it in a subdir
@@ -134,7 +134,7 @@ class OC_Installer{
}
// check if the app is compatible with this version of ownCloud
- $version=OC_Util::getVersion();
+ $version=OC_Util::getVersion();
if(!isset($info['require']) or ($version[0]>$info['require'])){
OC_Log::write('core','App can\'t be installed because it is not compatible with this version of ownCloud',OC_Log::ERROR);
OC_Helper::rmdirr($extractDir);
@@ -161,11 +161,11 @@ class OC_Installer{
}
return false;
}
-
+
if(isset($data['pretent']) and $data['pretent']==true){
return false;
}
-
+
//copy the app to the correct place
if(@!mkdir($basedir)){
OC_Log::write('core','Can\'t create app folder. Please fix permissions. ('.$basedir.')',OC_Log::ERROR);
@@ -176,34 +176,34 @@ class OC_Installer{
return false;
}
OC_Helper::copyr($extractDir,$basedir);
-
+
//remove temporary files
OC_Helper::rmdirr($extractDir);
-
+
//install the database
if(is_file($basedir.'/appinfo/database.xml')){
OC_DB::createDbFromStructure($basedir.'/appinfo/database.xml');
}
-
+
//run appinfo/install.php
if((!isset($data['noinstall']) or $data['noinstall']==false) and file_exists($basedir.'/appinfo/install.php')){
include($basedir.'/appinfo/install.php');
}
-
+
//set the installed version
OC_Appconfig::setValue($info['id'],'installed_version',OC_App::getAppVersion($info['id']));
OC_Appconfig::setValue($info['id'],'enabled','no');
//set remote/public handelers
foreach($info['remote'] as $name=>$path){
- OCP\CONFIG::setAppValue('core', 'remote_'.$name, $app.'/'.$path);
+ OCP\CONFIG::setAppValue('core', 'remote_'.$name, $info['id'].'/'.$path);
}
foreach($info['public'] as $name=>$path){
- OCP\CONFIG::setAppValue('core', 'public_'.$name, $app.'/'.$path);
+ OCP\CONFIG::setAppValue('core', 'public_'.$name, $info['id'].'/'.$path);
}
OC_App::setAppTypes($info['id']);
-
+
return $info['id'];
}
@@ -324,7 +324,7 @@ class OC_Installer{
}
$info=OC_App::getAppInfo($app);
OC_Appconfig::setValue($app,'installed_version',OC_App::getAppVersion($app));
-
+
//set remote/public handelers
foreach($info['remote'] as $name=>$path){
OCP\CONFIG::setAppValue('core', 'remote_'.$name, $app.'/'.$path);
@@ -332,10 +332,10 @@ class OC_Installer{
foreach($info['public'] as $name=>$path){
OCP\CONFIG::setAppValue('core', 'public_'.$name, $app.'/'.$path);
}
-
+
OC_App::setAppTypes($info['id']);
-
- return $info;
+
+ return $info['id'];
}
@@ -355,7 +355,7 @@ class OC_Installer{
);
// is the code checker enabled?
- if(OC_Config::getValue('appcodechecker', false)){
+ if(OC_Config::getValue('appcodechecker', false)){
// check if grep is installed
$grep = exec('which grep');
@@ -375,7 +375,7 @@ class OC_Installer{
}
}
return true;
-
+
}else{
return true;
}
diff --git a/lib/l10n/eo.php b/lib/l10n/eo.php
new file mode 100644
index 00000000000..96bcb06a8d7
--- /dev/null
+++ b/lib/l10n/eo.php
@@ -0,0 +1,24 @@
+<?php $TRANSLATIONS = array(
+"Help" => "Helpo",
+"Personal" => "Persona",
+"Settings" => "Agordo",
+"Users" => "Uzantoj",
+"Apps" => "Aplikaĵoj",
+"ZIP download is turned off." => "ZIP-elŝuto estas malkapabligita.",
+"Files need to be downloaded one by one." => "Dosieroj devas elŝutiĝi unuope.",
+"Back to Files" => "Reen al la dosieroj",
+"Selected files too large to generate zip file." => "La elektitaj dosieroj tro grandas por genero de ZIP-dosiero.",
+"Application is not enabled" => "La aplikaĵo ne estas kapabligita",
+"Authentication error" => "Aŭtentiga eraro",
+"Token expired. Please reload page." => "Ĵetono eksvalidiĝis. Bonvolu reŝargi la paĝon.",
+"seconds ago" => "sekundojn antaŭe",
+"1 minute ago" => "antaŭ 1 minuto",
+"%d minutes ago" => "antaŭ %d minutoj",
+"today" => "hodiaŭ",
+"yesterday" => "hieraŭ",
+"%d days ago" => "antaŭ %d tagoj",
+"last month" => "lasta monato",
+"months ago" => "monatojn antaŭe",
+"last year" => "lasta jaro",
+"years ago" => "jarojn antaŭe"
+);
diff --git a/lib/l10n/es.php b/lib/l10n/es.php
new file mode 100644
index 00000000000..174fe0720fd
--- /dev/null
+++ b/lib/l10n/es.php
@@ -0,0 +1,25 @@
+<?php $TRANSLATIONS = array(
+"Help" => "Ayuda",
+"Personal" => "Personal",
+"Settings" => "Ajustes",
+"Users" => "Usuarios",
+"Apps" => "Aplicaciones",
+"Admin" => "Administración",
+"ZIP download is turned off." => "La descarga en ZIP está desactivada.",
+"Files need to be downloaded one by one." => "Los archivos deben ser descargados uno por uno.",
+"Back to Files" => "Volver a Archivos",
+"Selected files too large to generate zip file." => "Los archivos seleccionados son demasiado grandes para generar el archivo zip.",
+"Application is not enabled" => "La aplicación no está habilitada",
+"Authentication error" => "Error de autenticación",
+"Token expired. Please reload page." => "Token expirado. Por favor, recarga la página.",
+"seconds ago" => "hace segundos",
+"1 minute ago" => "hace 1 minuto",
+"%d minutes ago" => "hace %d minutos",
+"today" => "hoy",
+"yesterday" => "ayer",
+"%d days ago" => "hace %d días",
+"last month" => "este mes",
+"months ago" => "hace meses",
+"last year" => "este año",
+"years ago" => "hace años"
+);
diff --git a/lib/l10n/et_EE.php b/lib/l10n/et_EE.php
new file mode 100644
index 00000000000..d8da90a3cbf
--- /dev/null
+++ b/lib/l10n/et_EE.php
@@ -0,0 +1,25 @@
+<?php $TRANSLATIONS = array(
+"Help" => "Abiinfo",
+"Personal" => "Isiklik",
+"Settings" => "Seaded",
+"Users" => "Kasutajad",
+"Apps" => "Rakendused",
+"Admin" => "Admin",
+"ZIP download is turned off." => "ZIP-ina allalaadimine on välja lülitatud.",
+"Files need to be downloaded one by one." => "Failid tuleb alla laadida ükshaaval.",
+"Back to Files" => "Tagasi failide juurde",
+"Selected files too large to generate zip file." => "Valitud failid on ZIP-faili loomiseks liiga suured.",
+"Application is not enabled" => "Rakendus pole sisse lülitatud",
+"Authentication error" => "Autentimise viga",
+"Token expired. Please reload page." => "Kontrollkood aegus. Paelun lae leht uuesti.",
+"seconds ago" => "sekundit tagasi",
+"1 minute ago" => "1 minut tagasi",
+"%d minutes ago" => "%d minutit tagasi",
+"today" => "täna",
+"yesterday" => "eile",
+"%d days ago" => "%d päeva tagasi",
+"last month" => "eelmisel kuul",
+"months ago" => "kuud tagasi",
+"last year" => "eelmisel aastal",
+"years ago" => "aastat tagasi"
+);
diff --git a/lib/l10n/fi_FI.php b/lib/l10n/fi_FI.php
index 81f4aa95840..dda2c760373 100644
--- a/lib/l10n/fi_FI.php
+++ b/lib/l10n/fi_FI.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"Help" => "Ohje",
+"Personal" => "Henkilökohtainen",
"Settings" => "Asetukset",
"Users" => "Käyttäjät",
"Apps" => "Sovellukset",
@@ -8,7 +9,9 @@
"Files need to be downloaded one by one." => "Tiedostot on ladattava yksittäin.",
"Back to Files" => "Takaisin tiedostoihin",
"Selected files too large to generate zip file." => "Valitut tiedostot ovat liian suurikokoisia mahtuakseen zip-tiedostoon.",
+"Application is not enabled" => "Sovellusta ei ole otettu käyttöön",
"Authentication error" => "Todennusvirhe",
+"Token expired. Please reload page." => "Valtuutus vanheni. Lataa sivu uudelleen.",
"seconds ago" => "sekuntia sitten",
"1 minute ago" => "1 minuutti sitten",
"%d minutes ago" => "%d minuuttia sitten",
diff --git a/lib/l10n/fr.php b/lib/l10n/fr.php
new file mode 100644
index 00000000000..c674b79b959
--- /dev/null
+++ b/lib/l10n/fr.php
@@ -0,0 +1,25 @@
+<?php $TRANSLATIONS = array(
+"Help" => "Aide",
+"Personal" => "Personnel",
+"Settings" => "Paramètres",
+"Users" => "Utilisateurs",
+"Apps" => "Applications",
+"Admin" => "Administration",
+"ZIP download is turned off." => "Téléchargement ZIP désactivé.",
+"Files need to be downloaded one by one." => "Les fichiers nécessitent d'être téléchargés un par un.",
+"Back to Files" => "Retour aux Fichiers",
+"Selected files too large to generate zip file." => "Les fichiers sélectionnés sont trop volumineux pour être compressés.",
+"Application is not enabled" => "L'application n'est pas activée",
+"Authentication error" => "Erreur d'authentification",
+"Token expired. Please reload page." => "La session a expiré. Veuillez recharger la page.",
+"seconds ago" => "à l'instant",
+"1 minute ago" => "il y a 1 minute",
+"%d minutes ago" => "il y a %d minutes",
+"today" => "aujourd'hui",
+"yesterday" => "hier",
+"%d days ago" => "il y a %d jours",
+"last month" => "le mois dernier",
+"months ago" => "il y a plusieurs mois",
+"last year" => "l'année dernière",
+"years ago" => "il y a plusieurs années"
+);
diff --git a/lib/l10n/it.php b/lib/l10n/it.php
new file mode 100644
index 00000000000..2c88818dc6c
--- /dev/null
+++ b/lib/l10n/it.php
@@ -0,0 +1,25 @@
+<?php $TRANSLATIONS = array(
+"Help" => "Aiuto",
+"Personal" => "Personale",
+"Settings" => "Impostazioni",
+"Users" => "Utenti",
+"Apps" => "Applicazioni",
+"Admin" => "Admin",
+"ZIP download is turned off." => "Lo scaricamento in formato ZIP è stato disabilitato.",
+"Files need to be downloaded one by one." => "I file devono essere scaricati uno alla volta.",
+"Back to Files" => "Torna ai file",
+"Selected files too large to generate zip file." => "I file selezionati sono troppo grandi per generare un file zip.",
+"Application is not enabled" => "L'applicazione non è abilitata",
+"Authentication error" => "Errore di autenticazione",
+"Token expired. Please reload page." => "Token scaduto. Ricarica la pagina.",
+"seconds ago" => "secondi fa",
+"1 minute ago" => "1 minuto fa",
+"%d minutes ago" => "%d minuti fa",
+"today" => "oggi",
+"yesterday" => "ieri",
+"%d days ago" => "%d giorni fa",
+"last month" => "il mese scorso",
+"months ago" => "mesi fa",
+"last year" => "l'anno scorso",
+"years ago" => "anni fa"
+);
diff --git a/lib/l10n/uk.php b/lib/l10n/uk.php
new file mode 100644
index 00000000000..18f6a4a623d
--- /dev/null
+++ b/lib/l10n/uk.php
@@ -0,0 +1,24 @@
+<?php $TRANSLATIONS = array(
+"Help" => "Допомога",
+"Personal" => "Особисте",
+"Settings" => "Налаштування",
+"Users" => "Користувачі",
+"Apps" => "Додатки",
+"Admin" => "Адмін",
+"ZIP download is turned off." => "ZIP завантаження вимкнено.",
+"Files need to be downloaded one by one." => "Файли повинні бути завантаженні послідовно.",
+"Back to Files" => "Повернутися до файлів",
+"Selected files too large to generate zip file." => "Вибрані фали завеликі для генерування zip файлу.",
+"Application is not enabled" => "Додаток не увімкнений",
+"Authentication error" => "Помилка автентифікації",
+"seconds ago" => "секунди тому",
+"1 minute ago" => "1 хвилину тому",
+"%d minutes ago" => "%d хвилин тому",
+"today" => "сьогодні",
+"yesterday" => "вчора",
+"%d days ago" => "%d днів тому",
+"last month" => "минулого місяця",
+"months ago" => "місяці тому",
+"last year" => "минулого року",
+"years ago" => "роки тому"
+);
diff --git a/lib/mimetypes.list.php b/lib/mimetypes.list.php
index f7207493f7f..37d50756d57 100644
--- a/lib/mimetypes.list.php
+++ b/lib/mimetypes.list.php
@@ -55,6 +55,9 @@ return array(
'ods'=>'application/vnd.oasis.opendocument.spreadsheet',
'odg'=>'application/vnd.oasis.opendocument.graphics',
'odp'=>'application/vnd.oasis.opendocument.presentation',
+ 'pages'=>'application/x-iwork-pages-sffpages',
+ 'numbers'=>'application/x-iwork-numbers-sffnumbers',
+ 'keynote'=>'application/x-iwork-keynote-sffkey',
'kra'=>'application/x-krita',
'mp3'=>'audio/mpeg',
'doc'=>'application/msword',
diff --git a/lib/public/app.php b/lib/public/app.php
index 5689f53ffb2..e74f1550740 100644
--- a/lib/public/app.php
+++ b/lib/public/app.php
@@ -46,7 +46,7 @@ class App {
*
*/
public static function register( $data ){
- return \OC_App::register( $data );
+ return true; // don't do anything
}
/**
diff --git a/lib/util.php b/lib/util.php
index 6e62ed9bf58..f26fa63e446 100755
--- a/lib/util.php
+++ b/lib/util.php
@@ -343,10 +343,16 @@ class OC_Util {
$location = $_REQUEST['redirect_url'];
}
else if (isset(OC::$REQUESTEDAPP) && !empty(OC::$REQUESTEDAPP)) {
- $location = OC::$WEBROOT.'/?app='.OC::$REQUESTEDAPP;
+ $location = OC_Helper::linkToAbsolute( OC::$REQUESTEDAPP, 'index.php' );
}
else {
- $location = OC::$WEBROOT.'/'.OC_Appconfig::getValue('core', 'defaultpage', '?app=files');
+ $defaultpage = OC_Appconfig::getValue('core', 'defaultpage');
+ if ($defaultpage) {
+ $location = OC_Helper::serverProtocol().'://'.OC_Helper::serverHost().OC::$WEBROOT.'/'.$defaultpage;
+ }
+ else {
+ $location = OC_Helper::linkToAbsolute( 'files', 'index.php' );
+ }
}
OC_Log::write('core', 'redirectToDefaultPage: '.$location, OC_Log::DEBUG);
header( 'Location: '.$location );