diff --git a/README b/README
index e11ff7d10cd..9b113c4f674 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 738864d7cff..29782ec643e 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 82d990bf780..40dd9f14a69 100644
--- a/apps/files/js/fileactions.js
+++ b/apps/files/js/fileactions.js
@@ -70,6 +70,13 @@ var FileActions = {
}
parent.children('a.name').append('');
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) + '';
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($('
'));
}
- 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 2d9ccba424a..16f7c966067 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 f2460562087..3f71e35a7fd 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 33bfee5b2d2..048c6be8350 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 27c408cdf3a..6d295628139 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 8300c8ab7e9..c1d32fa31b1 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 6c6c23b55c1..81225586326 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 a3677e82e2e..0b60d42219a 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 4382f630031..bf0d780d27b 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 7fb9b7e640d..844b54aaeea 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 26d24ceff03..5fc0111f2ae 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 3e6208e4a0d..970c83b0bca 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 1fe73110024..75374223656 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -1,226 +1,226 @@
-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();
+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 e83310172af..b365f456792 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 f1e2143cfaf..9cbb21ead0e 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 ef92bbad40a..687e2692270 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 3a653ad7208..d10062c1d9d 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -29,7 +29,7 @@
-
t('Help');?>
+
t('Help');?>
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 69e470c78a7..6591d1d5fee 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 9a8027daee6..0d9f529ed1b 100755
--- a/apps/user_webdavauth/appinfo/info.xml
+++ b/apps/user_webdavauth/appinfo/info.xml
@@ -2,10 +2,12 @@
user_webdavauth
WebDAV user backend
- Authenticate Users by a WebDAV call
- 1.0
+ 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.
AGPL
Frank Karlitschek
4.9
true
+
+
+
diff --git a/apps/user_webdavauth/appinfo/version b/apps/user_webdavauth/appinfo/version
new file mode 100644
index 00000000000..a6bbdb5ff48
--- /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 c00c199632a..e6ca5d97d3c 100755
--- a/apps/user_webdavauth/templates/settings.php
+++ b/apps/user_webdavauth/templates/settings.php
@@ -1,7 +1,7 @@
diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php
index 5a16a4c992a..0b0be7c2fa1 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 95dceb50dec..646a760f989 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 2073fc4d4b7..2b2a64d25f9 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 c9daa645c47..f1c658830fc 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 bc007cff9c5..3581d4de108 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 \n"
+"POT-Creation-Date: 2012-11-07 00:01+0100\n"
+"PO-Revision-Date: 2012-11-05 23:19+0000\n"
+"Last-Translator: emc \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 4ed9b3813ae..bb6d026ba97 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 \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 \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 f14ef7f6f28..52d155e3ab4 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 \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 \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 0b7793a0ad7..206a29d0372 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 \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 d085f8c045f..ea03b680f30 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 \n"
+"POT-Creation-Date: 2012-11-06 00:00+0100\n"
+"PO-Revision-Date: 2012-11-05 07:17+0000\n"
+"Last-Translator: suganthi \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 3e0f7d390d4..e251cc0e980 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 \n"
"Language-Team: LANGUAGE \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 06fc0ce46da..9941454208d 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 \n"
"Language-Team: LANGUAGE \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 729f944b65b..f06a9584dd1 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 \n"
"Language-Team: LANGUAGE \n"
diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot
index 51f405e0f1e..354a36df8d6 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 \n"
"Language-Team: LANGUAGE \n"
diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot
index d53c61547c8..fe5d87ccedb 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 \n"
"Language-Team: LANGUAGE \n"
diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot
index 5c037f680ca..f212ca24503 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 \n"
"Language-Team: LANGUAGE \n"
diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot
index fd91ee28f26..692741a28fc 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 \n"
"Language-Team: LANGUAGE \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 a7fbc613ee8..2614e3f52bf 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 \n"
"Language-Team: LANGUAGE \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 1e74d709150..47e50020d20 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 \n"
"Language-Team: LANGUAGE \n"
diff --git a/l10n/zu_ZA/core.po b/l10n/zu_ZA/core.po
new file mode 100644
index 00000000000..956f0f5d845
--- /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 \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 admin account"
+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.
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 00000000000..19f84d9ed96
--- /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 \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 00000000000..eb5d7a228c6
--- /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 \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 00000000000..a049eb976de
--- /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 \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 00000000000..d6c87989f15
--- /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 \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 00000000000..7bc842be419
--- /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 \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 00000000000..c844f939228
--- /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 \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 more information"
+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 00000000000..ce3a223ce20
--- /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 \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 ownCloud community, the source code is "
+"licensed under the AGPL."
+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 "-licensed by "
+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 %s of the available %s"
+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 00000000000..a4f2985ab0e
--- /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 \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 36626478ce8..97037809549 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 bccb8cbbf01..fa4c91c1269 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 6c264686991..0fa633c6038 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 f486519bf09..28b5ce3af20 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 1403e5a2bef..2d6601f306a 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 2095c956e5f..ebc9e539625 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 5b8ef941710..a56a65ad863 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 cd9a2f4a192..b359b9ae023 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 71f3bedad39..e888094627a 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 c5e470b438e..709e374d863 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 266c07d5c2b..7dc8b0cef8d 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 b5e8e1b06a1..e9cededa5c0 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 616417a2271..96f5a0001f7 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 54982b3c847..00df62f0c7f 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 ceeb78570fd..b6b5ad8f0a9 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 24a17836f7f..601046fe691 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 707d5abe440..dd1aac609a5 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 6ce79715b6f..7b5b1abbded 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 efcc6e82c4c..3d3589abd1e 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 be0e525d868..801ab7f608d 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 9b8eb13ca2c..8e6eb6ca032 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 4c68ded914e..43c9dc2aa42 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 .
-*
+*
*/
require_once '../lib/base.php';
diff --git a/ocs/v1.php b/ocs/v1.php
index b12ea5ef18d..1652b0bedbe 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 .
-*
+*
*/
require_once '../lib/base.php';
diff --git a/settings/ajax/changepassword.php b/settings/ajax/changepassword.php
index a0fe5947b6d..b2db2611518 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 c87ff422f61..16b48c8a9ca 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 273b02e3822..043124fa175 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 61b1a388fc3..eaeade60a39 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 8134b44143a..155291333f3 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 [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 [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 d3e7755c581..dd4be7c0688 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 %s of the available %s" => "ඔබ %sක් භාවිතා කර ඇත. මුළු ප්රමාණය %sකි",
"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 221aa13cf6a..71655800856 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 b2a78ff8512..9bb46740f5b 100644
--- a/settings/templates/help.php
+++ b/settings/templates/help.php
@@ -1,4 +1,4 @@
-printPage();
}
?>
diff --git a/settings/templates/users.php b/settings/templates/users.php
index eef9b291357..de7e50da8f3 100644
--- a/settings/templates/users.php
+++ b/settings/templates/users.php
@@ -142,7 +142,7 @@ var isadmin = ;
-
+
diff --git a/settings/users.php b/settings/users.php
index 6eaae474538..93a259f1cd8 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 3cad3a28680..2cb6f7417d2 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 32ae4aca590..736bc95255c 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 79653481f90..0b744770ea2 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 a8e5b810265..27635cb8055 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 7eadccbe769..9791e713dac 100644
--- a/tests/preseed-config.php
+++ b/tests/preseed-config.php
@@ -1,15 +1,15 @@
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',
|