diff --git a/README b/README index e11ff7d10cdf1cf09b3f11b16aefa02edef47f96..9b113c4f6742e981d1310f0af731120323009295 100644 --- a/README +++ b/README @@ -4,6 +4,7 @@ A personal cloud which runs on your own server. http://ownCloud.org Installation instructions: http://owncloud.org/support +Contribution Guidelines: http://owncloud.org/dev/contribute/ Source code: https://github.com/owncloud Mailing list: https://mail.kde.org/mailman/listinfo/owncloud @@ -16,4 +17,4 @@ Please submit translations via Transifex: https://www.transifex.com/projects/p/owncloud/ For more detailed information about translations: -http://owncloud.org/dev/translation/ \ No newline at end of file +http://owncloud.org/dev/translation/ diff --git a/apps/files/appinfo/update.php b/apps/files/appinfo/update.php index 738864d7cff515cf5077f3e157b5b6366e7e6bcb..29782ec643e53c8b6bb256a044c7a9e46b320401 100644 --- a/apps/files/appinfo/update.php +++ b/apps/files/appinfo/update.php @@ -5,10 +5,10 @@ $installedVersion=OCP\Config::getAppValue('files', 'installed_version'); if (version_compare($installedVersion, '1.1.6', '<')) { $query = OC_DB::prepare( "SELECT `propertyname`, `propertypath`, `userid` FROM `*PREFIX*properties`" ); $result = $query->execute(); + $updateQuery = OC_DB::prepare('UPDATE `*PREFIX*properties` SET `propertyname` = ? WHERE `userid` = ? AND `propertypath` = ?'); while( $row = $result->fetchRow()) { if ( $row["propertyname"][0] != '{' ) { - $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertyname` = ? WHERE `userid` = ? AND `propertypath` = ?' ); - $query->execute( array( '{DAV:}' + $row["propertyname"], $row["userid"], $row["propertypath"] )); + $updateQuery->execute(array('{DAV:}' + $row["propertyname"], $row["userid"], $row["propertypath"])); } } } diff --git a/apps/files/js/fileactions.js b/apps/files/js/fileactions.js index 82d990bf780a76517d9c1e98fddfb33a1156a93c..40dd9f14a69babdc73cc62a18e890c63b622a959 100644 --- a/apps/files/js/fileactions.js +++ b/apps/files/js/fileactions.js @@ -70,6 +70,13 @@ var FileActions = { } parent.children('a.name').append('<span class="fileactions" />'); var defaultAction = FileActions.getDefault(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions()); + var actionHandler = function (parent, action, event) { + event.stopPropagation(); + event.preventDefault(); + FileActions.currentFile = parent; + file = FileActions.getCurrentFile(); + action(file); + }; for (name in actions) { // NOTE: Temporary fix to prevent rename action in root of Shared directory if (name === 'Rename' && $('#dir').val() === '/Shared') { @@ -87,14 +94,7 @@ var FileActions = { html += t('files', name) + '</a>'; var element = $(html); element.data('action', name); - element.click(function (event) { - FileActions.currentFile = $(this).parent().parent().parent(); - event.stopPropagation(); - event.preventDefault(); - var action = actions[$(this).data('action')]; - var currentFile = FileActions.getCurrentFile(); - action(currentFile); - }); + element.click(actionHandler.bind(null, parent, actions[name])); parent.find('a.name>span.fileactions').append(element); } } @@ -113,14 +113,8 @@ var FileActions = { if (img) { element.append($('<img class ="svg" src="' + img + '"/>')); } - element.data('action', 'Delete'); - element.click(function (event) { - event.stopPropagation(); - event.preventDefault(); - var action = actions[$(this).data('action')]; - var currentFile = FileActions.getCurrentFile(); - action(currentFile); - }); + element.data('action', actions['Delete']); + element.click(actionHandler.bind(null, parent, actions['Delete'])); parent.parent().children().last().append(element); } }, diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 2d9ccba424aac6d2426bbf4217e6cb08fd26aa4d..16f7c966067a23aaecc5f68092ed6c2abee881c8 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -722,7 +722,7 @@ var folderDropOptions={ } var crumbDropOptions={ drop: function( event, ui ) { - var file=ui.draggable.text().trim(); + var file=ui.draggable.parent().data('file'); var target=$(this).data('dir'); var dir=$('#dir').val(); while(dir.substr(0,1)=='/'){//remove extra leading /'s @@ -829,27 +829,6 @@ function getSelectedFiles(property){ return files; } -function relative_modified_date(timestamp) { - var timediff = Math.round((new Date()).getTime() / 1000) - timestamp; - var diffminutes = Math.round(timediff/60); - var diffhours = Math.round(diffminutes/60); - var diffdays = Math.round(diffhours/24); - var diffmonths = Math.round(diffdays/31); - if(timediff < 60) { return t('files','seconds ago'); } - else if(timediff < 120) { return t('files','1 minute ago'); } - else if(timediff < 3600) { return t('files','{minutes} minutes ago',{minutes: diffminutes}); } - //else if($timediff < 7200) { return '1 hour ago'; } - //else if($timediff < 86400) { return $diffhours.' hours ago'; } - else if(timediff < 86400) { return t('files','today'); } - else if(timediff < 172800) { return t('files','yesterday'); } - else if(timediff < 2678400) { return t('files','{days} days ago',{days: diffdays}); } - else if(timediff < 5184000) { return t('files','last month'); } - //else if($timediff < 31556926) { return $diffmonths.' months ago'; } - else if(timediff < 31556926) { return t('files','months ago'); } - else if(timediff < 63113852) { return t('files','last year'); } - else { return t('files','years ago'); } -} - function getMimeIcon(mime, ready){ if(getMimeIcon.cache[mime]){ ready(getMimeIcon.cache[mime]); diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php index f24605620877ce0630d306ab10cb932feb011650..3f71e35a7fde518507ab633a5ee7b7f695d5fec7 100644 --- a/apps/files/l10n/pl.php +++ b/apps/files/l10n/pl.php @@ -58,6 +58,7 @@ "New" => "Nowy", "Text file" => "Plik tekstowy", "Folder" => "Katalog", +"From link" => "Z linku", "Upload" => "Prześlij", "Cancel upload" => "Przestań wysyłać", "Nothing in here. Upload something!" => "Brak zawartości. Proszę wysłać pliki!", diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index 33bfee5b2d2a3646eaa5d99f9aa5f5585cc47ce2..048c6be8350a6db01ea4f9f0393a3c9da57ed12b 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -58,6 +58,7 @@ "New" => "Novo", "Text file" => "Ficheiro de texto", "Folder" => "Pasta", +"From link" => "Da ligação", "Upload" => "Enviar", "Cancel upload" => "Cancelar envio", "Nothing in here. Upload something!" => "Vazio. Envie alguma coisa!", diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php index 27c408cdf3aa123a7826778754c4ff4faa52f124..6d2956281393088411fddcf3968738d6d968ef5e 100644 --- a/apps/files/l10n/ta_LK.php +++ b/apps/files/l10n/ta_LK.php @@ -58,6 +58,7 @@ "New" => "புதிய", "Text file" => "கோப்பு உரை", "Folder" => "கோப்புறை", +"From link" => "இணைப்பிலிருந்து", "Upload" => "பதிவேற்றுக", "Cancel upload" => "பதிவேற்றலை இரத்து செய்க", "Nothing in here. Upload something!" => "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!", diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php index 8300c8ab7e9588a4f93a37240142a85f25b80c2f..c1d32fa31b15384e2650e3fdc45cb94f09e29524 100644 --- a/apps/files_encryption/lib/proxy.php +++ b/apps/files_encryption/lib/proxy.php @@ -36,7 +36,7 @@ class OC_FileProxy_Encryption extends OC_FileProxy{ */ private static function shouldEncrypt($path) { if(is_null(self::$enableEncryption)) { - self::$enableEncryption=(OCP\Config::getAppValue('files_encryption','enable_encryption','true')=='true'); + self::$enableEncryption=(OCP\Config::getAppValue('files_encryption', 'enable_encryption', 'true')=='true'); } if(!self::$enableEncryption) { return false; @@ -59,7 +59,8 @@ class OC_FileProxy_Encryption extends OC_FileProxy{ * @return bool */ private static function isEncrypted($path) { - $metadata=\OC\Files\Filesystem::getFileInfo($path, ''); + $rootView = new \OC\Files\View(''); + $metadata=$rootView->getFileInfo($path); return isset($metadata['encrypted']) and (bool)$metadata['encrypted']; } @@ -67,15 +68,17 @@ class OC_FileProxy_Encryption extends OC_FileProxy{ if(self::shouldEncrypt($path)) { if (!is_resource($data)) {//stream put contents should have been converter to fopen $size=strlen($data); + $rootView = new \OC\Files\View(''); $data=OC_Crypt::blockEncrypt($data); - \OC\Files\Filesystem::putFileInfo($path, array('encrypted'=>true, 'size'=>$size), ''); + $rootView->putFileInfo($path, array('encrypted'=>true,'size'=>$size)); } } } - public function postFile_get_contents($path,$data) { + public function postFile_get_contents($path, $data) { if(self::isEncrypted($path)) { - $cached=\OC\Files\Filesystem::getFileInfo($path, ''); + $rootView = new \OC\Files\View(''); + $cached=$rootView->getFileInfo($path, ''); $data=OC_Crypt::blockDecrypt($data, '', $cached['size']); } return $data; @@ -88,40 +91,42 @@ class OC_FileProxy_Encryption extends OC_FileProxy{ $meta=stream_get_meta_data($result); if(self::isEncrypted($path)) { fclose($result); - $result=fopen('crypt://'.$path,$meta['mode']); + $result=fopen('crypt://'.$path, $meta['mode']); }elseif(self::shouldEncrypt($path) and $meta['mode']!='r' and $meta['mode']!='rb') { - if(OC_Filesystem::file_exists($path) and OC_Filesystem::filesize($path)>0) { + if(\OC\Files\Filesystem::file_exists($path) and \OC\Files\Filesystem::filesize($path)>0) { //first encrypt the target file so we don't end up with a half encrypted file - OCP\Util::writeLog('files_encryption', 'Decrypting ' . $path . ' before writing', OCP\Util::DEBUG); - $tmp=fopen('php://temp', 'w+'); - OCP\Files::streamCopy($result,$tmp); + OCP\Util::writeLog('files_encryption','Decrypting '.$path.' before writing', OCP\Util::DEBUG); + $tmp=fopen('php://temp'); + OCP\Files::streamCopy($result, $tmp); fclose($result); \OC\Files\Filesystem::file_put_contents($path, $tmp); fclose($tmp); } - $result=fopen('crypt://'.$path,$meta['mode']); + $result=fopen('crypt://'.$path, $meta['mode']); } return $result; } - public function postGetMimeType($path,$mime) { + public function postGetMimeType($path, $mime) { if(self::isEncrypted($path)) { - $mime=OCP\Files::getMimeType('crypt://'.$path,'w'); + $mime=OCP\Files::getMimeType('crypt://'.$path, 'w'); } return $mime; } - public function postStat($path,$data) { + public function postStat($path, $data) { if(self::isEncrypted($path)) { - $cached=\OC\Files\Filesystem::getFileInfo($path, ''); + $rootView = new \OC\Files\View(''); + $cached=$rootView->getFileInfo($path); $data['size']=$cached['size']; } return $data; } - public function postFileSize($path,$size) { + public function postFileSize($path, $size) { if(self::isEncrypted($path)) { - $cached=\OC\Files\Filesystem::getFileInfo($path, ''); + $rootView = new \OC\Files\View(''); + $cached=$rootView->getFileInfo($path); return $cached['size']; }else{ return $size; diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index 6c6c23b55c11002d8498775494bec7312623213a..8122558632679067615185fa7d4d47ede7c80a6b 100755 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -285,7 +285,12 @@ class OC_Mount_Config { public static function getCertificates() { $view = \OCP\Files::getStorage('files_external'); $path=\OCP\Config::getSystemValue('datadirectory').$view->getAbsolutePath("").'uploads/'; - if (!is_dir($path)) mkdir($path); + \OCP\Util::writeLog('files_external', 'checking path '.$path, \OCP\Util::INFO); + if(!is_dir($path)) { + //path might not exist (e.g. non-standard OC_User::getHome() value) + //in this case create full path using 3rd (recursive=true) parameter. + mkdir($path, 0777, true); + } $result = array(); $handle = opendir($path); if (!$handle) { diff --git a/apps/files_external/lib/ftp.php b/apps/files_external/lib/ftp.php index a3677e82e2ed0312c66a4f1c723c4da06171d3e9..0b60d42219a613a2546931cff496c5d5c2f5c3a3 100644 --- a/apps/files_external/lib/ftp.php +++ b/apps/files_external/lib/ftp.php @@ -21,7 +21,15 @@ class FTP extends \OC\Files\Storage\StreamWrapper{ $this->host=$params['host']; $this->user=$params['user']; $this->password=$params['password']; - $this->secure=isset($params['secure'])?(bool)$params['secure']:false; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } $this->root=isset($params['root'])?$params['root']:'/'; if(!$this->root || $this->root[0]!='/') { $this->root='/'.$this->root; diff --git a/apps/files_external/lib/smb.php b/apps/files_external/lib/smb.php index 4382f6300318336ac23f17103aaa7c5caaed0d22..bf0d780d27b29b5a8f76c3a1eabbebb3cb633d9f 100644 --- a/apps/files_external/lib/smb.php +++ b/apps/files_external/lib/smb.php @@ -26,30 +26,28 @@ class SMB extends \OC\Files\Storage\StreamWrapper{ if(!$this->root || $this->root[0]!='/') { $this->root='/'.$this->root; } - if(substr($this->root,-1,1)!='/') { + if(substr($this->root, -1, 1)!='/') { $this->root.='/'; } if(!$this->share || $this->share[0]!='/') { $this->share='/'.$this->share; } - if(substr($this->share,-1,1)=='/') { - $this->share=substr($this->share,0,-1); + if(substr($this->share, -1, 1)=='/') { + $this->share = substr($this->share,0,-1); } - } public function getId(){ return 'smb::' . $this->user . '@' . $this->host . '/' . $this->share . '/' . $this->root; } public function constructUrl($path) { - if(substr($path,-1)=='/') { - $path=substr($path,0,-1); + if(substr($path, -1)=='/') { + $path=substr($path, 0, -1); } return 'smb://'.$this->user.':'.$this->password.'@'.$this->host.$this->share.$this->root.$path; } public function stat($path) { - $this->init(); if(!$path and $this->root=='/') {//mtime doesn't work for shares $mtime=$this->shareMTime(); $stat=stat($this->constructUrl($path)); diff --git a/apps/files_external/lib/swift.php b/apps/files_external/lib/swift.php index 7fb9b7e640d8a1b35a064cdd31a57b975c726eb4..844b54aaeea5b57e0e5330f4112629e241515f20 100644 --- a/apps/files_external/lib/swift.php +++ b/apps/files_external/lib/swift.php @@ -205,15 +205,15 @@ class SWIFT extends \OC\Files\Storage\Common{ foreach($containers as &$sub) { $sub=trim($sub); } - if(array_search($name,$containers)!==false) { + if(array_search($name, $containers) !== false) { unlink($tmpFile); return false; }else{ - $fh=fopen($tmpFile,'a'); - fwrite($fh,$name."\n"); + $fh=fopen($tmpFile, 'a'); + fwrite($fh,$name . "\n"); } }catch(\Exception $e) { - file_put_contents($tmpFile,$name."\n"); + file_put_contents($tmpFile, $name . "\n"); } $obj->load_from_filename($tmpFile); @@ -227,7 +227,7 @@ class SWIFT extends \OC\Files\Storage\Common{ * @param string $name * @return bool */ - private function removeSubContainer($container,$name) { + private function removeSubContainer($container, $name) { if(!$name) { return false; } @@ -242,13 +242,13 @@ class SWIFT extends \OC\Files\Storage\Common{ foreach($containers as &$sub) { $sub=trim($sub); } - $i=array_search($name,$containers); + $i=array_search($name, $containers); if($i===false) { unlink($tmpFile); return false; }else{ unset($containers[$i]); - file_put_contents($tmpFile, implode("\n",$containers)."\n"); + file_put_contents($tmpFile, implode("\n", $containers)."\n"); } $obj->load_from_filename($tmpFile); @@ -264,7 +264,7 @@ class SWIFT extends \OC\Files\Storage\Common{ private function getSubContainerFile($container) { try{ return $container->get_object(self::SUBCONTAINER_FILE); - }catch(\NoSuchObjectException $e) { + }catch(NoSuchObjectException $e) { return $container->create_object(self::SUBCONTAINER_FILE); } } @@ -274,9 +274,15 @@ class SWIFT extends \OC\Files\Storage\Common{ $this->host=$params['host']; $this->user=$params['user']; $this->root=isset($params['root'])?$params['root']:'/'; - $this->secure=isset($params['secure'])?(bool)$params['secure']:true; - - $this->id = 'swift::' . $this->user . '@' . $this->host . '/' . $this->root; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } if(!$this->root || $this->root[0]!='/') { $this->root='/'.$this->root; } @@ -358,12 +364,12 @@ class SWIFT extends \OC\Files\Storage\Common{ $this->init(); $container=$this->getContainer($path); $files=$this->getObjects($container); - $i=array_search(self::SUBCONTAINER_FILE,$files); + $i=array_search(self::SUBCONTAINER_FILE, $files); if($i!==false) { unset($files[$i]); } $subContainers=$this->getSubContainers($container); - $files=array_merge($files,$subContainers); + $files=array_merge($files, $subContainers); $id=$this->getContainerName($path); \OC_FakeDirStream::$dirs[$id]=$files; return opendir('fakedir://'.$id); @@ -404,7 +410,7 @@ class SWIFT extends \OC\Files\Storage\Common{ return $obj->read(); } - public function file_put_contents($path,$content) { + public function file_put_contents($path, $content) { $this->init(); $obj=$this->getObject($path); if(is_null($obj)) { @@ -432,7 +438,7 @@ class SWIFT extends \OC\Files\Storage\Common{ } } - public function fopen($path,$mode) { + public function fopen($path, $mode) { $this->init(); switch($mode) { case 'r': @@ -459,9 +465,9 @@ class SWIFT extends \OC\Files\Storage\Common{ case 'c': case 'c+': $tmpFile=$this->getTmpFile($path); - \OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this,'writeBack'); + OC_CloseStreamWrapper::$callBacks[$tmpFile]=array($this, 'writeBack'); self::$tempFiles[$tmpFile]=$path; - return fopen('close://'.$tmpFile,$mode); + return fopen('close://'.$tmpFile, $mode); } } @@ -476,7 +482,7 @@ class SWIFT extends \OC\Files\Storage\Common{ return 1024*1024*1024*8; } - public function touch($path,$mtime=null) { + public function touch($path, $mtime=null) { $this->init(); $obj=$this->getObject($path); if(is_null($obj)) { @@ -491,11 +497,11 @@ class SWIFT extends \OC\Files\Storage\Common{ $obj->sync_metadata(); } - public function rename($path1,$path2) { + public function rename($path1, $path2) { $this->init(); $sourceContainer=$this->getContainer(dirname($path1)); $targetContainer=$this->getContainer(dirname($path2)); - $result=$sourceContainer->move_object_to(basename($path1),$targetContainer, basename($path2)); + $result=$sourceContainer->move_object_to(basename($path1), $targetContainer, basename($path2)); unset($this->objects[$path1]); if($result) { $targetObj=$this->getObject($path2); @@ -504,11 +510,11 @@ class SWIFT extends \OC\Files\Storage\Common{ return $result; } - public function copy($path1,$path2) { + public function copy($path1, $path2) { $this->init(); $sourceContainer=$this->getContainer(dirname($path1)); $targetContainer=$this->getContainer(dirname($path2)); - $result=$sourceContainer->copy_object_to(basename($path1),$targetContainer, basename($path2)); + $result=$sourceContainer->copy_object_to(basename($path1), $targetContainer, basename($path2)); if($result) { $targetObj=$this->getObject($path2); $this->resetMTime($targetObj); @@ -523,6 +529,7 @@ class SWIFT extends \OC\Files\Storage\Common{ return array( 'mtime'=>-1, 'size'=>$container->bytes_used, + 'ctime'=>-1 ); } @@ -540,6 +547,7 @@ class SWIFT extends \OC\Files\Storage\Common{ return array( 'mtime'=>$mtime, 'size'=>$obj->content_length, + 'ctime'=>-1, ); } @@ -555,7 +563,7 @@ class SWIFT extends \OC\Files\Storage\Common{ } } - private function fromTmpFile($tmpFile,$path) { + private function fromTmpFile($tmpFile, $path) { $this->init(); $obj=$this->getObject($path); if(is_null($obj)) { diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php index 26d24ceff03fe4d10c781bcf7ac5f3b291108414..5fc0111f2ae95889d0f4de203e17c032d1d413e7 100644 --- a/apps/files_external/lib/webdav.php +++ b/apps/files_external/lib/webdav.php @@ -30,7 +30,15 @@ class DAV extends \OC\Files\Storage\Common{ $this->host=$host; $this->user=$params['user']; $this->password=$params['password']; - $this->secure=(isset($params['secure']) && $params['secure'] == 'true')?true:false; + if(isset($params['secure'])){ + if(is_string($params['secure'])){ + $this->secure = ($params['secure'] === 'true'); + }else{ + $this->secure = (bool)$params['secure']; + } + }else{ + $this->secure = false; + } $this->root=isset($params['root'])?$params['root']:'/'; if(!$this->root || $this->root[0]!='/') { $this->root='/'.$this->root; @@ -56,7 +64,7 @@ class DAV extends \OC\Files\Storage\Common{ if($caview = \OCP\Files::getStorage('files_external')) { $certPath=\OCP\Config::getSystemValue('datadirectory').$caview->getAbsolutePath("").'rootcerts.crt'; - if (file_exists($certPath)) { + if (file_exists($certPath)) { $this->client->addTrustedCertificates($certPath); } } diff --git a/apps/files_external/tests/ftp.php b/apps/files_external/tests/ftp.php index 3e6208e4a0d6b8c29cea5e44d8f22955f4ff212a..970c83b0bcab1eb97542d484cf4a96c3fa10eac0 100644 --- a/apps/files_external/tests/ftp.php +++ b/apps/files_external/tests/ftp.php @@ -26,4 +26,22 @@ class FTP extends Storage { \OCP\Files::rmdirr($this->instance->constructUrl('')); } } + + public function testConstructUrl(){ + $config = array ( 'host' => 'localhost', 'user' => 'ftp', 'password' => 'ftp', 'root' => '/', 'secure' => false ); + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = true; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = 'false'; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftp://ftp:ftp@localhost/', $instance->constructUrl('')); + + $config['secure'] = 'true'; + $instance = new OC_Filestorage_FTP($config); + $this->assertEqual('ftps://ftp:ftp@localhost/', $instance->constructUrl('')); + } } diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 1fe73110024e1293c1e668716a6e99bfdef7837a..7537422365603168f25ca7408c424452d3fb111b 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -1,226 +1,226 @@ -<?php -// Load other apps for file previews -OC_App::loadApps(); - -// Compatibility with shared-by-link items from ownCloud 4.0 -// requires old Sharing table ! -// support will be removed in OC 5.0,a -if (isset($_GET['token'])) { - unset($_GET['file']); - $qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ? LIMIT 1'); - $filepath = $qry->execute(array($_GET['token']))->fetchOne(); - if(isset($filepath)) { - $rootView = new \OC\Files\View(''); - $info = $rootView->getFileInfo($filepath, ''); - if(strtolower($info['mimetype']) == 'httpd/unix-directory') { - $_GET['dir'] = $filepath; - } else { - $_GET['file'] = $filepath; - } - \OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0. Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', \OCP\Util::WARN); - } -} -// Enf of backward compatibility - -function getID($path) { - // use the share table from the db to find the item source if the file was reshared because shared files - //are not stored in the file cache. - if (substr(\OC\Files\Filesystem::getMountPoint($path), -7, 6) == "Shared") { - $path_parts = explode('/', $path, 5); - $user = $path_parts[1]; - $intPath = '/'.$path_parts[4]; - $query = \OC_DB::prepare('SELECT item_source FROM *PREFIX*share WHERE uid_owner = ? AND file_target = ? '); - $result = $query->execute(array($user, $intPath)); - $row = $result->fetchRow(); - $fileSource = $row['item_source']; - } else { - $rootView = new \OC\Files\View(''); - $meta = $rootView->getFileInfo($path); - $fileSource = $meta['fileid']; - } - - return $fileSource; -} - -if (isset($_GET['file']) || isset($_GET['dir'])) { - if (isset($_GET['dir'])) { - $type = 'folder'; - $path = $_GET['dir']; - if(strlen($path)>1 and substr($path, -1, 1)==='/') { - $path=substr($path, 0, -1); - } - $baseDir = $path; - $dir = $baseDir; - } else { - $type = 'file'; - $path = $_GET['file']; - if(strlen($path)>1 and substr($path, -1, 1)==='/') { - $path=substr($path, 0, -1); - } - } - $uidOwner = substr($path, 1, strpos($path, '/', 1) - 1); - if (OCP\User::userExists($uidOwner)) { - OC_Util::setupFS($uidOwner); - $fileSource = getId($path); - if ($fileSource != -1 && ($linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $uidOwner))) { - // TODO Fix in the getItems - if (!isset($linkItem['item_type']) || $linkItem['item_type'] != $type) { - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); - } - if (isset($linkItem['share_with'])) { - // Check password - if (isset($_GET['file'])) { - $url = OCP\Util::linkToPublic('files').'&file='.$_GET['file']; - } else { - $url = OCP\Util::linkToPublic('files').'&dir='.$_GET['dir']; - } - if (isset($_POST['password'])) { - $password = $_POST['password']; - $storedHash = $linkItem['share_with']; - $forcePortable = (CRYPT_BLOWFISH != 1); - $hasher = new PasswordHash(8, $forcePortable); - if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''), $storedHash))) { - $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest'); - $tmpl->assign('URL', $url); - $tmpl->assign('error', true); - $tmpl->printPage(); - exit(); - } else { - // Save item id in session for future requests - $_SESSION['public_link_authenticated'] = $linkItem['id']; - } - // Check if item id is set in session - } else if (!isset($_SESSION['public_link_authenticated']) || $_SESSION['public_link_authenticated'] !== $linkItem['id']) { - // Prompt for password - $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest'); - $tmpl->assign('URL', $url); - $tmpl->printPage(); - exit(); - } - } - $path = $linkItem['path']; - if (isset($_GET['path'])) { - $path .= $_GET['path']; - $dir .= $_GET['path']; - if (!\OC\Files\Filesystem::file_exists($path)) { - header('HTTP/1.0 404 Not Found'); - $tmpl = new OCP\Template('', '404', 'guest'); - $tmpl->printPage(); - exit(); - } - } - // Download the file - if (isset($_GET['download'])) { - if (isset($_GET['dir'])) { - if ( isset($_GET['files']) ) { // download selected files - OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } else if (isset($_GET['path']) && $_GET['path'] != '' ) { // download a file from a shared directory - OC_Files::get('', $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } else { // download the whole shared directory - OC_Files::get($path, '', $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } - } else { // download a single shared file - OC_Files::get("", $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); - } - - } else { - OCP\Util::addStyle('files_sharing', 'public'); - OCP\Util::addScript('files_sharing', 'public'); - OCP\Util::addScript('files', 'fileactions'); - $tmpl = new OCP\Template('files_sharing', 'public', 'base'); - $tmpl->assign('owner', $uidOwner); - // Show file list - if (\OC\Files\Filesystem::is_dir($path)) { - OCP\Util::addStyle('files', 'files'); - OCP\Util::addScript('files', 'files'); - OCP\Util::addScript('files', 'filelist'); - $files = array(); - $rootLength = strlen($baseDir) + 1; - foreach (OC_Files::getDirectoryContent($path) as $i) { - $i['date'] = OCP\Util::formatDate($i['mtime']); - if ($i['type'] == 'file') { - $fileinfo = pathinfo($i['name']); - $i['basename'] = $fileinfo['filename']; - $i['extension'] = isset($fileinfo['extension']) ? ('.'.$fileinfo['extension']) : ''; - } - $i['directory'] = '/'.substr('/'.$uidOwner.'/files'.$i['directory'], $rootLength); - if ($i['directory'] == '/') { - $i['directory'] = ''; - } - $i['permissions'] = OCP\Share::PERMISSION_READ; - $files[] = $i; - } - // Make breadcrumb - $breadcrumb = array(); - $pathtohere = ''; - $count = 1; - foreach (explode('/', $dir) as $i) { - if ($i != '') { - if ($i != $baseDir) { - $pathtohere .= '/'.$i; - } - if ( strlen($pathtohere) < strlen($_GET['dir'])) { - continue; - } - $breadcrumb[] = array('dir' => str_replace($_GET['dir'], "", $pathtohere, $count), 'name' => $i); - } - } - $list = new OCP\Template('files', 'part.list', ''); - $list->assign('files', $files, false); - $list->assign('publicListView', true); - $list->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false); - $list->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path=', false); - $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '' ); - $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); - $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false); - $folder = new OCP\Template('files', 'index', ''); - $folder->assign('fileList', $list->fetchPage(), false); - $folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); - $folder->assign('dir', basename($dir)); - $folder->assign('isCreatable', false); - $folder->assign('permissions', 0); - $folder->assign('files', $files); - $folder->assign('uploadMaxFilesize', 0); - $folder->assign('uploadMaxHumanFilesize', 0); - $folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); - $tmpl->assign('folder', $folder->fetchPage(), false); - $tmpl->assign('uidOwner', $uidOwner); - $tmpl->assign('dir', basename($dir)); - $tmpl->assign('filename', basename($path)); - $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); - $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); - if (isset($_GET['path'])) { - $getPath = $_GET['path']; - } else { - $getPath = ''; - } - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false); - } else { - // Show file preview if viewer is available - $tmpl->assign('uidOwner', $uidOwner); - $tmpl->assign('dir', dirname($path)); - $tmpl->assign('filename', basename($path)); - $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); - if ($type == 'file') { - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&file='.urlencode($_GET['file']).'&download', false); - } else { - if (isset($_GET['path'])) { - $getPath = $_GET['path']; - } else { - $getPath = ''; - } - $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false); - } - } - $tmpl->printPage(); - } - exit(); - } - } -} -header('HTTP/1.0 404 Not Found'); -$tmpl = new OCP\Template('', '404', 'guest'); -$tmpl->printPage(); +<?php +// Load other apps for file previews +OC_App::loadApps(); + +// Compatibility with shared-by-link items from ownCloud 4.0 +// requires old Sharing table ! +// support will be removed in OC 5.0,a +if (isset($_GET['token'])) { + unset($_GET['file']); + $qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ? LIMIT 1'); + $filepath = $qry->execute(array($_GET['token']))->fetchOne(); + if(isset($filepath)) { + $rootView = new \OC\Files\View(''); + $info = $rootView->getFileInfo($filepath, ''); + if(strtolower($info['mimetype']) == 'httpd/unix-directory') { + $_GET['dir'] = $filepath; + } else { + $_GET['file'] = $filepath; + } + \OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0. Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', \OCP\Util::WARN); + } +} +// Enf of backward compatibility + +function getID($path) { + // use the share table from the db to find the item source if the file was reshared because shared files + //are not stored in the file cache. + if (substr(\OC\Files\Filesystem::getMountPoint($path), -7, 6) == "Shared") { + $path_parts = explode('/', $path, 5); + $user = $path_parts[1]; + $intPath = '/'.$path_parts[4]; + $query = \OC_DB::prepare('SELECT item_source FROM *PREFIX*share WHERE uid_owner = ? AND file_target = ? '); + $result = $query->execute(array($user, $intPath)); + $row = $result->fetchRow(); + $fileSource = $row['item_source']; + } else { + $rootView = new \OC\Files\View(''); + $meta = $rootView->getFileInfo($path); + $fileSource = $meta['fileid']; + } + + return $fileSource; +} + +if (isset($_GET['file']) || isset($_GET['dir'])) { + if (isset($_GET['dir'])) { + $type = 'folder'; + $path = $_GET['dir']; + if(strlen($path)>1 and substr($path, -1, 1)==='/') { + $path=substr($path, 0, -1); + } + $baseDir = $path; + $dir = $baseDir; + } else { + $type = 'file'; + $path = $_GET['file']; + if(strlen($path)>1 and substr($path, -1, 1)==='/') { + $path=substr($path, 0, -1); + } + } + $uidOwner = substr($path, 1, strpos($path, '/', 1) - 1); + if (OCP\User::userExists($uidOwner)) { + OC_Util::setupFS($uidOwner); + $fileSource = getId($path); + if ($fileSource != -1 && ($linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $uidOwner))) { + // TODO Fix in the getItems + if (!isset($linkItem['item_type']) || $linkItem['item_type'] != $type) { + header('HTTP/1.0 404 Not Found'); + $tmpl = new OCP\Template('', '404', 'guest'); + $tmpl->printPage(); + exit(); + } + if (isset($linkItem['share_with'])) { + // Check password + if (isset($_GET['file'])) { + $url = OCP\Util::linkToPublic('files').'&file='.urlencode($_GET['file']); + } else { + $url = OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']); + } + if (isset($_POST['password'])) { + $password = $_POST['password']; + $storedHash = $linkItem['share_with']; + $forcePortable = (CRYPT_BLOWFISH != 1); + $hasher = new PasswordHash(8, $forcePortable); + if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''), $storedHash))) { + $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest'); + $tmpl->assign('URL', $url); + $tmpl->assign('error', true); + $tmpl->printPage(); + exit(); + } else { + // Save item id in session for future requests + $_SESSION['public_link_authenticated'] = $linkItem['id']; + } + // Check if item id is set in session + } else if (!isset($_SESSION['public_link_authenticated']) || $_SESSION['public_link_authenticated'] !== $linkItem['id']) { + // Prompt for password + $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest'); + $tmpl->assign('URL', $url); + $tmpl->printPage(); + exit(); + } + } + $path = $linkItem['path']; + if (isset($_GET['path'])) { + $path .= $_GET['path']; + $dir .= $_GET['path']; + if (!\OC\Files\Filesystem::file_exists($path)) { + header('HTTP/1.0 404 Not Found'); + $tmpl = new OCP\Template('', '404', 'guest'); + $tmpl->printPage(); + exit(); + } + } + // Download the file + if (isset($_GET['download'])) { + if (isset($_GET['dir'])) { + if ( isset($_GET['files']) ) { // download selected files + OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } else if (isset($_GET['path']) && $_GET['path'] != '' ) { // download a file from a shared directory + OC_Files::get('', $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } else { // download the whole shared directory + OC_Files::get($path, '', $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } + } else { // download a single shared file + OC_Files::get("", $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false); + } + + } else { + OCP\Util::addStyle('files_sharing', 'public'); + OCP\Util::addScript('files_sharing', 'public'); + OCP\Util::addScript('files', 'fileactions'); + $tmpl = new OCP\Template('files_sharing', 'public', 'base'); + $tmpl->assign('owner', $uidOwner); + // Show file list + if (\OC\Files\Filesystem::is_dir($path)) { + OCP\Util::addStyle('files', 'files'); + OCP\Util::addScript('files', 'files'); + OCP\Util::addScript('files', 'filelist'); + $files = array(); + $rootLength = strlen($baseDir) + 1; + foreach (OC_Files::getDirectoryContent($path) as $i) { + $i['date'] = OCP\Util::formatDate($i['mtime']); + if ($i['type'] == 'file') { + $fileinfo = pathinfo($i['name']); + $i['basename'] = $fileinfo['filename']; + $i['extension'] = isset($fileinfo['extension']) ? ('.'.$fileinfo['extension']) : ''; + } + $i['directory'] = '/'.substr('/'.$uidOwner.'/files'.$i['directory'], $rootLength); + if ($i['directory'] == '/') { + $i['directory'] = ''; + } + $i['permissions'] = OCP\Share::PERMISSION_READ; + $files[] = $i; + } + // Make breadcrumb + $breadcrumb = array(); + $pathtohere = ''; + $count = 1; + foreach (explode('/', $dir) as $i) { + if ($i != '') { + if ($i != $baseDir) { + $pathtohere .= '/'.$i; + } + if ( strlen($pathtohere) < strlen($_GET['dir'])) { + continue; + } + $breadcrumb[] = array('dir' => str_replace($_GET['dir'], "", $pathtohere, $count), 'name' => $i); + } + } + $list = new OCP\Template('files', 'part.list', ''); + $list->assign('files', $files, false); + $list->assign('publicListView', true); + $list->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false); + $list->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path=', false); + $breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '' ); + $breadcrumbNav->assign('breadcrumb', $breadcrumb, false); + $breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false); + $folder = new OCP\Template('files', 'index', ''); + $folder->assign('fileList', $list->fetchPage(), false); + $folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false); + $folder->assign('dir', basename($dir)); + $folder->assign('isCreatable', false); + $folder->assign('permissions', 0); + $folder->assign('files', $files); + $folder->assign('uploadMaxFilesize', 0); + $folder->assign('uploadMaxHumanFilesize', 0); + $folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + $tmpl->assign('folder', $folder->fetchPage(), false); + $tmpl->assign('uidOwner', $uidOwner); + $tmpl->assign('dir', basename($dir)); + $tmpl->assign('filename', basename($path)); + $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); + $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); + if (isset($_GET['path'])) { + $getPath = $_GET['path']; + } else { + $getPath = ''; + } + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false); + } else { + // Show file preview if viewer is available + $tmpl->assign('uidOwner', $uidOwner); + $tmpl->assign('dir', dirname($path)); + $tmpl->assign('filename', basename($path)); + $tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path)); + if ($type == 'file') { + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&file='.urlencode($_GET['file']).'&download', false); + } else { + if (isset($_GET['path'])) { + $getPath = $_GET['path']; + } else { + $getPath = ''; + } + $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false); + } + } + $tmpl->printPage(); + } + exit(); + } + } +} +header('HTTP/1.0 404 Not Found'); +$tmpl = new OCP\Template('', '404', 'guest'); +$tmpl->printPage(); diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php index e83310172af625d447946bd196cc12836805d40f..b365f456792c60a9dcf152e6b10644ef58c90eb5 100644 --- a/apps/files_versions/lib/versions.php +++ b/apps/files_versions/lib/versions.php @@ -73,7 +73,7 @@ class Storage { } // check filetype blacklist - $blacklist=explode(' ',\OCP\Config::getSystemValue('files_versionsblacklist', Storage::DEFAULTBLACKLIST)); + $blacklist=explode(' ', \OCP\Config::getSystemValue('files_versionsblacklist', Storage::DEFAULTBLACKLIST)); foreach($blacklist as $bl) { $parts=explode('.', $filename); $ext=end($parts); @@ -94,12 +94,12 @@ class Storage { // check mininterval if the file is being modified by the owner (all shared files should be versioned despite mininterval) if ($uid == \OCP\User::getUser()) { - $versions_fileview = new \OC\Files\View('/'.\OCP\User::getUser().'/files_versions'); + $versions_fileview = new \OC\Files\View('/' . \OCP\User::getUser() . '/files_versions'); $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename); $versionsFolderName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath(''); $matches=glob($versionsName.'.v*'); sort($matches); - $parts=explode('.v',end($matches)); + $parts=explode('.v', end($matches)); if((end($parts)+Storage::DEFAULTMININTERVAL)>time()) { return false; } @@ -109,7 +109,7 @@ class Storage { // create all parent folders $info=pathinfo($filename); if(!file_exists($versionsFolderName.'/'.$info['dirname'])) { - mkdir($versionsFolderName.'/'.$info['dirname'],0750,true); + mkdir($versionsFolderName.'/'.$info['dirname'], 0750, true); } // store a new version of a file @@ -124,11 +124,11 @@ class Storage { /** * rollback to an old version of a file. */ - public static function rollback($filename,$revision) { + public static function rollback($filename, $revision) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { list($uid, $filename) = self::getUidAndFilename($filename); - $users_view = new \OC\Files\View('/'.\OCP\User::getUser()); + $users_view = new \OC\Files\View('/' . \OCP\User::getUser()); // rollback if( @$users_view->copy('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) { @@ -151,7 +151,7 @@ class Storage { public static function isversioned($filename) { if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') { list($uid, $filename) = self::getUidAndFilename($filename); - $versions_fileview = new \OC\Files\View('/'.\OCP\User::getUser().'/files_versions'); + $versions_fileview = new \OC\Files\View('/' . \OCP\User::getUser() . '/files_versions'); $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename); @@ -178,7 +178,7 @@ class Storage { public static function getVersions( $filename, $count = 0 ) { if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) { list($uid, $filename) = self::getUidAndFilename($filename); - $versions_fileview = new \OC\Files\View('/'.\OCP\User::getUser().'/files_versions'); + $versions_fileview = new \OC\Files\View('/' . \OCP\User::getUser() . '/files_versions'); $versionsName = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename); $versions = array(); @@ -189,7 +189,7 @@ class Storage { $i = 0; - $files_view = new \OC\Files\View('/'.\OCP\User::getUser().'/files'); + $files_view = new \OC\Files\View('/' \OCP\User::getUser() . '/files'); $local_file = $files_view->getLocalFile($filename); foreach( $matches as $ma ) { diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php index f1e2143cfafeba9b9dd5298f09d7aa984b123827..9cbb21ead0e6c39dbfd7b7651f22f3fa5547a83f 100644 --- a/apps/user_ldap/lib/access.php +++ b/apps/user_ldap/lib/access.php @@ -40,9 +40,11 @@ abstract class Access { * @brief reads a given attribute for an LDAP record identified by a DN * @param $dn the record in question * @param $attr the attribute that shall be retrieved - * @returns the values in an array on success, false otherwise + * if empty, just check the record's existence + * @returns an array of values on success or an empty + * array if $attr is empty, false otherwise * - * Reads an attribute from an LDAP entry + * Reads an attribute from an LDAP entry or check if entry exists */ public function readAttribute($dn, $attr, $filter = 'objectClass=*') { if(!$this->checkConnection()) { @@ -57,10 +59,14 @@ abstract class Access { } $rr = @ldap_read($cr, $dn, $filter, array($attr)); if(!is_resource($rr)) { - \OCP\Util::writeLog('user_ldap', 'readAttribute '.$attr.' failed for DN '.$dn, \OCP\Util::DEBUG); + \OCP\Util::writeLog('user_ldap', 'readAttribute failed for DN '.$dn, \OCP\Util::DEBUG); //in case an error occurs , e.g. object does not exist return false; } + if (empty($attr)) { + \OCP\Util::writeLog('user_ldap', 'readAttribute: '.$dn.' found', \OCP\Util::DEBUG); + return array(); + } $er = ldap_first_entry($cr, $rr); if(!is_resource($er)) { //did not match the filter, return false diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php index ef92bbad40a171001cdff478896b373a17284e8c..687e2692270e19bc8cb219e97ad6eebe55de450a 100644 --- a/apps/user_ldap/lib/connection.php +++ b/apps/user_ldap/lib/connection.php @@ -89,7 +89,7 @@ class Connection { \OCP\Util::writeLog('user_ldap', 'Set config ldapUuidAttribute to '.$value, \OCP\Util::DEBUG); $this->config[$name] = $value; if(!empty($this->configID)) { - \OCP\Config::getAppValue($this->configID, 'ldap_uuid_attribute', $value); + \OCP\Config::setAppValue($this->configID, 'ldap_uuid_attribute', $value); } $changed = true; } diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php index 3a653ad7208f2d10c8632e22694bb7cd04faf229..d10062c1d9dd8100511092f59e7575dba2076710 100644 --- a/apps/user_ldap/templates/settings.php +++ b/apps/user_ldap/templates/settings.php @@ -29,7 +29,7 @@ <p><label for="ldap_cache_ttl">Cache Time-To-Live</label><input type="text" id="ldap_cache_ttl" name="ldap_cache_ttl" value="<?php echo $_['ldap_cache_ttl']; ?>" title="<?php echo $l->t('in seconds. A change empties the cache.');?>" /></p> <p><label for="home_folder_naming_rule">User Home Folder Naming Rule</label><input type="text" id="home_folder_naming_rule" name="home_folder_naming_rule" value="<?php echo $_['home_folder_naming_rule']; ?>" title="<?php echo $l->t('Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute.');?>" /></p> </fieldset> - <input type="submit" value="Save" /> <button id="ldap_action_test_connection" name="ldap_action_test_connection">Test Configuration</button> <a href="http://owncloud.org/support/ldap-backend/" target="_blank"><img src="<?php echo OCP\Util::imagePath('','actions/info.png'); ?>" style="height:1.75ex" /> <?php echo $l->t('Help');?></a> + <input type="submit" value="Save" /> <button id="ldap_action_test_connection" name="ldap_action_test_connection">Test Configuration</button> <a href="http://owncloud.org/support/ldap-backend/" target="_blank"><img src="<?php echo OCP\Util::imagePath('', 'actions/info.png'); ?>" style="height:1.75ex" /> <?php echo $l->t('Help');?></a> </div> </form> diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php index 69e470c78a768dd4ae12d4adc80068a4f78c52f3..6591d1d5fee1442b0152a279f9f83b9d4b130828 100644 --- a/apps/user_ldap/user_ldap.php +++ b/apps/user_ldap/user_ldap.php @@ -149,9 +149,8 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface { return false; } - //if user really still exists, we will be able to read his objectclass - $objcs = $this->readAttribute($dn, 'objectclass'); - if(!$objcs || empty($objcs)) { + //check if user really still exists by reading its entry + if(!is_array($this->readAttribute($dn, ''))) { $this->connection->writeToCache('userExists'.$uid, false); return false; } diff --git a/apps/user_webdavauth/appinfo/info.xml b/apps/user_webdavauth/appinfo/info.xml index 9a8027daee68748ce35375775b9cfa81d1c53691..0d9f529ed1b63ef62e5d2ae3122891af7022c2fd 100755 --- a/apps/user_webdavauth/appinfo/info.xml +++ b/apps/user_webdavauth/appinfo/info.xml @@ -2,10 +2,12 @@ <info> <id>user_webdavauth</id> <name>WebDAV user backend</name> - <description>Authenticate Users by a WebDAV call</description> - <version>1.0</version> + <description>Authenticate users by a WebDAV call. You can use any WebDAV server, ownCloud server or other webserver to authenticate. It should return http 200 for right credentials and http 401 for wrong ones.</description> <licence>AGPL</licence> <author>Frank Karlitschek</author> <require>4.9</require> <shipped>true</shipped> + <types> + <authentication/> + </types> </info> diff --git a/apps/user_webdavauth/appinfo/version b/apps/user_webdavauth/appinfo/version new file mode 100644 index 0000000000000000000000000000000000000000..a6bbdb5ff48ca824c38bb045326edffa0978c729 --- /dev/null +++ b/apps/user_webdavauth/appinfo/version @@ -0,0 +1 @@ +1.1.0.0 diff --git a/apps/user_webdavauth/templates/settings.php b/apps/user_webdavauth/templates/settings.php index c00c199632af5c8979017f28ef3c5db92c7baf75..e6ca5d97d3c29d15987bf8e3da90426890174016 100755 --- a/apps/user_webdavauth/templates/settings.php +++ b/apps/user_webdavauth/templates/settings.php @@ -1,7 +1,7 @@ <form id="webdavauth" action="#" method="post"> <fieldset class="personalblock"> <legend><strong>WebDAV Authentication</strong></legend> - <p><label for="webdav_url"><?php echo $l->t('webdav_url');?><input type="text" id="webdav_url" name="webdav_url" value="<?php echo $_['webdav_url']; ?>"></label> + <p><label for="webdav_url"><?php echo $l->t('WebDAV URL: http://');?><input type="text" id="webdav_url" name="webdav_url" value="<?php echo $_['webdav_url']; ?>"></label> <input type="submit" value="Save" /> </fieldset> </form> diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php index 5a16a4c992a3cc82d62bd5f417a50771661ac4db..0b0be7c2fa1a9b42d31193094b984cba9fb9e937 100755 --- a/apps/user_webdavauth/user_webdavauth.php +++ b/apps/user_webdavauth/user_webdavauth.php @@ -34,7 +34,7 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend { return false; } - public function deleteUser() { + public function deleteUser($uid) { // Can't delete user OC_Log::write('OC_USER_WEBDAVAUTH', 'Not possible to delete users from web frontend using WebDAV user backend', 3); return false; @@ -47,7 +47,6 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend { } public function checkPassword( $uid, $password ) { - $url= 'http://'.urlencode($uid).':'.urlencode($password).'@'.$this->webdavauth_url; $headers = get_headers($url); if($headers==false) { @@ -58,9 +57,9 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend { $returncode= substr($headers[0], 9, 3); if($returncode=='401') { - return false; + return(false); }else{ - return true; + return($uid); } } @@ -68,14 +67,15 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend { /* * we don´t know if a user exists without the password. so we have to return false all the time */ - public function userExists( $uid ) { - return false; + public function userExists( $uid ){ + return true; } + /* * we don´t know the users so all we can do it return an empty array here */ - public function getUsers() { + public function getUsers($search = '', $limit = 10, $offset = 0) { $returnArray = array(); return $returnArray; diff --git a/core/css/styles.css b/core/css/styles.css index 95dceb50dec98a8ef5d368f20fdf62ccf52ba0ed..646a760f9894f4338d7f1b6797804b7f6c1f3b8b 100644 --- a/core/css/styles.css +++ b/core/css/styles.css @@ -44,6 +44,7 @@ textarea:hover, textarea:focus, textarea:active { background-color:#fff; color:# input[type="submit"], input[type="button"], button, .button, #quota, div.jp-progress, select, .pager li a { width:auto; padding:.4em; border:1px solid #ddd; font-weight:bold; cursor:pointer; background:#f8f8f8; color:#555; text-shadow:#fff 0 1px 0; -moz-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -webkit-box-shadow:0 1px 1px #fff, 0 1px 1px #fff inset; -moz-border-radius:.5em; -webkit-border-radius:.5em; border-radius:.5em; } input[type="submit"]:hover, input[type="submit"]:focus, input[type="button"]:hover, select:hover, select:focus, select:active, input[type="button"]:focus, .button:hover { background:#fff; color:#333; } +input[type="submit"] img, input[type="button"] img, button img, .button img { cursor:pointer; } input[type="checkbox"] { width:auto; } #quota { cursor:default; } diff --git a/core/js/js.js b/core/js/js.js index 2073fc4d4b7fe0355b98db14c4d67d48194b3483..2b2a64d25f93385650dee2ceeff3b4171515ac93 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -649,7 +649,7 @@ $.fn.filterAttr = function(attr_name, attr_value) { function humanFileSize(size) { var humanList = ['B', 'kB', 'MB', 'GB', 'TB']; // Calculate Log with base 1024: size = 1024 ** order - var order = Math.floor(Math.log(size) / Math.log(1024)); + var order = size?Math.floor(Math.log(size) / Math.log(1024)):0; // Stay in range of the byte sizes that are defined order = Math.min(humanList.length - 1, order); var readableFormat = humanList[order]; @@ -675,6 +675,30 @@ function formatDate(date){ return $.datepicker.formatDate(datepickerFormatDate, date)+' '+date.getHours()+':'+((date.getMinutes()<10)?'0':'')+date.getMinutes(); } +/* takes an absolute timestamp and return a string with a human-friendly relative date + * @param int a Unix timestamp + */ +function relative_modified_date(timestamp) { + var timediff = Math.round((new Date()).getTime() / 1000) - timestamp; + var diffminutes = Math.round(timediff/60); + var diffhours = Math.round(diffminutes/60); + var diffdays = Math.round(diffhours/24); + var diffmonths = Math.round(diffdays/31); + if(timediff < 60) { return t('core','seconds ago'); } + else if(timediff < 120) { return t('core','1 minute ago'); } + else if(timediff < 3600) { return t('core','{minutes} minutes ago',{minutes: diffminutes}); } + //else if($timediff < 7200) { return '1 hour ago'; } + //else if($timediff < 86400) { return $diffhours.' hours ago'; } + else if(timediff < 86400) { return t('core','today'); } + else if(timediff < 172800) { return t('core','yesterday'); } + else if(timediff < 2678400) { return t('core','{days} days ago',{days: diffdays}); } + else if(timediff < 5184000) { return t('core','last month'); } + //else if($timediff < 31556926) { return $diffmonths.' months ago'; } + else if(timediff < 31556926) { return t('core','months ago'); } + else if(timediff < 63113852) { return t('core','last year'); } + else { return t('core','years ago'); } +} + /** * get a variable by name * @param string name diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php index c9daa645c474c99bcb5d845185a25aea80cf3979..f1c658830fc7127aa405e4d2259ea2797047e179 100644 --- a/core/l10n/pt_PT.php +++ b/core/l10n/pt_PT.php @@ -38,6 +38,7 @@ "ownCloud password reset" => "Reposição da password ownCloud", "Use the following link to reset your password: {link}" => "Use o seguinte endereço para repor a sua password: {link}", "You will receive a link to reset your password via Email." => "Vai receber um endereço para repor a sua password", +"Request failed!" => "O pedido falhou!", "Username" => "Utilizador", "Request reset" => "Pedir reposição", "Your password was reset" => "A sua password foi reposta", @@ -87,6 +88,7 @@ "December" => "Dezembro", "web services under your control" => "serviços web sob o seu controlo", "Log out" => "Sair", +"If you did not change your password recently, your account may be compromised!" => "Se não mudou a sua palavra-passe recentemente, a sua conta pode ter sido comprometida!", "Please change your password to secure your account again." => "Por favor mude a sua palavra-passe para assegurar a sua conta de novo.", "Lost your password?" => "Esqueceu a sua password?", "remember" => "lembrar", diff --git a/l10n/pl/files.po b/l10n/pl/files.po index bc007cff9c55997d4a5bcfed3647f98f6b2d6a62..3581d4de108cffa12a9c6e9ca76de1664affa556 100644 --- a/l10n/pl/files.po +++ b/l10n/pl/files.po @@ -13,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-11-03 00:00+0100\n" -"PO-Revision-Date: 2012-11-01 23:21+0000\n" -"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" +"PO-Revision-Date: 2012-11-05 23:19+0000\n" +"Last-Translator: emc <mplichta@gmail.com>\n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -65,7 +65,7 @@ msgstr "Nie udostępniaj" msgid "Delete" msgstr "Usuwa element" -#: js/fileactions.js:178 +#: js/fileactions.js:172 msgid "Rename" msgstr "Zmień nazwę" @@ -264,7 +264,7 @@ msgstr "Katalog" #: templates/index.php:11 msgid "From link" -msgstr "" +msgstr "Z linku" #: templates/index.php:22 msgid "Upload" diff --git a/l10n/pt_PT/core.po b/l10n/pt_PT/core.po index 4ed9b3813aeca57aff46254c890e25d69b55c993..bb6d026ba97c5083159d80d66279f525d16219f0 100644 --- a/l10n/pt_PT/core.po +++ b/l10n/pt_PT/core.po @@ -12,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-10-29 00:01+0100\n" -"PO-Revision-Date: 2012-10-27 22:12+0000\n" -"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-11-05 13:51+0000\n" +"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -34,27 +34,27 @@ msgstr "Nenhuma categoria para adicionar?" msgid "This category already exists: " msgstr "Esta categoria já existe:" -#: js/js.js:243 templates/layout.user.php:53 templates/layout.user.php:54 +#: js/js.js:243 templates/layout.user.php:59 templates/layout.user.php:60 msgid "Settings" msgstr "Definições" -#: js/oc-dialogs.js:123 +#: js/oc-dialogs.js:126 msgid "Choose" msgstr "Escolha" -#: js/oc-dialogs.js:143 js/oc-dialogs.js:163 +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 msgid "Cancel" msgstr "Cancelar" -#: js/oc-dialogs.js:159 +#: js/oc-dialogs.js:162 msgid "No" msgstr "Não" -#: js/oc-dialogs.js:160 +#: js/oc-dialogs.js:163 msgid "Yes" msgstr "Sim" -#: js/oc-dialogs.js:177 +#: js/oc-dialogs.js:180 msgid "Ok" msgstr "Ok" @@ -186,7 +186,7 @@ msgstr "" #: lostpassword/templates/lostpassword.php:8 msgid "Request failed!" -msgstr "" +msgstr "O pedido falhou!" #: lostpassword/templates/lostpassword.php:11 templates/installation.php:38 #: templates/login.php:20 @@ -319,87 +319,87 @@ msgstr "Host da base de dados" msgid "Finish setup" msgstr "Acabar instalação" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Sunday" msgstr "Domingo" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Monday" msgstr "Segunda" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Tuesday" msgstr "Terça" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Wednesday" msgstr "Quarta" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Thursday" msgstr "Quinta" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Friday" msgstr "Sexta" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Saturday" msgstr "Sábado" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "January" msgstr "Janeiro" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "February" msgstr "Fevereiro" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "March" msgstr "Março" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "April" msgstr "Abril" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "May" msgstr "Maio" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "June" msgstr "Junho" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "July" msgstr "Julho" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "August" msgstr "Agosto" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "September" msgstr "Setembro" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "October" msgstr "Outubro" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "November" msgstr "Novembro" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "December" msgstr "Dezembro" -#: templates/layout.guest.php:42 +#: templates/layout.guest.php:41 msgid "web services under your control" msgstr "serviços web sob o seu controlo" -#: templates/layout.user.php:38 +#: templates/layout.user.php:44 msgid "Log out" msgstr "Sair" @@ -411,7 +411,7 @@ msgstr "" msgid "" "If you did not change your password recently, your account may be " "compromised!" -msgstr "" +msgstr "Se não mudou a sua palavra-passe recentemente, a sua conta pode ter sido comprometida!" #: templates/login.php:10 msgid "Please change your password to secure your account again." diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po index f14ef7f6f288790d15e9824e7f07eafe37c02744..52d155e3ab4b477a1bfabc1050c7d8ed1734822f 100644 --- a/l10n/pt_PT/files.po +++ b/l10n/pt_PT/files.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-11-03 00:00+0100\n" -"PO-Revision-Date: 2012-11-01 23:21+0000\n" -"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-11-05 13:54+0000\n" +"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -63,7 +63,7 @@ msgstr "Deixar de partilhar" msgid "Delete" msgstr "Apagar" -#: js/fileactions.js:178 +#: js/fileactions.js:172 msgid "Rename" msgstr "Renomear" @@ -262,7 +262,7 @@ msgstr "Pasta" #: templates/index.php:11 msgid "From link" -msgstr "" +msgstr "Da ligação" #: templates/index.php:22 msgid "Upload" diff --git a/l10n/si_LK/settings.po b/l10n/si_LK/settings.po index 0b7793a0ad756f4870bee4cf18231cb7495a831b..206a29d0372fd9ccb4cd7a15ffbdc17edb4d62a2 100644 --- a/l10n/si_LK/settings.po +++ b/l10n/si_LK/settings.po @@ -10,8 +10,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-11-02 00:04+0100\n" -"PO-Revision-Date: 2012-11-01 08:56+0000\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" +"PO-Revision-Date: 2012-11-06 05:39+0000\n" "Last-Translator: Anushke Guneratne <anushke@gmail.com>\n" "Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n" "MIME-Version: 1.0\n" @@ -46,7 +46,7 @@ msgstr "අවලංගු වි-තැපෑල" #: ajax/openid.php:13 msgid "OpenID Changed" -msgstr "" +msgstr "විවෘත හැඳුනුම නැතහොත් OpenID වෙනස්විය." #: ajax/openid.php:15 ajax/setlanguage.php:17 ajax/setlanguage.php:20 msgid "Invalid request" @@ -58,7 +58,7 @@ msgstr "කණ්ඩායම මැකීමට නොහැක" #: ajax/removeuser.php:15 ajax/setquota.php:15 ajax/togglegroups.php:12 msgid "Authentication error" -msgstr "" +msgstr "සත්යාපන දෝෂයක්" #: ajax/removeuser.php:24 msgid "Unable to delete user" @@ -105,7 +105,7 @@ msgid "" "strongly suggest that you configure your webserver in a way that the data " "directory is no longer accessible or you move the data directory outside the" " webserver document root." -msgstr "" +msgstr "ඔබගේ දත්ත ඩිරෙක්ටරිය හා ගොනුවලට අන්තර්ජාලයෙන් පිවිසිය හැක. ownCloud සපයා ඇති .htaccess ගොනුව ක්රියාකරන්නේ නැත. අපි තරයේ කියා සිටිනුයේ නම්, මෙම දත්ත හා ගොනු එසේ පිවිසීමට නොහැකි වන ලෙස ඔබේ වෙබ් සේවාදායකයා වින්යාස කරන ලෙස හෝ එම ඩිරෙක්ටරිය වෙබ් මූලයෙන් පිටතට ගෙනයන ලෙසය." #: templates/admin.php:31 msgid "Cron" @@ -213,15 +213,15 @@ msgstr "විශාල ගොනු කළමණාකරනය" msgid "Ask a question" msgstr "ප්රශ්ණයක් අසන්න" -#: templates/help.php:23 +#: templates/help.php:22 msgid "Problems connecting to help database." msgstr "උදව් දත්ත ගබඩාව හා සම්බන්ධවීමේදී ගැටළු ඇතිවිය." -#: templates/help.php:24 +#: templates/help.php:23 msgid "Go there manually." -msgstr "" +msgstr "ස්වශක්තියෙන් එතැනට යන්න" -#: templates/help.php:32 +#: templates/help.php:31 msgid "Answer" msgstr "පිළිතුර" @@ -284,7 +284,7 @@ msgstr "පරිවර්ථන සහය" #: templates/personal.php:51 msgid "use this address to connect to your ownCloud in your file manager" -msgstr "" +msgstr "ඔබගේ ගොනු කළමනාකරු ownCloudයට සම්බන්ධ කිරීමට මෙම ලිපිනය භාවිතා කරන්න" #: templates/users.php:21 templates/users.php:76 msgid "Name" diff --git a/l10n/ta_LK/files.po b/l10n/ta_LK/files.po index d085f8c045f9932da57efe97c6ee04980edad683..ea03b680f30a19d5a28aa8238abb8ca3e84bce0a 100644 --- a/l10n/ta_LK/files.po +++ b/l10n/ta_LK/files.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-11-03 00:00+0100\n" -"PO-Revision-Date: 2012-11-01 23:21+0000\n" -"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-11-05 07:17+0000\n" +"Last-Translator: suganthi <suganthi@nic.lk>\n" "Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -60,7 +60,7 @@ msgstr "பகிரப்படாதது" msgid "Delete" msgstr "அழிக்க" -#: js/fileactions.js:178 +#: js/fileactions.js:172 msgid "Rename" msgstr "பெயர்மாற்றம்" @@ -259,7 +259,7 @@ msgstr "கோப்புறை" #: templates/index.php:11 msgid "From link" -msgstr "" +msgstr "இணைப்பிலிருந்து" #: templates/index.php:22 msgid "Upload" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 3e0f7d390d42d40743b4d53f02f751a22551fffc..e251cc0e980a68d8eb488e1b95868d0d045de472 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:00+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -29,7 +29,7 @@ msgstr "" msgid "This category already exists: " msgstr "" -#: js/js.js:243 templates/layout.user.php:53 templates/layout.user.php:54 +#: js/js.js:243 templates/layout.user.php:59 templates/layout.user.php:60 msgid "Settings" msgstr "" @@ -314,87 +314,87 @@ msgstr "" msgid "Finish setup" msgstr "" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Sunday" msgstr "" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Monday" msgstr "" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Tuesday" msgstr "" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Wednesday" msgstr "" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Thursday" msgstr "" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Friday" msgstr "" -#: templates/layout.guest.php:16 templates/layout.user.php:17 +#: templates/layout.guest.php:15 templates/layout.user.php:16 msgid "Saturday" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "January" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "February" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "March" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "April" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "May" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "June" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "July" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "August" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "September" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "October" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "November" msgstr "" -#: templates/layout.guest.php:17 templates/layout.user.php:18 +#: templates/layout.guest.php:16 templates/layout.user.php:17 msgid "December" msgstr "" -#: templates/layout.guest.php:42 +#: templates/layout.guest.php:41 msgid "web services under your control" msgstr "" -#: templates/layout.user.php:38 +#: templates/layout.user.php:44 msgid "Log out" msgstr "" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 06fc0ce46da8a2b2423c895a27f53e0cd535c5fd..9941454208d62189b149d46a2752504dc215dae3 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:00+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -59,7 +59,7 @@ msgstr "" msgid "Delete" msgstr "" -#: js/fileactions.js:178 +#: js/fileactions.js:172 msgid "Rename" msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index 729f944b65b62f05301dbdfd1b7170a5d5026985..f06a9584dd152ca4437b996a74ffe63c8879c745 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:00+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 51f405e0f1eae54db3b7cb30bd82b83fc2db9494..354a36df8d6b2f378ba65903748a723edda1d3ca 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:00+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index d53c61547c888dac3fdaa00fa8e69af64d4a633a..fe5d87ccedb8b73df39f68703c1a9176b8180548 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:00+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 5c037f680ca0e5fbd873616aa23a5f358cb0055c..f212ca24503c563aae553d8ae8f8caa26544e652 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:00+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index fd91ee28f26791255474fdeb16c8c8d00094a63b..692741a28fccdf7dd85c22b6f8d517679fd4e158 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:01+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -41,19 +41,19 @@ msgstr "" msgid "Admin" msgstr "" -#: files.php:328 +#: files.php:331 msgid "ZIP download is turned off." msgstr "" -#: files.php:329 +#: files.php:332 msgid "Files need to be downloaded one by one." msgstr "" -#: files.php:329 files.php:354 +#: files.php:332 files.php:357 msgid "Back to Files" msgstr "" -#: files.php:353 +#: files.php:356 msgid "Selected files too large to generate zip file." msgstr "" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index a7fbc613ee8ccfc45f211493bd14d3e2c32c987a..2614e3f52bf3ef921100d0b4db2c580246c34c88 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:01+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" @@ -210,15 +210,15 @@ msgstr "" msgid "Ask a question" msgstr "" -#: templates/help.php:23 +#: templates/help.php:22 msgid "Problems connecting to help database." msgstr "" -#: templates/help.php:24 +#: templates/help.php:23 msgid "Go there manually." msgstr "" -#: templates/help.php:32 +#: templates/help.php:31 msgid "Answer" msgstr "" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 1e74d709150cb2cd86a35e0c08a3f24f1e635905..47e50020d2014dae5c4e72f59f1311e1204dd434 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-11-04 00:00+0100\n" +"POT-Creation-Date: 2012-11-07 00:01+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Language-Team: LANGUAGE <LL@li.org>\n" diff --git a/l10n/zu_ZA/core.po b/l10n/zu_ZA/core.po new file mode 100644 index 0000000000000000000000000000000000000000..956f0f5d84568d14f13af0b5362433c32b3575f4 --- /dev/null +++ b/l10n/zu_ZA/core.po @@ -0,0 +1,451 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2011-07-25 16:05+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/vcategories/add.php:22 ajax/vcategories/delete.php:22 +msgid "Application name not provided." +msgstr "" + +#: ajax/vcategories/add.php:28 +msgid "No category to add?" +msgstr "" + +#: ajax/vcategories/add.php:35 +msgid "This category already exists: " +msgstr "" + +#: js/js.js:243 templates/layout.user.php:59 templates/layout.user.php:60 +msgid "Settings" +msgstr "" + +#: js/oc-dialogs.js:126 +msgid "Choose" +msgstr "" + +#: js/oc-dialogs.js:146 js/oc-dialogs.js:166 +msgid "Cancel" +msgstr "" + +#: js/oc-dialogs.js:162 +msgid "No" +msgstr "" + +#: js/oc-dialogs.js:163 +msgid "Yes" +msgstr "" + +#: js/oc-dialogs.js:180 +msgid "Ok" +msgstr "" + +#: js/oc-vcategories.js:68 +msgid "No categories selected for deletion." +msgstr "" + +#: js/oc-vcategories.js:68 js/share.js:135 js/share.js:142 js/share.js:525 +#: js/share.js:537 +msgid "Error" +msgstr "" + +#: js/share.js:124 +msgid "Error while sharing" +msgstr "" + +#: js/share.js:135 +msgid "Error while unsharing" +msgstr "" + +#: js/share.js:142 +msgid "Error while changing permissions" +msgstr "" + +#: js/share.js:151 +msgid "Shared with you and the group {group} by {owner}" +msgstr "" + +#: js/share.js:153 +msgid "Shared with you by {owner}" +msgstr "" + +#: js/share.js:158 +msgid "Share with" +msgstr "" + +#: js/share.js:163 +msgid "Share with link" +msgstr "" + +#: js/share.js:164 +msgid "Password protect" +msgstr "" + +#: js/share.js:168 templates/installation.php:42 templates/login.php:24 +#: templates/verify.php:13 +msgid "Password" +msgstr "" + +#: js/share.js:173 +msgid "Set expiration date" +msgstr "" + +#: js/share.js:174 +msgid "Expiration date" +msgstr "" + +#: js/share.js:206 +msgid "Share via email:" +msgstr "" + +#: js/share.js:208 +msgid "No people found" +msgstr "" + +#: js/share.js:235 +msgid "Resharing is not allowed" +msgstr "" + +#: js/share.js:271 +msgid "Shared in {item} with {user}" +msgstr "" + +#: js/share.js:292 +msgid "Unshare" +msgstr "" + +#: js/share.js:304 +msgid "can edit" +msgstr "" + +#: js/share.js:306 +msgid "access control" +msgstr "" + +#: js/share.js:309 +msgid "create" +msgstr "" + +#: js/share.js:312 +msgid "update" +msgstr "" + +#: js/share.js:315 +msgid "delete" +msgstr "" + +#: js/share.js:318 +msgid "share" +msgstr "" + +#: js/share.js:343 js/share.js:512 js/share.js:514 +msgid "Password protected" +msgstr "" + +#: js/share.js:525 +msgid "Error unsetting expiration date" +msgstr "" + +#: js/share.js:537 +msgid "Error setting expiration date" +msgstr "" + +#: lostpassword/controller.php:47 +msgid "ownCloud password reset" +msgstr "" + +#: lostpassword/templates/email.php:2 +msgid "Use the following link to reset your password: {link}" +msgstr "" + +#: lostpassword/templates/lostpassword.php:3 +msgid "You will receive a link to reset your password via Email." +msgstr "" + +#: lostpassword/templates/lostpassword.php:5 +msgid "Reset email send." +msgstr "" + +#: lostpassword/templates/lostpassword.php:8 +msgid "Request failed!" +msgstr "" + +#: lostpassword/templates/lostpassword.php:11 templates/installation.php:38 +#: templates/login.php:20 +msgid "Username" +msgstr "" + +#: lostpassword/templates/lostpassword.php:14 +msgid "Request reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:4 +msgid "Your password was reset" +msgstr "" + +#: lostpassword/templates/resetpassword.php:5 +msgid "To login page" +msgstr "" + +#: lostpassword/templates/resetpassword.php:8 +msgid "New password" +msgstr "" + +#: lostpassword/templates/resetpassword.php:11 +msgid "Reset password" +msgstr "" + +#: strings.php:5 +msgid "Personal" +msgstr "" + +#: strings.php:6 +msgid "Users" +msgstr "" + +#: strings.php:7 +msgid "Apps" +msgstr "" + +#: strings.php:8 +msgid "Admin" +msgstr "" + +#: strings.php:9 +msgid "Help" +msgstr "" + +#: templates/403.php:12 +msgid "Access forbidden" +msgstr "" + +#: templates/404.php:12 +msgid "Cloud not found" +msgstr "" + +#: templates/edit_categories_dialog.php:4 +msgid "Edit categories" +msgstr "" + +#: templates/edit_categories_dialog.php:14 +msgid "Add" +msgstr "" + +#: templates/installation.php:23 templates/installation.php:31 +msgid "Security Warning" +msgstr "" + +#: templates/installation.php:24 +msgid "" +"No secure random number generator is available, please enable the PHP " +"OpenSSL extension." +msgstr "" + +#: templates/installation.php:26 +msgid "" +"Without a secure random number generator an attacker may be able to predict " +"password reset tokens and take over your account." +msgstr "" + +#: templates/installation.php:32 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/installation.php:36 +msgid "Create an <strong>admin account</strong>" +msgstr "" + +#: templates/installation.php:48 +msgid "Advanced" +msgstr "" + +#: templates/installation.php:50 +msgid "Data folder" +msgstr "" + +#: templates/installation.php:57 +msgid "Configure the database" +msgstr "" + +#: templates/installation.php:62 templates/installation.php:73 +#: templates/installation.php:83 templates/installation.php:93 +msgid "will be used" +msgstr "" + +#: templates/installation.php:105 +msgid "Database user" +msgstr "" + +#: templates/installation.php:109 +msgid "Database password" +msgstr "" + +#: templates/installation.php:113 +msgid "Database name" +msgstr "" + +#: templates/installation.php:121 +msgid "Database tablespace" +msgstr "" + +#: templates/installation.php:127 +msgid "Database host" +msgstr "" + +#: templates/installation.php:132 +msgid "Finish setup" +msgstr "" + +#: templates/layout.guest.php:15 templates/layout.user.php:16 +msgid "Sunday" +msgstr "" + +#: templates/layout.guest.php:15 templates/layout.user.php:16 +msgid "Monday" +msgstr "" + +#: templates/layout.guest.php:15 templates/layout.user.php:16 +msgid "Tuesday" +msgstr "" + +#: templates/layout.guest.php:15 templates/layout.user.php:16 +msgid "Wednesday" +msgstr "" + +#: templates/layout.guest.php:15 templates/layout.user.php:16 +msgid "Thursday" +msgstr "" + +#: templates/layout.guest.php:15 templates/layout.user.php:16 +msgid "Friday" +msgstr "" + +#: templates/layout.guest.php:15 templates/layout.user.php:16 +msgid "Saturday" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "January" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "February" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "March" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "April" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "May" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "June" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "July" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "August" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "September" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "October" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "November" +msgstr "" + +#: templates/layout.guest.php:16 templates/layout.user.php:17 +msgid "December" +msgstr "" + +#: templates/layout.guest.php:41 +msgid "web services under your control" +msgstr "" + +#: templates/layout.user.php:44 +msgid "Log out" +msgstr "" + +#: templates/login.php:8 +msgid "Automatic logon rejected!" +msgstr "" + +#: templates/login.php:9 +msgid "" +"If you did not change your password recently, your account may be " +"compromised!" +msgstr "" + +#: templates/login.php:10 +msgid "Please change your password to secure your account again." +msgstr "" + +#: templates/login.php:15 +msgid "Lost your password?" +msgstr "" + +#: templates/login.php:27 +msgid "remember" +msgstr "" + +#: templates/login.php:28 +msgid "Log in" +msgstr "" + +#: templates/logout.php:1 +msgid "You are logged out." +msgstr "" + +#: templates/part.pagenavi.php:3 +msgid "prev" +msgstr "" + +#: templates/part.pagenavi.php:20 +msgid "next" +msgstr "" + +#: templates/verify.php:5 +msgid "Security Warning!" +msgstr "" + +#: templates/verify.php:6 +msgid "" +"Please verify your password. <br/>For security reasons you may be " +"occasionally asked to enter your password again." +msgstr "" + +#: templates/verify.php:16 +msgid "Verify" +msgstr "" diff --git a/l10n/zu_ZA/files.po b/l10n/zu_ZA/files.po new file mode 100644 index 0000000000000000000000000000000000000000..19f84d9ed96b4a80ddc4bec65ccd392b262a5321 --- /dev/null +++ b/l10n/zu_ZA/files.po @@ -0,0 +1,299 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2011-08-13 02:19+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/upload.php:20 +msgid "There is no error, the file uploaded with success" +msgstr "" + +#: ajax/upload.php:21 +msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini" +msgstr "" + +#: ajax/upload.php:22 +msgid "" +"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in " +"the HTML form" +msgstr "" + +#: ajax/upload.php:23 +msgid "The uploaded file was only partially uploaded" +msgstr "" + +#: ajax/upload.php:24 +msgid "No file was uploaded" +msgstr "" + +#: ajax/upload.php:25 +msgid "Missing a temporary folder" +msgstr "" + +#: ajax/upload.php:26 +msgid "Failed to write to disk" +msgstr "" + +#: appinfo/app.php:6 +msgid "Files" +msgstr "" + +#: js/fileactions.js:108 templates/index.php:64 +msgid "Unshare" +msgstr "" + +#: js/fileactions.js:110 templates/index.php:66 +msgid "Delete" +msgstr "" + +#: js/fileactions.js:172 +msgid "Rename" +msgstr "" + +#: js/filelist.js:194 js/filelist.js:196 +msgid "{new_name} already exists" +msgstr "" + +#: js/filelist.js:194 js/filelist.js:196 +msgid "replace" +msgstr "" + +#: js/filelist.js:194 +msgid "suggest name" +msgstr "" + +#: js/filelist.js:194 js/filelist.js:196 +msgid "cancel" +msgstr "" + +#: js/filelist.js:243 +msgid "replaced {new_name}" +msgstr "" + +#: js/filelist.js:243 js/filelist.js:245 js/filelist.js:277 js/filelist.js:279 +msgid "undo" +msgstr "" + +#: js/filelist.js:245 +msgid "replaced {new_name} with {old_name}" +msgstr "" + +#: js/filelist.js:277 +msgid "unshared {files}" +msgstr "" + +#: js/filelist.js:279 +msgid "deleted {files}" +msgstr "" + +#: js/files.js:171 +msgid "generating ZIP-file, it may take some time." +msgstr "" + +#: js/files.js:206 +msgid "Unable to upload your file as it is a directory or has 0 bytes" +msgstr "" + +#: js/files.js:206 +msgid "Upload Error" +msgstr "" + +#: js/files.js:234 js/files.js:339 js/files.js:369 +msgid "Pending" +msgstr "" + +#: js/files.js:254 +msgid "1 file uploading" +msgstr "" + +#: js/files.js:257 js/files.js:302 js/files.js:317 +msgid "{count} files uploading" +msgstr "" + +#: js/files.js:320 js/files.js:353 +msgid "Upload cancelled." +msgstr "" + +#: js/files.js:422 +msgid "" +"File upload is in progress. Leaving the page now will cancel the upload." +msgstr "" + +#: js/files.js:492 +msgid "Invalid name, '/' is not allowed." +msgstr "" + +#: js/files.js:673 +msgid "{count} files scanned" +msgstr "" + +#: js/files.js:681 +msgid "error while scanning" +msgstr "" + +#: js/files.js:754 templates/index.php:50 +msgid "Name" +msgstr "" + +#: js/files.js:755 templates/index.php:58 +msgid "Size" +msgstr "" + +#: js/files.js:756 templates/index.php:60 +msgid "Modified" +msgstr "" + +#: js/files.js:783 +msgid "1 folder" +msgstr "" + +#: js/files.js:785 +msgid "{count} folders" +msgstr "" + +#: js/files.js:793 +msgid "1 file" +msgstr "" + +#: js/files.js:795 +msgid "{count} files" +msgstr "" + +#: js/files.js:838 +msgid "seconds ago" +msgstr "" + +#: js/files.js:839 +msgid "1 minute ago" +msgstr "" + +#: js/files.js:840 +msgid "{minutes} minutes ago" +msgstr "" + +#: js/files.js:843 +msgid "today" +msgstr "" + +#: js/files.js:844 +msgid "yesterday" +msgstr "" + +#: js/files.js:845 +msgid "{days} days ago" +msgstr "" + +#: js/files.js:846 +msgid "last month" +msgstr "" + +#: js/files.js:848 +msgid "months ago" +msgstr "" + +#: js/files.js:849 +msgid "last year" +msgstr "" + +#: js/files.js:850 +msgid "years ago" +msgstr "" + +#: templates/admin.php:5 +msgid "File handling" +msgstr "" + +#: templates/admin.php:7 +msgid "Maximum upload size" +msgstr "" + +#: templates/admin.php:7 +msgid "max. possible: " +msgstr "" + +#: templates/admin.php:9 +msgid "Needed for multi-file and folder downloads." +msgstr "" + +#: templates/admin.php:9 +msgid "Enable ZIP-download" +msgstr "" + +#: templates/admin.php:11 +msgid "0 is unlimited" +msgstr "" + +#: templates/admin.php:12 +msgid "Maximum input size for ZIP files" +msgstr "" + +#: templates/admin.php:15 +msgid "Save" +msgstr "" + +#: templates/index.php:7 +msgid "New" +msgstr "" + +#: templates/index.php:9 +msgid "Text file" +msgstr "" + +#: templates/index.php:10 +msgid "Folder" +msgstr "" + +#: templates/index.php:11 +msgid "From link" +msgstr "" + +#: templates/index.php:22 +msgid "Upload" +msgstr "" + +#: templates/index.php:29 +msgid "Cancel upload" +msgstr "" + +#: templates/index.php:42 +msgid "Nothing in here. Upload something!" +msgstr "" + +#: templates/index.php:52 +msgid "Share" +msgstr "" + +#: templates/index.php:54 +msgid "Download" +msgstr "" + +#: templates/index.php:77 +msgid "Upload too large" +msgstr "" + +#: templates/index.php:79 +msgid "" +"The files you are trying to upload exceed the maximum size for file uploads " +"on this server." +msgstr "" + +#: templates/index.php:84 +msgid "Files are being scanned, please wait." +msgstr "" + +#: templates/index.php:87 +msgid "Current scanning" +msgstr "" diff --git a/l10n/zu_ZA/files_encryption.po b/l10n/zu_ZA/files_encryption.po new file mode 100644 index 0000000000000000000000000000000000000000..eb5d7a228c6dcffcb27850d525226bf53102031a --- /dev/null +++ b/l10n/zu_ZA/files_encryption.po @@ -0,0 +1,34 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-08-12 22:33+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/settings.php:3 +msgid "Encryption" +msgstr "" + +#: templates/settings.php:4 +msgid "Exclude the following file types from encryption" +msgstr "" + +#: templates/settings.php:5 +msgid "None" +msgstr "" + +#: templates/settings.php:10 +msgid "Enable Encryption" +msgstr "" diff --git a/l10n/zu_ZA/files_external.po b/l10n/zu_ZA/files_external.po new file mode 100644 index 0000000000000000000000000000000000000000..a049eb976de1c41638acfbdbb4106eb18413d129 --- /dev/null +++ b/l10n/zu_ZA/files_external.po @@ -0,0 +1,106 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-08-12 22:34+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + +#: templates/settings.php:3 +msgid "External Storage" +msgstr "" + +#: templates/settings.php:7 templates/settings.php:19 +msgid "Mount point" +msgstr "" + +#: templates/settings.php:8 +msgid "Backend" +msgstr "" + +#: templates/settings.php:9 +msgid "Configuration" +msgstr "" + +#: templates/settings.php:10 +msgid "Options" +msgstr "" + +#: templates/settings.php:11 +msgid "Applicable" +msgstr "" + +#: templates/settings.php:23 +msgid "Add mount point" +msgstr "" + +#: templates/settings.php:54 templates/settings.php:62 +msgid "None set" +msgstr "" + +#: templates/settings.php:63 +msgid "All Users" +msgstr "" + +#: templates/settings.php:64 +msgid "Groups" +msgstr "" + +#: templates/settings.php:69 +msgid "Users" +msgstr "" + +#: templates/settings.php:77 templates/settings.php:107 +msgid "Delete" +msgstr "" + +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "" + +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "" + +#: templates/settings.php:99 +msgid "SSL root certificates" +msgstr "" + +#: templates/settings.php:113 +msgid "Import Root Certificate" +msgstr "" diff --git a/l10n/zu_ZA/files_sharing.po b/l10n/zu_ZA/files_sharing.po new file mode 100644 index 0000000000000000000000000000000000000000..d6c87989f1548db2b385a26df00dbd524cbc1b90 --- /dev/null +++ b/l10n/zu_ZA/files_sharing.po @@ -0,0 +1,48 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-08-12 22:35+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/authenticate.php:4 +msgid "Password" +msgstr "" + +#: templates/authenticate.php:6 +msgid "Submit" +msgstr "" + +#: templates/public.php:9 +#, php-format +msgid "%s shared the folder %s with you" +msgstr "" + +#: templates/public.php:11 +#, php-format +msgid "%s shared the file %s with you" +msgstr "" + +#: templates/public.php:14 templates/public.php:30 +msgid "Download" +msgstr "" + +#: templates/public.php:29 +msgid "No preview available for" +msgstr "" + +#: templates/public.php:35 +msgid "web services under your control" +msgstr "" diff --git a/l10n/zu_ZA/files_versions.po b/l10n/zu_ZA/files_versions.po new file mode 100644 index 0000000000000000000000000000000000000000..7bc842be41992a7c62d5c5d7c21833477d7069b5 --- /dev/null +++ b/l10n/zu_ZA/files_versions.po @@ -0,0 +1,42 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-08-12 22:37+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/settings-personal.js:31 templates/settings-personal.php:10 +msgid "Expire all versions" +msgstr "" + +#: js/versions.js:16 +msgid "History" +msgstr "" + +#: templates/settings-personal.php:4 +msgid "Versions" +msgstr "" + +#: templates/settings-personal.php:7 +msgid "This will delete all existing backup versions of your files" +msgstr "" + +#: templates/settings.php:3 +msgid "Files Versioning" +msgstr "" + +#: templates/settings.php:4 +msgid "Enable" +msgstr "" diff --git a/l10n/zu_ZA/lib.po b/l10n/zu_ZA/lib.po new file mode 100644 index 0000000000000000000000000000000000000000..c844f939228e24bdb8ee3ec3e761311bdf19d58a --- /dev/null +++ b/l10n/zu_ZA/lib.po @@ -0,0 +1,137 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-07-27 22:23+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: app.php:285 +msgid "Help" +msgstr "" + +#: app.php:292 +msgid "Personal" +msgstr "" + +#: app.php:297 +msgid "Settings" +msgstr "" + +#: app.php:302 +msgid "Users" +msgstr "" + +#: app.php:309 +msgid "Apps" +msgstr "" + +#: app.php:311 +msgid "Admin" +msgstr "" + +#: files.php:328 +msgid "ZIP download is turned off." +msgstr "" + +#: files.php:329 +msgid "Files need to be downloaded one by one." +msgstr "" + +#: files.php:329 files.php:354 +msgid "Back to Files" +msgstr "" + +#: files.php:353 +msgid "Selected files too large to generate zip file." +msgstr "" + +#: json.php:28 +msgid "Application is not enabled" +msgstr "" + +#: json.php:39 json.php:64 json.php:77 json.php:89 +msgid "Authentication error" +msgstr "" + +#: json.php:51 +msgid "Token expired. Please reload page." +msgstr "" + +#: search/provider/file.php:17 search/provider/file.php:35 +msgid "Files" +msgstr "" + +#: search/provider/file.php:26 search/provider/file.php:33 +msgid "Text" +msgstr "" + +#: search/provider/file.php:29 +msgid "Images" +msgstr "" + +#: template.php:103 +msgid "seconds ago" +msgstr "" + +#: template.php:104 +msgid "1 minute ago" +msgstr "" + +#: template.php:105 +#, php-format +msgid "%d minutes ago" +msgstr "" + +#: template.php:108 +msgid "today" +msgstr "" + +#: template.php:109 +msgid "yesterday" +msgstr "" + +#: template.php:110 +#, php-format +msgid "%d days ago" +msgstr "" + +#: template.php:111 +msgid "last month" +msgstr "" + +#: template.php:112 +msgid "months ago" +msgstr "" + +#: template.php:113 +msgid "last year" +msgstr "" + +#: template.php:114 +msgid "years ago" +msgstr "" + +#: updater.php:75 +#, php-format +msgid "%s is available. Get <a href=\"%s\">more information</a>" +msgstr "" + +#: updater.php:77 +msgid "up to date" +msgstr "" + +#: updater.php:80 +msgid "updates check is disabled" +msgstr "" diff --git a/l10n/zu_ZA/settings.po b/l10n/zu_ZA/settings.po new file mode 100644 index 0000000000000000000000000000000000000000..ce3a223ce201978cef441724e8b21c6e00cc9529 --- /dev/null +++ b/l10n/zu_ZA/settings.po @@ -0,0 +1,320 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2011-07-25 16:05+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: ajax/apps/ocs.php:20 +msgid "Unable to load list from App Store" +msgstr "" + +#: ajax/creategroup.php:10 +msgid "Group already exists" +msgstr "" + +#: ajax/creategroup.php:19 +msgid "Unable to add group" +msgstr "" + +#: ajax/enableapp.php:12 +msgid "Could not enable app. " +msgstr "" + +#: ajax/lostpassword.php:12 +msgid "Email saved" +msgstr "" + +#: ajax/lostpassword.php:14 +msgid "Invalid email" +msgstr "" + +#: ajax/openid.php:13 +msgid "OpenID Changed" +msgstr "" + +#: ajax/openid.php:15 ajax/setlanguage.php:17 ajax/setlanguage.php:20 +msgid "Invalid request" +msgstr "" + +#: ajax/removegroup.php:13 +msgid "Unable to delete group" +msgstr "" + +#: ajax/removeuser.php:15 ajax/setquota.php:15 ajax/togglegroups.php:12 +msgid "Authentication error" +msgstr "" + +#: ajax/removeuser.php:24 +msgid "Unable to delete user" +msgstr "" + +#: ajax/setlanguage.php:15 +msgid "Language changed" +msgstr "" + +#: ajax/togglegroups.php:22 +#, php-format +msgid "Unable to add user to group %s" +msgstr "" + +#: ajax/togglegroups.php:28 +#, php-format +msgid "Unable to remove user from group %s" +msgstr "" + +#: js/apps.js:28 js/apps.js:67 +msgid "Disable" +msgstr "" + +#: js/apps.js:28 js/apps.js:55 +msgid "Enable" +msgstr "" + +#: js/personal.js:69 +msgid "Saving..." +msgstr "" + +#: personal.php:42 personal.php:43 +msgid "__language_name__" +msgstr "" + +#: templates/admin.php:14 +msgid "Security Warning" +msgstr "" + +#: templates/admin.php:17 +msgid "" +"Your data directory and your files are probably accessible from the " +"internet. The .htaccess file that ownCloud provides is not working. We " +"strongly suggest that you configure your webserver in a way that the data " +"directory is no longer accessible or you move the data directory outside the" +" webserver document root." +msgstr "" + +#: templates/admin.php:31 +msgid "Cron" +msgstr "" + +#: templates/admin.php:37 +msgid "Execute one task with each page loaded" +msgstr "" + +#: templates/admin.php:43 +msgid "" +"cron.php is registered at a webcron service. Call the cron.php page in the " +"owncloud root once a minute over http." +msgstr "" + +#: templates/admin.php:49 +msgid "" +"Use systems cron service. Call the cron.php file in the owncloud folder via " +"a system cronjob once a minute." +msgstr "" + +#: templates/admin.php:56 +msgid "Sharing" +msgstr "" + +#: templates/admin.php:61 +msgid "Enable Share API" +msgstr "" + +#: templates/admin.php:62 +msgid "Allow apps to use the Share API" +msgstr "" + +#: templates/admin.php:67 +msgid "Allow links" +msgstr "" + +#: templates/admin.php:68 +msgid "Allow users to share items to the public with links" +msgstr "" + +#: templates/admin.php:73 +msgid "Allow resharing" +msgstr "" + +#: templates/admin.php:74 +msgid "Allow users to share items shared with them again" +msgstr "" + +#: templates/admin.php:79 +msgid "Allow users to share with anyone" +msgstr "" + +#: templates/admin.php:81 +msgid "Allow users to only share with users in their groups" +msgstr "" + +#: templates/admin.php:88 +msgid "Log" +msgstr "" + +#: templates/admin.php:116 +msgid "More" +msgstr "" + +#: templates/admin.php:124 +msgid "" +"Developed by the <a href=\"http://ownCloud.org/contact\" " +"target=\"_blank\">ownCloud community</a>, the <a " +"href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is " +"licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" " +"target=\"_blank\"><abbr title=\"Affero General Public " +"License\">AGPL</abbr></a>." +msgstr "" + +#: templates/apps.php:10 +msgid "Add your App" +msgstr "" + +#: templates/apps.php:11 +msgid "More Apps" +msgstr "" + +#: templates/apps.php:27 +msgid "Select an App" +msgstr "" + +#: templates/apps.php:31 +msgid "See application page at apps.owncloud.com" +msgstr "" + +#: templates/apps.php:32 +msgid "<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>" +msgstr "" + +#: templates/help.php:9 +msgid "Documentation" +msgstr "" + +#: templates/help.php:10 +msgid "Managing Big Files" +msgstr "" + +#: templates/help.php:11 +msgid "Ask a question" +msgstr "" + +#: templates/help.php:22 +msgid "Problems connecting to help database." +msgstr "" + +#: templates/help.php:23 +msgid "Go there manually." +msgstr "" + +#: templates/help.php:31 +msgid "Answer" +msgstr "" + +#: templates/personal.php:8 +#, php-format +msgid "You have used <strong>%s</strong> of the available <strong>%s<strong>" +msgstr "" + +#: templates/personal.php:12 +msgid "Desktop and Mobile Syncing Clients" +msgstr "" + +#: templates/personal.php:13 +msgid "Download" +msgstr "" + +#: templates/personal.php:19 +msgid "Your password was changed" +msgstr "" + +#: templates/personal.php:20 +msgid "Unable to change your password" +msgstr "" + +#: templates/personal.php:21 +msgid "Current password" +msgstr "" + +#: templates/personal.php:22 +msgid "New password" +msgstr "" + +#: templates/personal.php:23 +msgid "show" +msgstr "" + +#: templates/personal.php:24 +msgid "Change password" +msgstr "" + +#: templates/personal.php:30 +msgid "Email" +msgstr "" + +#: templates/personal.php:31 +msgid "Your email address" +msgstr "" + +#: templates/personal.php:32 +msgid "Fill in an email address to enable password recovery" +msgstr "" + +#: templates/personal.php:38 templates/personal.php:39 +msgid "Language" +msgstr "" + +#: templates/personal.php:44 +msgid "Help translate" +msgstr "" + +#: templates/personal.php:51 +msgid "use this address to connect to your ownCloud in your file manager" +msgstr "" + +#: templates/users.php:21 templates/users.php:76 +msgid "Name" +msgstr "" + +#: templates/users.php:23 templates/users.php:77 +msgid "Password" +msgstr "" + +#: templates/users.php:26 templates/users.php:78 templates/users.php:98 +msgid "Groups" +msgstr "" + +#: templates/users.php:32 +msgid "Create" +msgstr "" + +#: templates/users.php:35 +msgid "Default Quota" +msgstr "" + +#: templates/users.php:55 templates/users.php:138 +msgid "Other" +msgstr "" + +#: templates/users.php:80 templates/users.php:112 +msgid "Group Admin" +msgstr "" + +#: templates/users.php:82 +msgid "Quota" +msgstr "" + +#: templates/users.php:146 +msgid "Delete" +msgstr "" diff --git a/l10n/zu_ZA/user_ldap.po b/l10n/zu_ZA/user_ldap.po new file mode 100644 index 0000000000000000000000000000000000000000..a4f2985ab0ee373a8e1e0cefe7bd9b49c91360fe --- /dev/null +++ b/l10n/zu_ZA/user_ldap.po @@ -0,0 +1,170 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: ownCloud\n" +"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" +"POT-Creation-Date: 2012-11-06 00:00+0100\n" +"PO-Revision-Date: 2012-08-12 22:45+0000\n" +"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" +"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zu_ZA\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: templates/settings.php:8 +msgid "Host" +msgstr "" + +#: templates/settings.php:8 +msgid "" +"You can omit the protocol, except you require SSL. Then start with ldaps://" +msgstr "" + +#: templates/settings.php:9 +msgid "Base DN" +msgstr "" + +#: templates/settings.php:9 +msgid "You can specify Base DN for users and groups in the Advanced tab" +msgstr "" + +#: templates/settings.php:10 +msgid "User DN" +msgstr "" + +#: templates/settings.php:10 +msgid "" +"The DN of the client user with which the bind shall be done, e.g. " +"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " +"empty." +msgstr "" + +#: templates/settings.php:11 +msgid "Password" +msgstr "" + +#: templates/settings.php:11 +msgid "For anonymous access, leave DN and Password empty." +msgstr "" + +#: templates/settings.php:12 +msgid "User Login Filter" +msgstr "" + +#: templates/settings.php:12 +#, php-format +msgid "" +"Defines the filter to apply, when login is attempted. %%uid replaces the " +"username in the login action." +msgstr "" + +#: templates/settings.php:12 +#, php-format +msgid "use %%uid placeholder, e.g. \"uid=%%uid\"" +msgstr "" + +#: templates/settings.php:13 +msgid "User List Filter" +msgstr "" + +#: templates/settings.php:13 +msgid "Defines the filter to apply, when retrieving users." +msgstr "" + +#: templates/settings.php:13 +msgid "without any placeholder, e.g. \"objectClass=person\"." +msgstr "" + +#: templates/settings.php:14 +msgid "Group Filter" +msgstr "" + +#: templates/settings.php:14 +msgid "Defines the filter to apply, when retrieving groups." +msgstr "" + +#: templates/settings.php:14 +msgid "without any placeholder, e.g. \"objectClass=posixGroup\"." +msgstr "" + +#: templates/settings.php:17 +msgid "Port" +msgstr "" + +#: templates/settings.php:18 +msgid "Base User Tree" +msgstr "" + +#: templates/settings.php:19 +msgid "Base Group Tree" +msgstr "" + +#: templates/settings.php:20 +msgid "Group-Member association" +msgstr "" + +#: templates/settings.php:21 +msgid "Use TLS" +msgstr "" + +#: templates/settings.php:21 +msgid "Do not use it for SSL connections, it will fail." +msgstr "" + +#: templates/settings.php:22 +msgid "Case insensitve LDAP server (Windows)" +msgstr "" + +#: templates/settings.php:23 +msgid "Turn off SSL certificate validation." +msgstr "" + +#: templates/settings.php:23 +msgid "" +"If connection only works with this option, import the LDAP server's SSL " +"certificate in your ownCloud server." +msgstr "" + +#: templates/settings.php:23 +msgid "Not recommended, use for testing only." +msgstr "" + +#: templates/settings.php:24 +msgid "User Display Name Field" +msgstr "" + +#: templates/settings.php:24 +msgid "The LDAP attribute to use to generate the user`s ownCloud name." +msgstr "" + +#: templates/settings.php:25 +msgid "Group Display Name Field" +msgstr "" + +#: templates/settings.php:25 +msgid "The LDAP attribute to use to generate the groups`s ownCloud name." +msgstr "" + +#: templates/settings.php:27 +msgid "in bytes" +msgstr "" + +#: templates/settings.php:29 +msgid "in seconds. A change empties the cache." +msgstr "" + +#: templates/settings.php:30 +msgid "" +"Leave empty for user name (default). Otherwise, specify an LDAP/AD " +"attribute." +msgstr "" + +#: templates/settings.php:32 +msgid "Help" +msgstr "" diff --git a/lib/MDB2/Driver/Reverse/sqlite3.php b/lib/MDB2/Driver/Reverse/sqlite3.php index 36626478ce81d9be4918c2a699457c871cf0bee8..9703780954904d49165abd82d389f847f986f4d0 100644 --- a/lib/MDB2/Driver/Reverse/sqlite3.php +++ b/lib/MDB2/Driver/Reverse/sqlite3.php @@ -476,7 +476,7 @@ class MDB2_Driver_Reverse_sqlite3 extends MDB2_Driver_Reverse_Common $definition['unique'] = true; $count = count($column_names); for ($i=0; $i<$count; ++$i) { - $column_name = strtok($column_names[$i]," "); + $column_name = strtok($column_names[$i], " "); $collation = strtok(" "); $definition['fields'][$column_name] = array( 'position' => $i+1 diff --git a/lib/MDB2/Driver/sqlite3.php b/lib/MDB2/Driver/sqlite3.php index bccb8cbbf0116c93140e058b1c3bca325d5db9d8..fa4c91c126993d152b1f7b0d057dd21b12a3decc 100644 --- a/lib/MDB2/Driver/sqlite3.php +++ b/lib/MDB2/Driver/sqlite3.php @@ -397,8 +397,7 @@ class MDB2_Driver_sqlite3 extends MDB2_Driver_Common } if ($this->fix_assoc_fields_names || - $this->options['portability'] & MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES) - { + $this->options['portability'] & MDB2_PORTABILITY_FIX_ASSOC_FIELD_NAMES) { $this->connection->exec("PRAGMA short_column_names = 1"); $this->fix_assoc_fields_names = true; } diff --git a/lib/archive/tar.php b/lib/archive/tar.php index 6c26468699118581ee8663fbcb8eec161288caf0..0fa633c60388af750bfa5489f8d7d6d108614553 100644 --- a/lib/archive/tar.php +++ b/lib/archive/tar.php @@ -130,8 +130,7 @@ class OC_Archive_TAR extends OC_Archive{ if( $file == $header['filename'] or $file.'/' == $header['filename'] or '/'.$file.'/' == $header['filename'] - or '/'.$file == $header['filename']) - { + or '/'.$file == $header['filename']) { return $header; } } diff --git a/lib/backgroundjob.php b/lib/backgroundjob.php index f486519bf0907922cabd4c215380d6834fa6d893..28b5ce3af20580bff455c93baf7fe85d11527de0 100644 --- a/lib/backgroundjob.php +++ b/lib/backgroundjob.php @@ -40,7 +40,7 @@ class OC_BackgroundJob{ * @param $type execution type * @return boolean * - * This method sets the execution type of the background jobs. Possible types + * This method sets the execution type of the background jobs. Possible types * are "none", "ajax", "webcron", "cron" */ public static function setExecutionType( $type ) { diff --git a/lib/base.php b/lib/base.php index 1403e5a2bef799de0c917dcba5bbe6cdf71e6adf..2d6601f306ab5fddfdadd1138953a8984e851e0a 100644 --- a/lib/base.php +++ b/lib/base.php @@ -530,8 +530,7 @@ class OC{ } $file_ext = substr($param['file'], -3); if ($file_ext != 'php' - || !self::loadAppScriptFile($param)) - { + || !self::loadAppScriptFile($param)) { header('HTTP/1.0 404 Not Found'); } } @@ -601,8 +600,7 @@ class OC{ if(!isset($_COOKIE["oc_remember_login"]) || !isset($_COOKIE["oc_token"]) || !isset($_COOKIE["oc_username"]) - || !$_COOKIE["oc_remember_login"]) - { + || !$_COOKIE["oc_remember_login"]) { return false; } OC_App::loadApps(array('authentication')); @@ -627,9 +625,9 @@ class OC{ OC_Util::redirectToDefaultPage(); // doesn't return } - // if you reach this point you have changed your password + // if you reach this point you have changed your password // or you are an attacker - // we can not delete tokens here because users may reach + // we can not delete tokens here because users may reach // this point multiple times after a password change OC_Log::write('core', 'Authentication cookie rejected for user '.$_COOKIE['oc_username'], OC_Log::WARN); } diff --git a/lib/connector/sabre/node.php b/lib/connector/sabre/node.php index 2095c956e5f2dcd12f604d07cdd13dbbf8a8d039..ebc9e539625b0817ea3566937d8cb1001c9db9d0 100644 --- a/lib/connector/sabre/node.php +++ b/lib/connector/sabre/node.php @@ -25,6 +25,13 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr const GETETAG_PROPERTYNAME = '{DAV:}getetag'; const LASTMODIFIED_PROPERTYNAME = '{DAV:}lastmodified'; + /** + * Allow configuring the method used to generate Etags + * + * @var array(class_name, function_name) + */ + public static $ETagFunction = null; + /** * The path to the current node * @@ -178,7 +185,7 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr * If the array is empty, all properties should be returned * * @param array $properties - * @return void + * @return array */ public function getProperties($properties) { if (is_null($this->property_cache)) { @@ -209,7 +216,12 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr * @return string|null Returns null if the ETag can not effectively be determined */ static protected function createETag($path) { - return uniqid('', true); + if(self::$ETagFunction) { + $hash = call_user_func(self::$ETagFunction, $path); + return $hash; + }else{ + return uniqid('', true); + } } /** diff --git a/lib/connector/sabre/quotaplugin.php b/lib/connector/sabre/quotaplugin.php index 5b8ef9417102d08b47b47bd4e3ff7cf354647afa..a56a65ad863f504e9a66cd1aea4bbade16345cd7 100644 --- a/lib/connector/sabre/quotaplugin.php +++ b/lib/connector/sabre/quotaplugin.php @@ -2,7 +2,7 @@ /** * This plugin check user quota and deny creating files when they exceeds the quota. - * + * * @copyright Copyright (C) 2012 entreCables S.L. All rights reserved. * @author Sergio Cambra * @license http://code.google.com/p/sabredav/wiki/License Modified BSD License @@ -10,9 +10,9 @@ class OC_Connector_Sabre_QuotaPlugin extends Sabre_DAV_ServerPlugin { /** - * Reference to main server object - * - * @var Sabre_DAV_Server + * Reference to main server object + * + * @var Sabre_DAV_Server */ private $server; @@ -23,8 +23,8 @@ class OC_Connector_Sabre_QuotaPlugin extends Sabre_DAV_ServerPlugin { * addPlugin is called. * * This method should set up the requires event subscriptions. - * - * @param Sabre_DAV_Server $server + * + * @param Sabre_DAV_Server $server * @return void */ public function initialize(Sabre_DAV_Server $server) { @@ -37,10 +37,10 @@ class OC_Connector_Sabre_QuotaPlugin extends Sabre_DAV_ServerPlugin { /** * This method is called before any HTTP method and forces users to be authenticated - * + * * @param string $method * @throws Sabre_DAV_Exception - * @return bool + * @return bool */ public function checkQuota($uri, $data = null) { $expected = $this->server->httpRequest->getHeader('X-Expected-Entity-Length'); diff --git a/lib/fileproxy/quota.php b/lib/fileproxy/quota.php index cd9a2f4a1920c100fab24b1308385d118ec982e8..b359b9ae0230a4943bd1a711b24d0523bb52379d 100644 --- a/lib/fileproxy/quota.php +++ b/lib/fileproxy/quota.php @@ -38,8 +38,10 @@ class OC_FileProxy_Quota extends OC_FileProxy{ if(in_array($user, $this->userQuota)) { return $this->userQuota[$user]; } + $userQuota=OC_Preferences::getValue($user, 'files', 'quota', 'default'); $userQuota=OC_Preferences::getValue($user,'files','quota','default'); if($userQuota=='default') { + $userQuota=OC_AppConfig::getValue('files', 'default_quota', 'none'); $userQuota=OC_AppConfig::getValue('files','default_quota','none'); } if($userQuota=='none') { @@ -57,7 +59,7 @@ class OC_FileProxy_Quota extends OC_FileProxy{ * @return int */ private function getFreeSpace($path) { - list($storage,)=\OC\Files\Filesystem::resolvePath($path); + $storage=OC_Filesystem::getStorage($path); $owner=$storage->getOwner($path); $totalSpace=$this->getQuota($owner); @@ -73,33 +75,33 @@ class OC_FileProxy_Quota extends OC_FileProxy{ return $totalSpace-$usedSpace; } - public function postFree_space($path,$space) { + public function postFree_space($path, $space) { $free=$this->getFreeSpace($path); if($free==0) { return $space; } - return min($free,$space); + return min($free, $space); } - public function preFile_put_contents($path,$data) { + public function preFile_put_contents($path, $data) { if (is_resource($data)) { $data = '';//TODO: find a way to get the length of the stream without emptying it } return (strlen($data)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==0); } - public function preCopy($path1,$path2) { + public function preCopy($path1, $path2) { if(!self::$rootView){ self::$rootView = new \OC\Files\View(''); } return (self::$rootView->filesize($path1)<$this->getFreeSpace($path2) or $this->getFreeSpace($path2)==0); } - public function preFromTmpFile($tmpfile,$path) { + public function preFromTmpFile($tmpfile, $path) { return (filesize($tmpfile)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==0); } - public function preFromUploadedFile($tmpfile,$path) { + public function preFromUploadedFile($tmpfile, $path) { return (filesize($tmpfile)<$this->getFreeSpace($path) or $this->getFreeSpace($path)==0); } } diff --git a/lib/files/storage/local.php b/lib/files/storage/local.php index 71f3bedad39faac284672c8150c92e28c8cc0c90..e888094627a0a34de188f99729e9f4e1f79b1202 100644 --- a/lib/files/storage/local.php +++ b/lib/files/storage/local.php @@ -15,7 +15,7 @@ class Local extends \OC\Files\Storage\Common{ protected $datadir; public function __construct($arguments) { $this->datadir=$arguments['datadir']; - if(substr($this->datadir,-1)!=='/') { + if(substr($this->datadir, -1)!=='/') { $this->datadir.='/'; } } @@ -33,7 +33,7 @@ class Local extends \OC\Files\Storage\Common{ } public function is_dir($path) { if(substr($path,-1)=='/') { - $path=substr($path,0,-1); + $path=substr($path, 0, -1); } return is_dir($this->datadir.$path); } @@ -87,13 +87,13 @@ class Local extends \OC\Files\Storage\Common{ public function file_get_contents($path) { return file_get_contents($this->datadir.$path); } - public function file_put_contents($path,$data) { - return file_put_contents($this->datadir.$path,$data); + public function file_put_contents($path, $data) { + return file_put_contents($this->datadir.$path, $data); } public function unlink($path) { return $this->delTree($path); } - public function rename($path1,$path2) { + public function rename($path1, $path2) { if (!$this->isUpdatable($path1)) { \OC_Log::write('core','unable to rename, file is not writable : '.$path1,\OC_Log::ERROR); return false; @@ -103,22 +103,22 @@ class Local extends \OC\Files\Storage\Common{ return false; } - if($return=rename($this->datadir.$path1,$this->datadir.$path2)) { + if($return=rename($this->datadir.$path1, $this->datadir.$path2)) { } return $return; } - public function copy($path1,$path2) { + public function copy($path1, $path2) { if($this->is_dir($path2)) { if(!$this->file_exists($path2)) { $this->mkdir($path2); } - $source=substr($path1, strrpos($path1,'/')+1); + $source=substr($path1, strrpos($path1, '/')+1); $path2.=$source; } - return copy($this->datadir.$path1,$this->datadir.$path2); + return copy($this->datadir.$path1, $this->datadir.$path2); } - public function fopen($path,$mode) { - if($return=fopen($this->datadir.$path,$mode)) { + public function fopen($path, $mode) { + if($return=fopen($this->datadir.$path, $mode)) { switch($mode) { case 'r': break; @@ -138,7 +138,7 @@ class Local extends \OC\Files\Storage\Common{ public function getMimeType($path) { if($this->isReadable($path)) { - return \OC_Helper::getMimeType($this->datadir.$path); + return \OC_Helper::getMimeType($this->datadir . $path); }else{ return false; } @@ -165,8 +165,8 @@ class Local extends \OC\Files\Storage\Common{ return $return; } - public function hash($path,$type,$raw=false) { - return hash_file($type,$this->datadir.$path,$raw); + public function hash($path, $type, $raw=false) { + return hash_file($type, $this->datadir.$path, $raw); } public function free_space($path) { @@ -183,7 +183,7 @@ class Local extends \OC\Files\Storage\Common{ return $this->datadir.$path; } - protected function searchInDir($query,$dir='') { + protected function searchInDir($query, $dir='') { $files=array(); foreach (scandir($this->datadir.$dir) as $item) { if ($item == '.' || $item == '..') continue; @@ -191,7 +191,7 @@ class Local extends \OC\Files\Storage\Common{ $files[]=$dir.'/'.$item; } if(is_dir($this->datadir.$dir.'/'.$item)) { - $files=array_merge($files,$this->searchInDir($query,$dir.'/'.$item)); + $files=array_merge($files, $this->searchInDir($query, $dir.'/'.$item)); } } return $files; @@ -202,7 +202,7 @@ class Local extends \OC\Files\Storage\Common{ * @param int $time * @return bool */ - public function hasUpdated($path,$time) { + public function hasUpdated($path, $time) { return $this->filemtime($path)>$time; } } diff --git a/lib/files/view.php b/lib/files/view.php index c5e470b438e0b0ea9990ed4bb8756e529fc9f1b4..709e374d8634a0d9ffdab13cf8735991373bd5f3 100644 --- a/lib/files/view.php +++ b/lib/files/view.php @@ -34,7 +34,7 @@ class View { $this->fakeRoot = $root; } - public function getAbsolutePath($path) { + public function getAbsolutePath($path = '/') { if (!$path) { $path = '/'; } diff --git a/lib/installer.php b/lib/installer.php index 266c07d5c2b6a357f9cb324e39594a4ede1a6ac2..7dc8b0cef8ddfbbe2db16814dc92c3f67ef9765e 100644 --- a/lib/installer.php +++ b/lib/installer.php @@ -57,7 +57,7 @@ class OC_Installer{ */ public static function installApp( $data = array()) { if(!isset($data['source'])) { - OC_Log::write('core','No source specified when installing app', OC_Log::ERROR); + OC_Log::write('core', 'No source specified when installing app', OC_Log::ERROR); return false; } @@ -65,13 +65,13 @@ class OC_Installer{ if($data['source']=='http') { $path=OC_Helper::tmpFile(); if(!isset($data['href'])) { - OC_Log::write('core','No href specified when installing app from http', OC_Log::ERROR); + OC_Log::write('core', 'No href specified when installing app from http', OC_Log::ERROR); return false; } copy($data['href'], $path); }else{ if(!isset($data['path'])) { - OC_Log::write('core','No path specified when installing app from local file', OC_Log::ERROR); + OC_Log::write('core', 'No path specified when installing app from local file', OC_Log::ERROR); return false; } $path=$data['path']; @@ -86,7 +86,7 @@ class OC_Installer{ rename($path, $path.'.tgz'); $path.='.tgz'; }else{ - OC_Log::write('core','Archives of type '.$mime.' are not supported', OC_Log::ERROR); + OC_Log::write('core', 'Archives of type '.$mime.' are not supported', OC_Log::ERROR); return false; } diff --git a/lib/log.php b/lib/log.php index b5e8e1b06a1518777b771443f8e60ded51363010..e9cededa5c091587d45266d34689cb7c17d9e994 100644 --- a/lib/log.php +++ b/lib/log.php @@ -47,7 +47,7 @@ class OC_Log { //ob_end_clean(); self::write('PHP', $error['message'] . ' at ' . $error['file'] . '#' . $error['line'], self::FATAL); } else { - return true; + return true; } } diff --git a/lib/migrate.php b/lib/migrate.php index 616417a22716e546860208f8f8a7029227b2344c..96f5a0001f79060ebf9c1166909884160507481f 100644 --- a/lib/migrate.php +++ b/lib/migrate.php @@ -611,7 +611,7 @@ class OC_Migrate{ if( file_exists( $db ) ) { // Connect to the db if(!self::connectDB( $db )) { - OC_Log::write('migration','Failed to connect to migration.db', OC_Log::ERROR); + OC_Log::write('migration', 'Failed to connect to migration.db', OC_Log::ERROR); return false; } } else { diff --git a/lib/migration/content.php b/lib/migration/content.php index 54982b3c8470a15965b0a31875dd584a4400cb06..00df62f0c7fafada2f669c10b64eaa8cdae2b000 100644 --- a/lib/migration/content.php +++ b/lib/migration/content.php @@ -205,7 +205,7 @@ class OC_Migration_Content{ } closedir($dirhandle); } else { - OC_Log::write('admin_export',"Was not able to open directory: " . $dir, OC_Log::ERROR); + OC_Log::write('admin_export', "Was not able to open directory: " . $dir, OC_Log::ERROR); return false; } return true; diff --git a/lib/ocsclient.php b/lib/ocsclient.php index ceeb78570fd49c2a1b9d0e9fa7d270865dbe7c5a..b6b5ad8f0a99b9a3322f423e2866f5d19b9065e2 100644 --- a/lib/ocsclient.php +++ b/lib/ocsclient.php @@ -162,7 +162,7 @@ class OC_OCSClient{ $xml=OC_OCSClient::getOCSresponse($url); if($xml==false) { - OC_Log::write('core','Unable to parse OCS content', OC_Log::FATAL); + OC_Log::write('core', 'Unable to parse OCS content', OC_Log::FATAL); return null; } $data=simplexml_load_string($xml); @@ -200,7 +200,7 @@ class OC_OCSClient{ $xml=OC_OCSClient::getOCSresponse($url); if($xml==false) { - OC_Log::write('core','Unable to parse OCS content', OC_Log::FATAL); + OC_Log::write('core', 'Unable to parse OCS content', OC_Log::FATAL); return null; } $data=simplexml_load_string($xml); @@ -238,7 +238,7 @@ class OC_OCSClient{ $xml=OC_OCSClient::getOCSresponse($url); if($xml==false) { - OC_Log::write('core','Unable to parse knowledgebase content', OC_Log::FATAL); + OC_Log::write('core', 'Unable to parse knowledgebase content', OC_Log::FATAL); return null; } $data=simplexml_load_string($xml); diff --git a/lib/public/backgroundjob.php b/lib/public/backgroundjob.php index 24a17836f7f1f14be9f3f74b448bf9d41c8d8e9d..601046fe691dcf9146371699d060bb03f436b485 100644 --- a/lib/public/backgroundjob.php +++ b/lib/public/backgroundjob.php @@ -62,7 +62,7 @@ class BackgroundJob { * @param $type execution type * @return boolean * - * This method sets the execution type of the background jobs. Possible types + * This method sets the execution type of the background jobs. Possible types * are "none", "ajax", "webcron", "cron" */ public static function setExecutionType( $type ) { diff --git a/lib/public/share.php b/lib/public/share.php index 707d5abe440310f2fc1ad359d785af8ddd165d62..dd1aac609a5834321650fbbf427fab530b3be643 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -28,7 +28,7 @@ namespace OCP; /** * This class provides the ability for apps to share their content between users. * Apps must create a backend class that implements OCP\Share_Backend and register it with this class. -* +* * It provides the following hooks: * - post_shared */ diff --git a/lib/public/util.php b/lib/public/util.php index 6ce79715b6fe7a6578edf92f115f035c89746488..7b5b1abbded296873353858179cb40b0abcadef3 100644 --- a/lib/public/util.php +++ b/lib/public/util.php @@ -61,7 +61,7 @@ class Util { */ public static function sendMail( $toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, $html=0, $altbody='', $ccaddress='', $ccname='', $bcc='') { // call the internal mail class - \OC_MAIL::send( $toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, $html=0, $altbody='', $ccaddress='', $ccname='', $bcc=''); + \OC_MAIL::send($toaddress, $toname, $subject, $mailtext, $fromaddress, $fromname, $html = 0, $altbody = '', $ccaddress = '', $ccname = '', $bcc = ''); } /** diff --git a/lib/template.php b/lib/template.php index efcc6e82c4ca077c5f9ebb672765ff9f72f2fea8..3d3589abd1e9c24028346b203d04e573aaafc4b9 100644 --- a/lib/template.php +++ b/lib/template.php @@ -199,7 +199,7 @@ class OC_Template{ $mode='tablet'; }elseif(stripos($_SERVER['HTTP_USER_AGENT'], 'iphone')>0) { $mode='mobile'; - }elseif((stripos($_SERVER['HTTP_USER_AGENT'],'N9')>0) and (stripos($_SERVER['HTTP_USER_AGENT'], 'nokia')>0)) { + }elseif((stripos($_SERVER['HTTP_USER_AGENT'], 'N9')>0) and (stripos($_SERVER['HTTP_USER_AGENT'], 'nokia')>0)) { $mode='mobile'; }else{ $mode='default'; diff --git a/lib/user.php b/lib/user.php index be0e525d868ab0c2110a4d4833351ef9f08d0270..801ab7f608da99569c9263a83ed7d17cc00f41c5 100644 --- a/lib/user.php +++ b/lib/user.php @@ -133,7 +133,7 @@ class OC_User { self::useBackend($backend); $_setupedBackends[]=$i; }else{ - OC_Log::write('core','User backend '.$class.' not found.', OC_Log::ERROR); + OC_Log::write('core', 'User backend '.$class.' not found.', OC_Log::ERROR); } } } diff --git a/lib/util.php b/lib/util.php index 9b8eb13ca2cee84dc770aebcd709b151d02a0a85..8e6eb6ca0325993d294ca933b465916ec39c60a0 100755 --- a/lib/util.php +++ b/lib/util.php @@ -572,7 +572,7 @@ class OC_Util { // creating a test file $testfile = OC_Config::getValue( "datadirectory", OC::$SERVERROOT."/data" ).'/'.$filename; - if(file_exists($testfile)){// already running this test, possible recursive call + if(file_exists($testfile)) {// already running this test, possible recursive call return false; } diff --git a/ocs/providers.php b/ocs/providers.php index 4c68ded914e3f1c58f922b96c7be0f103f18bf3f..43c9dc2aa42b4d1e7cd843e09cd6dd5d38d235d2 100644 --- a/ocs/providers.php +++ b/ocs/providers.php @@ -3,22 +3,22 @@ /** * ownCloud * -* @author Frank Karlitschek -* @copyright 2012 Frank Karlitschek frank@owncloud.org -* +* @author Frank Karlitschek +* @copyright 2012 Frank Karlitschek frank@owncloud.org +* * 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 +* 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 Affero General Public +* +* You should have received a copy of the GNU Affero General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. -* +* */ require_once '../lib/base.php'; diff --git a/ocs/v1.php b/ocs/v1.php index b12ea5ef18d0df1f9d257d8f879e456167b55ef7..1652b0bedbe223138f1a59ca57ca037626e5c196 100644 --- a/ocs/v1.php +++ b/ocs/v1.php @@ -3,22 +3,22 @@ /** * ownCloud * -* @author Frank Karlitschek -* @copyright 2012 Frank Karlitschek frank@owncloud.org -* +* @author Frank Karlitschek +* @copyright 2012 Frank Karlitschek frank@owncloud.org +* * 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 +* 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 Affero General Public +* +* You should have received a copy of the GNU Affero General Public * License along with this library. If not, see <http://www.gnu.org/licenses/>. -* +* */ require_once '../lib/base.php'; diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php index a0fe5947b6de51aac41e846b20a2434702acfce1..b2db2611518182df78ef760b1350561ff5e9530b 100644 --- a/settings/ajax/changepassword.php +++ b/settings/ajax/changepassword.php @@ -16,8 +16,7 @@ if(OC_SubAdmin::isUserAccessible(OC_User::getUser(), $username)) { $userstatus = 'subadmin'; } if(OC_User::getUser() === $username) { - if (OC_User::checkPassword($username, $oldPassword)) - { + if (OC_User::checkPassword($username, $oldPassword)) { $userstatus = 'user'; } else { if (!OC_Util::isUserVerified()) { diff --git a/settings/ajax/createuser.php b/settings/ajax/createuser.php index c87ff422f61369f707b5b0a46cf664bfa777a47f..16b48c8a9ca058bd0ed1ee177094e93bb7152746 100644 --- a/settings/ajax/createuser.php +++ b/settings/ajax/createuser.php @@ -43,9 +43,9 @@ try { } OC_Group::addToGroup( $username, $i ); } - OC_JSON::success(array("data" => - array( - "username" => $username, + OC_JSON::success(array("data" => + array( + "username" => $username, "groups" => implode( ", ", OC_Group::getUserGroups( $username ))))); } catch (Exception $exception) { OC_JSON::error(array("data" => array( "message" => $exception->getMessage()))); diff --git a/settings/ajax/getlog.php b/settings/ajax/getlog.php index 273b02e38227a323f1f4e651322835d644f1366d..043124fa175a57e6cbc071ab55ca9fcb3b6ddb8d 100644 --- a/settings/ajax/getlog.php +++ b/settings/ajax/getlog.php @@ -12,5 +12,5 @@ $offset=(isset($_GET['offset']))?$_GET['offset']:0; $entries=OC_Log_Owncloud::getEntries($count, $offset); OC_JSON::success(array( - "data" => OC_Util::sanitizeHTML($entries), + "data" => OC_Util::sanitizeHTML($entries), "remain"=>(count(OC_Log_Owncloud::getEntries(1, $offset + $offset)) != 0) ? true : false)); diff --git a/settings/ajax/userlist.php b/settings/ajax/userlist.php index 61b1a388fc33154d57fabff468ecb7f18a9e54d2..eaeade60a39014ef423362e117e496942ba7de91 100644 --- a/settings/ajax/userlist.php +++ b/settings/ajax/userlist.php @@ -32,9 +32,9 @@ if (OC_Group::inGroup(OC_User::getUser(), 'admin')) { $batch = OC_User::getUsers('', 10, $offset); foreach ($batch as $user) { $users[] = array( - 'name' => $user, - 'groups' => join(', ', OC_Group::getUserGroups($user)), - 'subadmin' => join(', ', OC_SubAdmin::getSubAdminsGroups($user)), + 'name' => $user, + 'groups' => join(', ', OC_Group::getUserGroups($user)), + 'subadmin' => join(', ', OC_SubAdmin::getSubAdminsGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); } } else { @@ -42,8 +42,8 @@ if (OC_Group::inGroup(OC_User::getUser(), 'admin')) { $batch = OC_Group::usersInGroups($groups, '', 10, $offset); foreach ($batch as $user) { $users[] = array( - 'name' => $user, - 'groups' => join(', ', OC_Group::getUserGroups($user)), + 'name' => $user, + 'groups' => join(', ', OC_Group::getUserGroups($user)), 'quota' => OC_Preferences::getValue($user, 'files', 'quota', 'default')); } } diff --git a/settings/apps.php b/settings/apps.php index 8134b44143a1c1cafbf662f6a320bc7e82d95b14..155291333f35a97666ff762f506388f235c9d5b5 100644 --- a/settings/apps.php +++ b/settings/apps.php @@ -95,11 +95,11 @@ if ( $remoteApps ) { foreach ( $remoteApps AS $key => $remote ) { - if ( + if ( $app['name'] == $remote['name'] - // To set duplicate detection to use OCS ID instead of string name, - // enable this code, remove the line of code above, - // and add <ocs_id>[ID]</ocs_id> to info.xml of each 3rd party app: + // To set duplicate detection to use OCS ID instead of string name, + // enable this code, remove the line of code above, + // and add <ocs_id>[ID]</ocs_id> to info.xml of each 3rd party app: // OR $app['ocs_id'] == $remote['ocs_id'] ) { diff --git a/settings/l10n/si_LK.php b/settings/l10n/si_LK.php index d3e7755c5810db881519f49f6a85cf04578b6484..dd4be7c06885da7b249c066689f737376051419f 100644 --- a/settings/l10n/si_LK.php +++ b/settings/l10n/si_LK.php @@ -4,8 +4,10 @@ "Could not enable app. " => "යෙදුම සක්රීය කළ නොහැකි විය.", "Email saved" => "වි-තැපෑල සුරකින ලදී", "Invalid email" => "අවලංගු වි-තැපෑල", +"OpenID Changed" => "විවෘත හැඳුනුම නැතහොත් OpenID වෙනස්විය.", "Invalid request" => "අවලංගු අයදුම", "Unable to delete group" => "කණ්ඩායම මැකීමට නොහැක", +"Authentication error" => "සත්යාපන දෝෂයක්", "Unable to delete user" => "පරිශීලකයා මැකීමට නොහැක", "Language changed" => "භාෂාව ාවනස් කිරීම", "Unable to add user to group %s" => "පරිශීලකයා %s කණ්ඩායමට එකතු කළ නොහැක", @@ -14,6 +16,7 @@ "Enable" => "ක්රියත්මක කරන්න", "Saving..." => "සුරැකෙමින් පවතී...", "Security Warning" => "ආරක්ෂක නිවේදනයක්", +"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "ඔබගේ දත්ත ඩිරෙක්ටරිය හා ගොනුවලට අන්තර්ජාලයෙන් පිවිසිය හැක. ownCloud සපයා ඇති .htaccess ගොනුව ක්රියාකරන්නේ නැත. අපි තරයේ කියා සිටිනුයේ නම්, මෙම දත්ත හා ගොනු එසේ පිවිසීමට නොහැකි වන ලෙස ඔබේ වෙබ් සේවාදායකයා වින්යාස කරන ලෙස හෝ එම ඩිරෙක්ටරිය වෙබ් මූලයෙන් පිටතට ගෙනයන ලෙසය.", "Sharing" => "හුවමාරු කිරීම", "Allow links" => "යොමු සලසන්න", "Allow resharing" => "යළි යළිත් හුවමාරුවට අවසර දෙමි", @@ -29,6 +32,7 @@ "Managing Big Files" => "විශාල ගොනු කළමණාකරනය", "Ask a question" => "ප්රශ්ණයක් අසන්න", "Problems connecting to help database." => "උදව් දත්ත ගබඩාව හා සම්බන්ධවීමේදී ගැටළු ඇතිවිය.", +"Go there manually." => "ස්වශක්තියෙන් එතැනට යන්න", "Answer" => "පිළිතුර", "You have used <strong>%s</strong> of the available <strong>%s<strong>" => "ඔබ <strong>%s</strong>ක් භාවිතා කර ඇත. මුළු ප්රමාණය <strong>%s</strong>කි", "Download" => "භාගත කරන්න", @@ -43,6 +47,7 @@ "Fill in an email address to enable password recovery" => "මුරපද ප්රතිස්ථාපනය සඳහා විද්යුත් තැපැල් විස්තර ලබා දෙන්න", "Language" => "භාෂාව", "Help translate" => "පරිවර්ථන සහය", +"use this address to connect to your ownCloud in your file manager" => "ඔබගේ ගොනු කළමනාකරු ownCloudයට සම්බන්ධ කිරීමට මෙම ලිපිනය භාවිතා කරන්න", "Name" => "නාමය", "Password" => "මුරපදය", "Groups" => "සමූහය", diff --git a/settings/languageCodes.php b/settings/languageCodes.php index 221aa13cf6aef716bb2d358b7a0c115060b7d9c2..71655800856500b5bc833d8df6a8349fe857df89 100644 --- a/settings/languageCodes.php +++ b/settings/languageCodes.php @@ -3,7 +3,7 @@ * This file is licensed under the Affero General Public License version 3 or later. * See the COPYING-README file. */ - + return array( 'bg_BG'=>'български език', 'ca'=>'Català', diff --git a/settings/templates/help.php b/settings/templates/help.php index b2a78ff851203c254e6eafda799fdd9c45053ff9..9bb46740f5b8bb111fd368ddd605ec031b11966f 100644 --- a/settings/templates/help.php +++ b/settings/templates/help.php @@ -1,4 +1,4 @@ -<?php +<?php /** * 2012 Frank Karlitschek frank@owncloud.org * This file is licensed under the Affero General Public License version 3 or later. @@ -12,8 +12,7 @@ <?php $url=OC_Helper::linkTo( "settings", "help.php" ).'?page='; $pageNavi=OC_Util::getPageNavi($_['pagecount'], $_['page'], $url); - if($pageNavi) - { + if($pageNavi) { $pageNavi->printPage(); } ?> diff --git a/settings/templates/users.php b/settings/templates/users.php index eef9b291357215c8a6887429d5d822af828002b0..de7e50da8f3d42ed7d4d242200cae700cc7ebab2 100644 --- a/settings/templates/users.php +++ b/settings/templates/users.php @@ -142,7 +142,7 @@ var isadmin = <?php echo $_['isadmin']?'true':'false'; ?>; </div> </td> <td class="remove"> - <?php if($user['name']!=OC_User::getUser()):?> + <?php if($user['name']!=OC_User::getUser()):?> <a href="#" class="action delete" original-title="<?php echo $l->t('Delete')?>"> <img src="<?php echo image_path('core', 'actions/delete.svg') ?>" /> </a> diff --git a/settings/users.php b/settings/users.php index 6eaae474538a26385eff0a6cc74ba94e6936ba28..93a259f1cd8844872346642dfd5fbe7037b860a6 100644 --- a/settings/users.php +++ b/settings/users.php @@ -31,7 +31,7 @@ if($isadmin) { foreach($accessibleusers as $i) { $users[] = array( - "name" => $i, + "name" => $i, "groups" => join( ", ", /*array_intersect(*/OC_Group::getUserGroups($i)/*, OC_SubAdmin::getSubAdminsGroups(OC_User::getUser()))*/), 'quota'=>OC_Preferences::getValue($i, 'files', 'quota', 'default'), 'subadmin'=>implode(', ', OC_SubAdmin::getSubAdminsGroups($i))); @@ -42,7 +42,7 @@ foreach( $accessiblegroups as $i ) { $groups[] = array( "name" => $i ); } $quotaPreset=OC_Appconfig::getValue('files', 'quota_preset', 'default,none,1 GB, 5 GB, 10 GB'); -$quotaPreset=explode(',',$quotaPreset); +$quotaPreset=explode(',', $quotaPreset); foreach($quotaPreset as &$preset) { $preset=trim($preset); } diff --git a/tests/lib/share/share.php b/tests/lib/share/share.php index 3cad3a286807b82a52f6122c073a91fe27f6ca6e..2cb6f7417d246ede1628ded67f045032d112f864 100644 --- a/tests/lib/share/share.php +++ b/tests/lib/share/share.php @@ -181,7 +181,7 @@ class Test_Share extends UnitTestCase { $this->assertEquals($message, $exception->getMessage()); } - // Owner grants share and update permission + // Owner grants share and update permission OC_User::setUserId($this->user1); $this->assertTrue(OCP\Share::setPermissions('test', 'test.txt', OCP\Share::SHARE_TYPE_USER, $this->user2, OCP\Share::PERMISSION_READ | OCP\Share::PERMISSION_UPDATE | OCP\Share::PERMISSION_SHARE)); @@ -375,7 +375,7 @@ class Test_Share extends UnitTestCase { $this->assertTrue(in_array('test.txt', $to_test)); $this->assertTrue(in_array('test1.txt', $to_test)); - // Valid reshare + // Valid reshare $this->assertTrue(OCP\Share::shareItem('test', 'share.txt', OCP\Share::SHARE_TYPE_USER, $this->user4, OCP\Share::PERMISSION_READ | OCP\Share::PERMISSION_SHARE)); OC_User::setUserId($this->user4); $this->assertEquals(array('test1.txt'), OCP\Share::getItemsSharedWith('test', Test_Share_Backend::FORMAT_TARGET)); diff --git a/tests/lib/template.php b/tests/lib/template.php index 32ae4aca59055fc70704b150ec7fc025735ba203..736bc95255c05824a1a810cf0d799f057475a201 100644 --- a/tests/lib/template.php +++ b/tests/lib/template.php @@ -20,7 +20,7 @@ * */ -require_once("lib/template.php"); +OC::autoload('OC_Template'); class Test_TemplateFunctions extends UnitTestCase { diff --git a/tests/lib/user/backend.php b/tests/lib/user/backend.php index 79653481f9099940270ebde9dff74764f8def1d8..0b744770ea28faea45f37e119b54af509179e2a1 100644 --- a/tests/lib/user/backend.php +++ b/tests/lib/user/backend.php @@ -23,10 +23,10 @@ /** * Abstract class to provide the basis of backend-specific unit test classes. * - * All subclasses MUST assign a backend property in setUp() which implements + * All subclasses MUST assign a backend property in setUp() which implements * user operations (add, remove, etc.). Test methods in this class will then be * run on each separate subclass and backend therein. - * + * * For an example see /tests/lib/user/dummy.php */ diff --git a/tests/lib/util.php b/tests/lib/util.php index a8e5b810265041b541c4191e9b382b3767aa6da7..27635cb805558cf3b46130c7f1ace9a3e0cd9c47 100644 --- a/tests/lib/util.php +++ b/tests/lib/util.php @@ -10,7 +10,7 @@ class Test_Util extends UnitTestCase { // Constructor function Test_Util() { - date_default_timezone_set("UTC"); + date_default_timezone_set("UTC"); } function testFormatDate() { @@ -36,10 +36,10 @@ class Test_Util extends UnitTestCase { $goodString = "This is an harmless string."; $result = OC_Util::sanitizeHTML($goodString); $this->assertEquals("This is an harmless string.", $result); - } + } function testGenerate_random_bytes() { $result = strlen(OC_Util::generate_random_bytes(59)); $this->assertEquals(59, $result); - } + } } \ No newline at end of file diff --git a/tests/preseed-config.php b/tests/preseed-config.php index 7eadccbe76974bfb67632793ae3ca952af8ad4fa..9791e713dacbf88ebad247807c2245e1b18d97e8 100644 --- a/tests/preseed-config.php +++ b/tests/preseed-config.php @@ -1,15 +1,15 @@ <?php $CONFIG = array ( "appstoreenabled" => false, - 'apps_paths' => + 'apps_paths' => array ( - 0 => + 0 => array ( 'path' => OC::$SERVERROOT.'/apps', 'url' => '/apps', 'writable' => false, ), - 1 => + 1 => array ( 'path' => OC::$SERVERROOT.'/apps2', 'url' => '/apps2',