merge master into filesystem

This commit is contained in:
Robin Appelman 2012-11-07 17:18:56 +01:00
commit 961ff01a93
88 changed files with 2236 additions and 554 deletions

3
README
View File

@ -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/
http://owncloud.org/dev/translation/

View File

@ -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"]));
}
}
}

View File

@ -70,6 +70,13 @@ var FileActions = {
}
parent.children('a.name').append('<span class="fileactions" />');
var defaultAction = FileActions.getDefault(FileActions.getCurrentMimeType(), FileActions.getCurrentType(), FileActions.getCurrentPermissions());
var actionHandler = function (parent, action, event) {
event.stopPropagation();
event.preventDefault();
FileActions.currentFile = parent;
file = FileActions.getCurrentFile();
action(file);
};
for (name in actions) {
// NOTE: Temporary fix to prevent rename action in root of Shared directory
if (name === 'Rename' && $('#dir').val() === '/Shared') {
@ -87,14 +94,7 @@ var FileActions = {
html += t('files', name) + '</a>';
var element = $(html);
element.data('action', name);
element.click(function (event) {
FileActions.currentFile = $(this).parent().parent().parent();
event.stopPropagation();
event.preventDefault();
var action = actions[$(this).data('action')];
var currentFile = FileActions.getCurrentFile();
action(currentFile);
});
element.click(actionHandler.bind(null, parent, actions[name]));
parent.find('a.name>span.fileactions').append(element);
}
}
@ -113,14 +113,8 @@ var FileActions = {
if (img) {
element.append($('<img class ="svg" src="' + img + '"/>'));
}
element.data('action', 'Delete');
element.click(function (event) {
event.stopPropagation();
event.preventDefault();
var action = actions[$(this).data('action')];
var currentFile = FileActions.getCurrentFile();
action(currentFile);
});
element.data('action', actions['Delete']);
element.click(actionHandler.bind(null, parent, actions['Delete']));
parent.parent().children().last().append(element);
}
},

View File

@ -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]);

View File

@ -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!",

View File

@ -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!",

View File

@ -58,6 +58,7 @@
"New" => "புதிய",
"Text file" => "கோப்பு உரை",
"Folder" => "கோப்புறை",
"From link" => "இணைப்பிலிருந்து",
"Upload" => "பதிவேற்றுக",
"Cancel upload" => "பதிவேற்றலை இரத்து செய்க",
"Nothing in here. Upload something!" => "இங்கு ஒன்றும் இல்லை. ஏதாவது பதிவேற்றுக!",

View File

@ -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;

View File

@ -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) {

View File

@ -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;

View File

@ -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));

View File

@ -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)) {

View File

@ -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);
}
}

View File

@ -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(''));
}
}

View File

@ -1,226 +1,226 @@
<?php
// Load other apps for file previews
OC_App::loadApps();
// Compatibility with shared-by-link items from ownCloud 4.0
// requires old Sharing table !
// support will be removed in OC 5.0,a
if (isset($_GET['token'])) {
unset($_GET['file']);
$qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ? LIMIT 1');
$filepath = $qry->execute(array($_GET['token']))->fetchOne();
if(isset($filepath)) {
$rootView = new \OC\Files\View('');
$info = $rootView->getFileInfo($filepath, '');
if(strtolower($info['mimetype']) == 'httpd/unix-directory') {
$_GET['dir'] = $filepath;
} else {
$_GET['file'] = $filepath;
}
\OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0. Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', \OCP\Util::WARN);
}
}
// Enf of backward compatibility
function getID($path) {
// use the share table from the db to find the item source if the file was reshared because shared files
//are not stored in the file cache.
if (substr(\OC\Files\Filesystem::getMountPoint($path), -7, 6) == "Shared") {
$path_parts = explode('/', $path, 5);
$user = $path_parts[1];
$intPath = '/'.$path_parts[4];
$query = \OC_DB::prepare('SELECT item_source FROM *PREFIX*share WHERE uid_owner = ? AND file_target = ? ');
$result = $query->execute(array($user, $intPath));
$row = $result->fetchRow();
$fileSource = $row['item_source'];
} else {
$rootView = new \OC\Files\View('');
$meta = $rootView->getFileInfo($path);
$fileSource = $meta['fileid'];
}
return $fileSource;
}
if (isset($_GET['file']) || isset($_GET['dir'])) {
if (isset($_GET['dir'])) {
$type = 'folder';
$path = $_GET['dir'];
if(strlen($path)>1 and substr($path, -1, 1)==='/') {
$path=substr($path, 0, -1);
}
$baseDir = $path;
$dir = $baseDir;
} else {
$type = 'file';
$path = $_GET['file'];
if(strlen($path)>1 and substr($path, -1, 1)==='/') {
$path=substr($path, 0, -1);
}
}
$uidOwner = substr($path, 1, strpos($path, '/', 1) - 1);
if (OCP\User::userExists($uidOwner)) {
OC_Util::setupFS($uidOwner);
$fileSource = getId($path);
if ($fileSource != -1 && ($linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $uidOwner))) {
// TODO Fix in the getItems
if (!isset($linkItem['item_type']) || $linkItem['item_type'] != $type) {
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();
exit();
}
if (isset($linkItem['share_with'])) {
// Check password
if (isset($_GET['file'])) {
$url = OCP\Util::linkToPublic('files').'&file='.$_GET['file'];
} else {
$url = OCP\Util::linkToPublic('files').'&dir='.$_GET['dir'];
}
if (isset($_POST['password'])) {
$password = $_POST['password'];
$storedHash = $linkItem['share_with'];
$forcePortable = (CRYPT_BLOWFISH != 1);
$hasher = new PasswordHash(8, $forcePortable);
if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''), $storedHash))) {
$tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
$tmpl->assign('URL', $url);
$tmpl->assign('error', true);
$tmpl->printPage();
exit();
} else {
// Save item id in session for future requests
$_SESSION['public_link_authenticated'] = $linkItem['id'];
}
// Check if item id is set in session
} else if (!isset($_SESSION['public_link_authenticated']) || $_SESSION['public_link_authenticated'] !== $linkItem['id']) {
// Prompt for password
$tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
$tmpl->assign('URL', $url);
$tmpl->printPage();
exit();
}
}
$path = $linkItem['path'];
if (isset($_GET['path'])) {
$path .= $_GET['path'];
$dir .= $_GET['path'];
if (!\OC\Files\Filesystem::file_exists($path)) {
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();
exit();
}
}
// Download the file
if (isset($_GET['download'])) {
if (isset($_GET['dir'])) {
if ( isset($_GET['files']) ) { // download selected files
OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
} else if (isset($_GET['path']) && $_GET['path'] != '' ) { // download a file from a shared directory
OC_Files::get('', $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
} else { // download the whole shared directory
OC_Files::get($path, '', $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
}
} else { // download a single shared file
OC_Files::get("", $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
}
} else {
OCP\Util::addStyle('files_sharing', 'public');
OCP\Util::addScript('files_sharing', 'public');
OCP\Util::addScript('files', 'fileactions');
$tmpl = new OCP\Template('files_sharing', 'public', 'base');
$tmpl->assign('owner', $uidOwner);
// Show file list
if (\OC\Files\Filesystem::is_dir($path)) {
OCP\Util::addStyle('files', 'files');
OCP\Util::addScript('files', 'files');
OCP\Util::addScript('files', 'filelist');
$files = array();
$rootLength = strlen($baseDir) + 1;
foreach (OC_Files::getDirectoryContent($path) as $i) {
$i['date'] = OCP\Util::formatDate($i['mtime']);
if ($i['type'] == 'file') {
$fileinfo = pathinfo($i['name']);
$i['basename'] = $fileinfo['filename'];
$i['extension'] = isset($fileinfo['extension']) ? ('.'.$fileinfo['extension']) : '';
}
$i['directory'] = '/'.substr('/'.$uidOwner.'/files'.$i['directory'], $rootLength);
if ($i['directory'] == '/') {
$i['directory'] = '';
}
$i['permissions'] = OCP\Share::PERMISSION_READ;
$files[] = $i;
}
// Make breadcrumb
$breadcrumb = array();
$pathtohere = '';
$count = 1;
foreach (explode('/', $dir) as $i) {
if ($i != '') {
if ($i != $baseDir) {
$pathtohere .= '/'.$i;
}
if ( strlen($pathtohere) < strlen($_GET['dir'])) {
continue;
}
$breadcrumb[] = array('dir' => str_replace($_GET['dir'], "", $pathtohere, $count), 'name' => $i);
}
}
$list = new OCP\Template('files', 'part.list', '');
$list->assign('files', $files, false);
$list->assign('publicListView', true);
$list->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false);
$list->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path=', false);
$breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '' );
$breadcrumbNav->assign('breadcrumb', $breadcrumb, false);
$breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false);
$folder = new OCP\Template('files', 'index', '');
$folder->assign('fileList', $list->fetchPage(), false);
$folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false);
$folder->assign('dir', basename($dir));
$folder->assign('isCreatable', false);
$folder->assign('permissions', 0);
$folder->assign('files', $files);
$folder->assign('uploadMaxFilesize', 0);
$folder->assign('uploadMaxHumanFilesize', 0);
$folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$tmpl->assign('folder', $folder->fetchPage(), false);
$tmpl->assign('uidOwner', $uidOwner);
$tmpl->assign('dir', basename($dir));
$tmpl->assign('filename', basename($path));
$tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path));
$tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
if (isset($_GET['path'])) {
$getPath = $_GET['path'];
} else {
$getPath = '';
}
$tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false);
} else {
// Show file preview if viewer is available
$tmpl->assign('uidOwner', $uidOwner);
$tmpl->assign('dir', dirname($path));
$tmpl->assign('filename', basename($path));
$tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path));
if ($type == 'file') {
$tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&file='.urlencode($_GET['file']).'&download', false);
} else {
if (isset($_GET['path'])) {
$getPath = $_GET['path'];
} else {
$getPath = '';
}
$tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false);
}
}
$tmpl->printPage();
}
exit();
}
}
}
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();
<?php
// Load other apps for file previews
OC_App::loadApps();
// Compatibility with shared-by-link items from ownCloud 4.0
// requires old Sharing table !
// support will be removed in OC 5.0,a
if (isset($_GET['token'])) {
unset($_GET['file']);
$qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ? LIMIT 1');
$filepath = $qry->execute(array($_GET['token']))->fetchOne();
if(isset($filepath)) {
$rootView = new \OC\Files\View('');
$info = $rootView->getFileInfo($filepath, '');
if(strtolower($info['mimetype']) == 'httpd/unix-directory') {
$_GET['dir'] = $filepath;
} else {
$_GET['file'] = $filepath;
}
\OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0. Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', \OCP\Util::WARN);
}
}
// Enf of backward compatibility
function getID($path) {
// use the share table from the db to find the item source if the file was reshared because shared files
//are not stored in the file cache.
if (substr(\OC\Files\Filesystem::getMountPoint($path), -7, 6) == "Shared") {
$path_parts = explode('/', $path, 5);
$user = $path_parts[1];
$intPath = '/'.$path_parts[4];
$query = \OC_DB::prepare('SELECT item_source FROM *PREFIX*share WHERE uid_owner = ? AND file_target = ? ');
$result = $query->execute(array($user, $intPath));
$row = $result->fetchRow();
$fileSource = $row['item_source'];
} else {
$rootView = new \OC\Files\View('');
$meta = $rootView->getFileInfo($path);
$fileSource = $meta['fileid'];
}
return $fileSource;
}
if (isset($_GET['file']) || isset($_GET['dir'])) {
if (isset($_GET['dir'])) {
$type = 'folder';
$path = $_GET['dir'];
if(strlen($path)>1 and substr($path, -1, 1)==='/') {
$path=substr($path, 0, -1);
}
$baseDir = $path;
$dir = $baseDir;
} else {
$type = 'file';
$path = $_GET['file'];
if(strlen($path)>1 and substr($path, -1, 1)==='/') {
$path=substr($path, 0, -1);
}
}
$uidOwner = substr($path, 1, strpos($path, '/', 1) - 1);
if (OCP\User::userExists($uidOwner)) {
OC_Util::setupFS($uidOwner);
$fileSource = getId($path);
if ($fileSource != -1 && ($linkItem = OCP\Share::getItemSharedWithByLink($type, $fileSource, $uidOwner))) {
// TODO Fix in the getItems
if (!isset($linkItem['item_type']) || $linkItem['item_type'] != $type) {
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();
exit();
}
if (isset($linkItem['share_with'])) {
// Check password
if (isset($_GET['file'])) {
$url = OCP\Util::linkToPublic('files').'&file='.urlencode($_GET['file']);
} else {
$url = OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']);
}
if (isset($_POST['password'])) {
$password = $_POST['password'];
$storedHash = $linkItem['share_with'];
$forcePortable = (CRYPT_BLOWFISH != 1);
$hasher = new PasswordHash(8, $forcePortable);
if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''), $storedHash))) {
$tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
$tmpl->assign('URL', $url);
$tmpl->assign('error', true);
$tmpl->printPage();
exit();
} else {
// Save item id in session for future requests
$_SESSION['public_link_authenticated'] = $linkItem['id'];
}
// Check if item id is set in session
} else if (!isset($_SESSION['public_link_authenticated']) || $_SESSION['public_link_authenticated'] !== $linkItem['id']) {
// Prompt for password
$tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
$tmpl->assign('URL', $url);
$tmpl->printPage();
exit();
}
}
$path = $linkItem['path'];
if (isset($_GET['path'])) {
$path .= $_GET['path'];
$dir .= $_GET['path'];
if (!\OC\Files\Filesystem::file_exists($path)) {
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();
exit();
}
}
// Download the file
if (isset($_GET['download'])) {
if (isset($_GET['dir'])) {
if ( isset($_GET['files']) ) { // download selected files
OC_Files::get($path, $_GET['files'], $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
} else if (isset($_GET['path']) && $_GET['path'] != '' ) { // download a file from a shared directory
OC_Files::get('', $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
} else { // download the whole shared directory
OC_Files::get($path, '', $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
}
} else { // download a single shared file
OC_Files::get("", $path, $_SERVER['REQUEST_METHOD'] == 'HEAD' ? true : false);
}
} else {
OCP\Util::addStyle('files_sharing', 'public');
OCP\Util::addScript('files_sharing', 'public');
OCP\Util::addScript('files', 'fileactions');
$tmpl = new OCP\Template('files_sharing', 'public', 'base');
$tmpl->assign('owner', $uidOwner);
// Show file list
if (\OC\Files\Filesystem::is_dir($path)) {
OCP\Util::addStyle('files', 'files');
OCP\Util::addScript('files', 'files');
OCP\Util::addScript('files', 'filelist');
$files = array();
$rootLength = strlen($baseDir) + 1;
foreach (OC_Files::getDirectoryContent($path) as $i) {
$i['date'] = OCP\Util::formatDate($i['mtime']);
if ($i['type'] == 'file') {
$fileinfo = pathinfo($i['name']);
$i['basename'] = $fileinfo['filename'];
$i['extension'] = isset($fileinfo['extension']) ? ('.'.$fileinfo['extension']) : '';
}
$i['directory'] = '/'.substr('/'.$uidOwner.'/files'.$i['directory'], $rootLength);
if ($i['directory'] == '/') {
$i['directory'] = '';
}
$i['permissions'] = OCP\Share::PERMISSION_READ;
$files[] = $i;
}
// Make breadcrumb
$breadcrumb = array();
$pathtohere = '';
$count = 1;
foreach (explode('/', $dir) as $i) {
if ($i != '') {
if ($i != $baseDir) {
$pathtohere .= '/'.$i;
}
if ( strlen($pathtohere) < strlen($_GET['dir'])) {
continue;
}
$breadcrumb[] = array('dir' => str_replace($_GET['dir'], "", $pathtohere, $count), 'name' => $i);
}
}
$list = new OCP\Template('files', 'part.list', '');
$list->assign('files', $files, false);
$list->assign('publicListView', true);
$list->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false);
$list->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path=', false);
$breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '' );
$breadcrumbNav->assign('breadcrumb', $breadcrumb, false);
$breadcrumbNav->assign('baseURL', OCP\Util::linkToPublic('files').'&dir='.urlencode($_GET['dir']).'&path=', false);
$folder = new OCP\Template('files', 'index', '');
$folder->assign('fileList', $list->fetchPage(), false);
$folder->assign('breadcrumb', $breadcrumbNav->fetchPage(), false);
$folder->assign('dir', basename($dir));
$folder->assign('isCreatable', false);
$folder->assign('permissions', 0);
$folder->assign('files', $files);
$folder->assign('uploadMaxFilesize', 0);
$folder->assign('uploadMaxHumanFilesize', 0);
$folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$tmpl->assign('folder', $folder->fetchPage(), false);
$tmpl->assign('uidOwner', $uidOwner);
$tmpl->assign('dir', basename($dir));
$tmpl->assign('filename', basename($path));
$tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path));
$tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
if (isset($_GET['path'])) {
$getPath = $_GET['path'];
} else {
$getPath = '';
}
$tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false);
} else {
// Show file preview if viewer is available
$tmpl->assign('uidOwner', $uidOwner);
$tmpl->assign('dir', dirname($path));
$tmpl->assign('filename', basename($path));
$tmpl->assign('mimetype', \OC\Files\Filesystem::getMimeType($path));
if ($type == 'file') {
$tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&file='.urlencode($_GET['file']).'&download', false);
} else {
if (isset($_GET['path'])) {
$getPath = $_GET['path'];
} else {
$getPath = '';
}
$tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').'&download&dir='.urlencode($_GET['dir']).'&path='.urlencode($getPath), false);
}
}
$tmpl->printPage();
}
exit();
}
}
}
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();

View File

@ -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 ) {

View File

@ -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

View File

@ -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;
}

View File

@ -29,7 +29,7 @@
<p><label for="ldap_cache_ttl">Cache Time-To-Live</label><input type="text" id="ldap_cache_ttl" name="ldap_cache_ttl" value="<?php echo $_['ldap_cache_ttl']; ?>" title="<?php echo $l->t('in seconds. A change empties the cache.');?>" /></p>
<p><label for="home_folder_naming_rule">User Home Folder Naming Rule</label><input type="text" id="home_folder_naming_rule" name="home_folder_naming_rule" value="<?php echo $_['home_folder_naming_rule']; ?>" title="<?php echo $l->t('Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute.');?>" /></p>
</fieldset>
<input type="submit" value="Save" /> <button id="ldap_action_test_connection" name="ldap_action_test_connection">Test Configuration</button> <a href="http://owncloud.org/support/ldap-backend/" target="_blank"><img src="<?php echo OCP\Util::imagePath('','actions/info.png'); ?>" style="height:1.75ex" /> <?php echo $l->t('Help');?></a>
<input type="submit" value="Save" /> <button id="ldap_action_test_connection" name="ldap_action_test_connection">Test Configuration</button> <a href="http://owncloud.org/support/ldap-backend/" target="_blank"><img src="<?php echo OCP\Util::imagePath('', 'actions/info.png'); ?>" style="height:1.75ex" /> <?php echo $l->t('Help');?></a>
</div>
</form>

View File

@ -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;
}

View File

@ -2,10 +2,12 @@
<info>
<id>user_webdavauth</id>
<name>WebDAV user backend</name>
<description>Authenticate Users by a WebDAV call</description>
<version>1.0</version>
<description>Authenticate users by a WebDAV call. You can use any WebDAV server, ownCloud server or other webserver to authenticate. It should return http 200 for right credentials and http 401 for wrong ones.</description>
<licence>AGPL</licence>
<author>Frank Karlitschek</author>
<require>4.9</require>
<shipped>true</shipped>
<types>
<authentication/>
</types>
</info>

View File

@ -0,0 +1 @@
1.1.0.0

View File

@ -1,7 +1,7 @@
<form id="webdavauth" action="#" method="post">
<fieldset class="personalblock">
<legend><strong>WebDAV Authentication</strong></legend>
<p><label for="webdav_url"><?php echo $l->t('webdav_url');?><input type="text" id="webdav_url" name="webdav_url" value="<?php echo $_['webdav_url']; ?>"></label>
<p><label for="webdav_url"><?php echo $l->t('WebDAV URL: http://');?><input type="text" id="webdav_url" name="webdav_url" value="<?php echo $_['webdav_url']; ?>"></label>
<input type="submit" value="Save" />
</fieldset>
</form>

View File

@ -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;

View File

@ -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; }

View File

@ -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

View File

@ -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",

View File

@ -13,9 +13,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-03 00:00+0100\n"
"PO-Revision-Date: 2012-11-01 23:21+0000\n"
"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: 2012-11-05 23:19+0000\n"
"Last-Translator: emc <mplichta@gmail.com>\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -65,7 +65,7 @@ msgstr "Nie udostępniaj"
msgid "Delete"
msgstr "Usuwa element"
#: js/fileactions.js:178
#: js/fileactions.js:172
msgid "Rename"
msgstr "Zmień nazwę"
@ -264,7 +264,7 @@ msgstr "Katalog"
#: templates/index.php:11
msgid "From link"
msgstr ""
msgstr "Z linku"
#: templates/index.php:22
msgid "Upload"

View File

@ -12,9 +12,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-10-29 00:01+0100\n"
"PO-Revision-Date: 2012-10-27 22:12+0000\n"
"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-11-05 13:51+0000\n"
"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -34,27 +34,27 @@ msgstr "Nenhuma categoria para adicionar?"
msgid "This category already exists: "
msgstr "Esta categoria já existe:"
#: js/js.js:243 templates/layout.user.php:53 templates/layout.user.php:54
#: js/js.js:243 templates/layout.user.php:59 templates/layout.user.php:60
msgid "Settings"
msgstr "Definições"
#: js/oc-dialogs.js:123
#: js/oc-dialogs.js:126
msgid "Choose"
msgstr "Escolha"
#: js/oc-dialogs.js:143 js/oc-dialogs.js:163
#: js/oc-dialogs.js:146 js/oc-dialogs.js:166
msgid "Cancel"
msgstr "Cancelar"
#: js/oc-dialogs.js:159
#: js/oc-dialogs.js:162
msgid "No"
msgstr "Não"
#: js/oc-dialogs.js:160
#: js/oc-dialogs.js:163
msgid "Yes"
msgstr "Sim"
#: js/oc-dialogs.js:177
#: js/oc-dialogs.js:180
msgid "Ok"
msgstr "Ok"
@ -186,7 +186,7 @@ msgstr ""
#: lostpassword/templates/lostpassword.php:8
msgid "Request failed!"
msgstr ""
msgstr "O pedido falhou!"
#: lostpassword/templates/lostpassword.php:11 templates/installation.php:38
#: templates/login.php:20
@ -319,87 +319,87 @@ msgstr "Host da base de dados"
msgid "Finish setup"
msgstr "Acabar instalação"
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Sunday"
msgstr "Domingo"
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Monday"
msgstr "Segunda"
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Tuesday"
msgstr "Terça"
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Wednesday"
msgstr "Quarta"
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Thursday"
msgstr "Quinta"
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Friday"
msgstr "Sexta"
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Saturday"
msgstr "Sábado"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "January"
msgstr "Janeiro"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "February"
msgstr "Fevereiro"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "March"
msgstr "Março"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "April"
msgstr "Abril"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "May"
msgstr "Maio"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "June"
msgstr "Junho"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "July"
msgstr "Julho"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "August"
msgstr "Agosto"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "September"
msgstr "Setembro"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "October"
msgstr "Outubro"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "November"
msgstr "Novembro"
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "December"
msgstr "Dezembro"
#: templates/layout.guest.php:42
#: templates/layout.guest.php:41
msgid "web services under your control"
msgstr "serviços web sob o seu controlo"
#: templates/layout.user.php:38
#: templates/layout.user.php:44
msgid "Log out"
msgstr "Sair"
@ -411,7 +411,7 @@ msgstr ""
msgid ""
"If you did not change your password recently, your account may be "
"compromised!"
msgstr ""
msgstr "Se não mudou a sua palavra-passe recentemente, a sua conta pode ter sido comprometida!"
#: templates/login.php:10
msgid "Please change your password to secure your account again."

View File

@ -11,9 +11,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-03 00:00+0100\n"
"PO-Revision-Date: 2012-11-01 23:21+0000\n"
"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-11-05 13:54+0000\n"
"Last-Translator: Duarte Velez Grilo <duartegrilo@gmail.com>\n"
"Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -63,7 +63,7 @@ msgstr "Deixar de partilhar"
msgid "Delete"
msgstr "Apagar"
#: js/fileactions.js:178
#: js/fileactions.js:172
msgid "Rename"
msgstr "Renomear"
@ -262,7 +262,7 @@ msgstr "Pasta"
#: templates/index.php:11
msgid "From link"
msgstr ""
msgstr "Da ligação"
#: templates/index.php:22
msgid "Upload"

View File

@ -10,8 +10,8 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-02 00:04+0100\n"
"PO-Revision-Date: 2012-11-01 08:56+0000\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: 2012-11-06 05:39+0000\n"
"Last-Translator: Anushke Guneratne <anushke@gmail.com>\n"
"Language-Team: Sinhala (Sri Lanka) (http://www.transifex.com/projects/p/owncloud/language/si_LK/)\n"
"MIME-Version: 1.0\n"
@ -46,7 +46,7 @@ msgstr "අවලංගු වි-තැපෑල"
#: ajax/openid.php:13
msgid "OpenID Changed"
msgstr ""
msgstr "විවෘත හැඳුනුම නැතහොත් OpenID වෙනස්විය."
#: ajax/openid.php:15 ajax/setlanguage.php:17 ajax/setlanguage.php:20
msgid "Invalid request"
@ -58,7 +58,7 @@ msgstr "කණ්ඩායම මැකීමට නොහැක"
#: ajax/removeuser.php:15 ajax/setquota.php:15 ajax/togglegroups.php:12
msgid "Authentication error"
msgstr ""
msgstr "සත්‍යාපන දෝෂයක්"
#: ajax/removeuser.php:24
msgid "Unable to delete user"
@ -105,7 +105,7 @@ msgid ""
"strongly suggest that you configure your webserver in a way that the data "
"directory is no longer accessible or you move the data directory outside the"
" webserver document root."
msgstr ""
msgstr "ඔබගේ දත්ත ඩිරෙක්ටරිය හා ගොනුවලට අන්තර්ජාලයෙන් පිවිසිය හැක. ownCloud සපයා ඇති .htaccess ගොනුව ක්‍රියාකරන්නේ නැත. අපි තරයේ කියා සිටිනුයේ නම්, මෙම දත්ත හා ගොනු එසේ පිවිසීමට නොහැකි වන ලෙස ඔබේ වෙබ් සේවාදායකයා වින්‍යාස කරන ලෙස හෝ එම ඩිරෙක්ටරිය වෙබ් මූලයෙන් පිටතට ගෙනයන ලෙසය."
#: templates/admin.php:31
msgid "Cron"
@ -213,15 +213,15 @@ msgstr "විශාල ගොනු කළමණාකරනය"
msgid "Ask a question"
msgstr "ප්‍රශ්ණයක් අසන්න"
#: templates/help.php:23
#: templates/help.php:22
msgid "Problems connecting to help database."
msgstr "උදව් දත්ත ගබඩාව හා සම්බන්ධවීමේදී ගැටළු ඇතිවිය."
#: templates/help.php:24
#: templates/help.php:23
msgid "Go there manually."
msgstr ""
msgstr "ස්වශක්තියෙන් එතැනට යන්න"
#: templates/help.php:32
#: templates/help.php:31
msgid "Answer"
msgstr "පිළිතුර"
@ -284,7 +284,7 @@ msgstr "පරිවර්ථන සහය"
#: templates/personal.php:51
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
msgstr "ඔබගේ ගොනු කළමනාකරු ownCloudයට සම්බන්ධ කිරීමට මෙම ලිපිනය භාවිතා කරන්න"
#: templates/users.php:21 templates/users.php:76
msgid "Name"

View File

@ -8,9 +8,9 @@ msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-03 00:00+0100\n"
"PO-Revision-Date: 2012-11-01 23:21+0000\n"
"Last-Translator: I Robot <thomas.mueller@tmit.eu>\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-11-05 07:17+0000\n"
"Last-Translator: suganthi <suganthi@nic.lk>\n"
"Language-Team: Tamil (Sri-Lanka) (http://www.transifex.com/projects/p/owncloud/language/ta_LK/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -60,7 +60,7 @@ msgstr "பகிரப்படாதது"
msgid "Delete"
msgstr "அழிக்க"
#: js/fileactions.js:178
#: js/fileactions.js:172
msgid "Rename"
msgstr "பெயர்மாற்றம்"
@ -259,7 +259,7 @@ msgstr "கோப்புறை"
#: templates/index.php:11
msgid "From link"
msgstr ""
msgstr "இணைப்பிலிருந்து"
#: templates/index.php:22
msgid "Upload"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:00+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -29,7 +29,7 @@ msgstr ""
msgid "This category already exists: "
msgstr ""
#: js/js.js:243 templates/layout.user.php:53 templates/layout.user.php:54
#: js/js.js:243 templates/layout.user.php:59 templates/layout.user.php:60
msgid "Settings"
msgstr ""
@ -314,87 +314,87 @@ msgstr ""
msgid "Finish setup"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Sunday"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Monday"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Tuesday"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Wednesday"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Thursday"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Friday"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Saturday"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "January"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "February"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "March"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "April"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "May"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "June"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "July"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "August"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "September"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "October"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "November"
msgstr ""
#: templates/layout.guest.php:17 templates/layout.user.php:18
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "December"
msgstr ""
#: templates/layout.guest.php:42
#: templates/layout.guest.php:41
msgid "web services under your control"
msgstr ""
#: templates/layout.user.php:38
#: templates/layout.user.php:44
msgid "Log out"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:00+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -59,7 +59,7 @@ msgstr ""
msgid "Delete"
msgstr ""
#: js/fileactions.js:178
#: js/fileactions.js:172
msgid "Rename"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:00+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:00+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:00+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:00+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:01+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -41,19 +41,19 @@ msgstr ""
msgid "Admin"
msgstr ""
#: files.php:328
#: files.php:331
msgid "ZIP download is turned off."
msgstr ""
#: files.php:329
#: files.php:332
msgid "Files need to be downloaded one by one."
msgstr ""
#: files.php:329 files.php:354
#: files.php:332 files.php:357
msgid "Back to Files"
msgstr ""
#: files.php:353
#: files.php:356
msgid "Selected files too large to generate zip file."
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:01+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -210,15 +210,15 @@ msgstr ""
msgid "Ask a question"
msgstr ""
#: templates/help.php:23
#: templates/help.php:22
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:24
#: templates/help.php:23
msgid "Go there manually."
msgstr ""
#: templates/help.php:32
#: templates/help.php:31
msgid "Answer"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-11-04 00:00+0100\n"
"POT-Creation-Date: 2012-11-07 00:01+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"

451
l10n/zu_ZA/core.po Normal file
View File

@ -0,0 +1,451 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2011-07-25 16:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/vcategories/add.php:22 ajax/vcategories/delete.php:22
msgid "Application name not provided."
msgstr ""
#: ajax/vcategories/add.php:28
msgid "No category to add?"
msgstr ""
#: ajax/vcategories/add.php:35
msgid "This category already exists: "
msgstr ""
#: js/js.js:243 templates/layout.user.php:59 templates/layout.user.php:60
msgid "Settings"
msgstr ""
#: js/oc-dialogs.js:126
msgid "Choose"
msgstr ""
#: js/oc-dialogs.js:146 js/oc-dialogs.js:166
msgid "Cancel"
msgstr ""
#: js/oc-dialogs.js:162
msgid "No"
msgstr ""
#: js/oc-dialogs.js:163
msgid "Yes"
msgstr ""
#: js/oc-dialogs.js:180
msgid "Ok"
msgstr ""
#: js/oc-vcategories.js:68
msgid "No categories selected for deletion."
msgstr ""
#: js/oc-vcategories.js:68 js/share.js:135 js/share.js:142 js/share.js:525
#: js/share.js:537
msgid "Error"
msgstr ""
#: js/share.js:124
msgid "Error while sharing"
msgstr ""
#: js/share.js:135
msgid "Error while unsharing"
msgstr ""
#: js/share.js:142
msgid "Error while changing permissions"
msgstr ""
#: js/share.js:151
msgid "Shared with you and the group {group} by {owner}"
msgstr ""
#: js/share.js:153
msgid "Shared with you by {owner}"
msgstr ""
#: js/share.js:158
msgid "Share with"
msgstr ""
#: js/share.js:163
msgid "Share with link"
msgstr ""
#: js/share.js:164
msgid "Password protect"
msgstr ""
#: js/share.js:168 templates/installation.php:42 templates/login.php:24
#: templates/verify.php:13
msgid "Password"
msgstr ""
#: js/share.js:173
msgid "Set expiration date"
msgstr ""
#: js/share.js:174
msgid "Expiration date"
msgstr ""
#: js/share.js:206
msgid "Share via email:"
msgstr ""
#: js/share.js:208
msgid "No people found"
msgstr ""
#: js/share.js:235
msgid "Resharing is not allowed"
msgstr ""
#: js/share.js:271
msgid "Shared in {item} with {user}"
msgstr ""
#: js/share.js:292
msgid "Unshare"
msgstr ""
#: js/share.js:304
msgid "can edit"
msgstr ""
#: js/share.js:306
msgid "access control"
msgstr ""
#: js/share.js:309
msgid "create"
msgstr ""
#: js/share.js:312
msgid "update"
msgstr ""
#: js/share.js:315
msgid "delete"
msgstr ""
#: js/share.js:318
msgid "share"
msgstr ""
#: js/share.js:343 js/share.js:512 js/share.js:514
msgid "Password protected"
msgstr ""
#: js/share.js:525
msgid "Error unsetting expiration date"
msgstr ""
#: js/share.js:537
msgid "Error setting expiration date"
msgstr ""
#: lostpassword/controller.php:47
msgid "ownCloud password reset"
msgstr ""
#: lostpassword/templates/email.php:2
msgid "Use the following link to reset your password: {link}"
msgstr ""
#: lostpassword/templates/lostpassword.php:3
msgid "You will receive a link to reset your password via Email."
msgstr ""
#: lostpassword/templates/lostpassword.php:5
msgid "Reset email send."
msgstr ""
#: lostpassword/templates/lostpassword.php:8
msgid "Request failed!"
msgstr ""
#: lostpassword/templates/lostpassword.php:11 templates/installation.php:38
#: templates/login.php:20
msgid "Username"
msgstr ""
#: lostpassword/templates/lostpassword.php:14
msgid "Request reset"
msgstr ""
#: lostpassword/templates/resetpassword.php:4
msgid "Your password was reset"
msgstr ""
#: lostpassword/templates/resetpassword.php:5
msgid "To login page"
msgstr ""
#: lostpassword/templates/resetpassword.php:8
msgid "New password"
msgstr ""
#: lostpassword/templates/resetpassword.php:11
msgid "Reset password"
msgstr ""
#: strings.php:5
msgid "Personal"
msgstr ""
#: strings.php:6
msgid "Users"
msgstr ""
#: strings.php:7
msgid "Apps"
msgstr ""
#: strings.php:8
msgid "Admin"
msgstr ""
#: strings.php:9
msgid "Help"
msgstr ""
#: templates/403.php:12
msgid "Access forbidden"
msgstr ""
#: templates/404.php:12
msgid "Cloud not found"
msgstr ""
#: templates/edit_categories_dialog.php:4
msgid "Edit categories"
msgstr ""
#: templates/edit_categories_dialog.php:14
msgid "Add"
msgstr ""
#: templates/installation.php:23 templates/installation.php:31
msgid "Security Warning"
msgstr ""
#: templates/installation.php:24
msgid ""
"No secure random number generator is available, please enable the PHP "
"OpenSSL extension."
msgstr ""
#: templates/installation.php:26
msgid ""
"Without a secure random number generator an attacker may be able to predict "
"password reset tokens and take over your account."
msgstr ""
#: templates/installation.php:32
msgid ""
"Your data directory and your files are probably accessible from the "
"internet. The .htaccess file that ownCloud provides is not working. We "
"strongly suggest that you configure your webserver in a way that the data "
"directory is no longer accessible or you move the data directory outside the"
" webserver document root."
msgstr ""
#: templates/installation.php:36
msgid "Create an <strong>admin account</strong>"
msgstr ""
#: templates/installation.php:48
msgid "Advanced"
msgstr ""
#: templates/installation.php:50
msgid "Data folder"
msgstr ""
#: templates/installation.php:57
msgid "Configure the database"
msgstr ""
#: templates/installation.php:62 templates/installation.php:73
#: templates/installation.php:83 templates/installation.php:93
msgid "will be used"
msgstr ""
#: templates/installation.php:105
msgid "Database user"
msgstr ""
#: templates/installation.php:109
msgid "Database password"
msgstr ""
#: templates/installation.php:113
msgid "Database name"
msgstr ""
#: templates/installation.php:121
msgid "Database tablespace"
msgstr ""
#: templates/installation.php:127
msgid "Database host"
msgstr ""
#: templates/installation.php:132
msgid "Finish setup"
msgstr ""
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Sunday"
msgstr ""
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Monday"
msgstr ""
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Tuesday"
msgstr ""
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Wednesday"
msgstr ""
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Thursday"
msgstr ""
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Friday"
msgstr ""
#: templates/layout.guest.php:15 templates/layout.user.php:16
msgid "Saturday"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "January"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "February"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "March"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "April"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "May"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "June"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "July"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "August"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "September"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "October"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "November"
msgstr ""
#: templates/layout.guest.php:16 templates/layout.user.php:17
msgid "December"
msgstr ""
#: templates/layout.guest.php:41
msgid "web services under your control"
msgstr ""
#: templates/layout.user.php:44
msgid "Log out"
msgstr ""
#: templates/login.php:8
msgid "Automatic logon rejected!"
msgstr ""
#: templates/login.php:9
msgid ""
"If you did not change your password recently, your account may be "
"compromised!"
msgstr ""
#: templates/login.php:10
msgid "Please change your password to secure your account again."
msgstr ""
#: templates/login.php:15
msgid "Lost your password?"
msgstr ""
#: templates/login.php:27
msgid "remember"
msgstr ""
#: templates/login.php:28
msgid "Log in"
msgstr ""
#: templates/logout.php:1
msgid "You are logged out."
msgstr ""
#: templates/part.pagenavi.php:3
msgid "prev"
msgstr ""
#: templates/part.pagenavi.php:20
msgid "next"
msgstr ""
#: templates/verify.php:5
msgid "Security Warning!"
msgstr ""
#: templates/verify.php:6
msgid ""
"Please verify your password. <br/>For security reasons you may be "
"occasionally asked to enter your password again."
msgstr ""
#: templates/verify.php:16
msgid "Verify"
msgstr ""

299
l10n/zu_ZA/files.po Normal file
View File

@ -0,0 +1,299 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2011-08-13 02:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/upload.php:20
msgid "There is no error, the file uploaded with success"
msgstr ""
#: ajax/upload.php:21
msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini"
msgstr ""
#: ajax/upload.php:22
msgid ""
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
"the HTML form"
msgstr ""
#: ajax/upload.php:23
msgid "The uploaded file was only partially uploaded"
msgstr ""
#: ajax/upload.php:24
msgid "No file was uploaded"
msgstr ""
#: ajax/upload.php:25
msgid "Missing a temporary folder"
msgstr ""
#: ajax/upload.php:26
msgid "Failed to write to disk"
msgstr ""
#: appinfo/app.php:6
msgid "Files"
msgstr ""
#: js/fileactions.js:108 templates/index.php:64
msgid "Unshare"
msgstr ""
#: js/fileactions.js:110 templates/index.php:66
msgid "Delete"
msgstr ""
#: js/fileactions.js:172
msgid "Rename"
msgstr ""
#: js/filelist.js:194 js/filelist.js:196
msgid "{new_name} already exists"
msgstr ""
#: js/filelist.js:194 js/filelist.js:196
msgid "replace"
msgstr ""
#: js/filelist.js:194
msgid "suggest name"
msgstr ""
#: js/filelist.js:194 js/filelist.js:196
msgid "cancel"
msgstr ""
#: js/filelist.js:243
msgid "replaced {new_name}"
msgstr ""
#: js/filelist.js:243 js/filelist.js:245 js/filelist.js:277 js/filelist.js:279
msgid "undo"
msgstr ""
#: js/filelist.js:245
msgid "replaced {new_name} with {old_name}"
msgstr ""
#: js/filelist.js:277
msgid "unshared {files}"
msgstr ""
#: js/filelist.js:279
msgid "deleted {files}"
msgstr ""
#: js/files.js:171
msgid "generating ZIP-file, it may take some time."
msgstr ""
#: js/files.js:206
msgid "Unable to upload your file as it is a directory or has 0 bytes"
msgstr ""
#: js/files.js:206
msgid "Upload Error"
msgstr ""
#: js/files.js:234 js/files.js:339 js/files.js:369
msgid "Pending"
msgstr ""
#: js/files.js:254
msgid "1 file uploading"
msgstr ""
#: js/files.js:257 js/files.js:302 js/files.js:317
msgid "{count} files uploading"
msgstr ""
#: js/files.js:320 js/files.js:353
msgid "Upload cancelled."
msgstr ""
#: js/files.js:422
msgid ""
"File upload is in progress. Leaving the page now will cancel the upload."
msgstr ""
#: js/files.js:492
msgid "Invalid name, '/' is not allowed."
msgstr ""
#: js/files.js:673
msgid "{count} files scanned"
msgstr ""
#: js/files.js:681
msgid "error while scanning"
msgstr ""
#: js/files.js:754 templates/index.php:50
msgid "Name"
msgstr ""
#: js/files.js:755 templates/index.php:58
msgid "Size"
msgstr ""
#: js/files.js:756 templates/index.php:60
msgid "Modified"
msgstr ""
#: js/files.js:783
msgid "1 folder"
msgstr ""
#: js/files.js:785
msgid "{count} folders"
msgstr ""
#: js/files.js:793
msgid "1 file"
msgstr ""
#: js/files.js:795
msgid "{count} files"
msgstr ""
#: js/files.js:838
msgid "seconds ago"
msgstr ""
#: js/files.js:839
msgid "1 minute ago"
msgstr ""
#: js/files.js:840
msgid "{minutes} minutes ago"
msgstr ""
#: js/files.js:843
msgid "today"
msgstr ""
#: js/files.js:844
msgid "yesterday"
msgstr ""
#: js/files.js:845
msgid "{days} days ago"
msgstr ""
#: js/files.js:846
msgid "last month"
msgstr ""
#: js/files.js:848
msgid "months ago"
msgstr ""
#: js/files.js:849
msgid "last year"
msgstr ""
#: js/files.js:850
msgid "years ago"
msgstr ""
#: templates/admin.php:5
msgid "File handling"
msgstr ""
#: templates/admin.php:7
msgid "Maximum upload size"
msgstr ""
#: templates/admin.php:7
msgid "max. possible: "
msgstr ""
#: templates/admin.php:9
msgid "Needed for multi-file and folder downloads."
msgstr ""
#: templates/admin.php:9
msgid "Enable ZIP-download"
msgstr ""
#: templates/admin.php:11
msgid "0 is unlimited"
msgstr ""
#: templates/admin.php:12
msgid "Maximum input size for ZIP files"
msgstr ""
#: templates/admin.php:15
msgid "Save"
msgstr ""
#: templates/index.php:7
msgid "New"
msgstr ""
#: templates/index.php:9
msgid "Text file"
msgstr ""
#: templates/index.php:10
msgid "Folder"
msgstr ""
#: templates/index.php:11
msgid "From link"
msgstr ""
#: templates/index.php:22
msgid "Upload"
msgstr ""
#: templates/index.php:29
msgid "Cancel upload"
msgstr ""
#: templates/index.php:42
msgid "Nothing in here. Upload something!"
msgstr ""
#: templates/index.php:52
msgid "Share"
msgstr ""
#: templates/index.php:54
msgid "Download"
msgstr ""
#: templates/index.php:77
msgid "Upload too large"
msgstr ""
#: templates/index.php:79
msgid ""
"The files you are trying to upload exceed the maximum size for file uploads "
"on this server."
msgstr ""
#: templates/index.php:84
msgid "Files are being scanned, please wait."
msgstr ""
#: templates/index.php:87
msgid "Current scanning"
msgstr ""

View File

@ -0,0 +1,34 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-08-12 22:33+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: templates/settings.php:3
msgid "Encryption"
msgstr ""
#: templates/settings.php:4
msgid "Exclude the following file types from encryption"
msgstr ""
#: templates/settings.php:5
msgid "None"
msgstr ""
#: templates/settings.php:10
msgid "Enable Encryption"
msgstr ""

View File

@ -0,0 +1,106 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-08-12 22:34+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23
msgid "Access granted"
msgstr ""
#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86
msgid "Error configuring Dropbox storage"
msgstr ""
#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40
msgid "Grant access"
msgstr ""
#: js/dropbox.js:73 js/google.js:72
msgid "Fill out all required fields"
msgstr ""
#: js/dropbox.js:85
msgid "Please provide a valid Dropbox app key and secret."
msgstr ""
#: js/google.js:26 js/google.js:73 js/google.js:78
msgid "Error configuring Google Drive storage"
msgstr ""
#: templates/settings.php:3
msgid "External Storage"
msgstr ""
#: templates/settings.php:7 templates/settings.php:19
msgid "Mount point"
msgstr ""
#: templates/settings.php:8
msgid "Backend"
msgstr ""
#: templates/settings.php:9
msgid "Configuration"
msgstr ""
#: templates/settings.php:10
msgid "Options"
msgstr ""
#: templates/settings.php:11
msgid "Applicable"
msgstr ""
#: templates/settings.php:23
msgid "Add mount point"
msgstr ""
#: templates/settings.php:54 templates/settings.php:62
msgid "None set"
msgstr ""
#: templates/settings.php:63
msgid "All Users"
msgstr ""
#: templates/settings.php:64
msgid "Groups"
msgstr ""
#: templates/settings.php:69
msgid "Users"
msgstr ""
#: templates/settings.php:77 templates/settings.php:107
msgid "Delete"
msgstr ""
#: templates/settings.php:87
msgid "Enable User External Storage"
msgstr ""
#: templates/settings.php:88
msgid "Allow users to mount their own external storage"
msgstr ""
#: templates/settings.php:99
msgid "SSL root certificates"
msgstr ""
#: templates/settings.php:113
msgid "Import Root Certificate"
msgstr ""

View File

@ -0,0 +1,48 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-08-12 22:35+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: templates/authenticate.php:4
msgid "Password"
msgstr ""
#: templates/authenticate.php:6
msgid "Submit"
msgstr ""
#: templates/public.php:9
#, php-format
msgid "%s shared the folder %s with you"
msgstr ""
#: templates/public.php:11
#, php-format
msgid "%s shared the file %s with you"
msgstr ""
#: templates/public.php:14 templates/public.php:30
msgid "Download"
msgstr ""
#: templates/public.php:29
msgid "No preview available for"
msgstr ""
#: templates/public.php:35
msgid "web services under your control"
msgstr ""

View File

@ -0,0 +1,42 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-08-12 22:37+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: js/settings-personal.js:31 templates/settings-personal.php:10
msgid "Expire all versions"
msgstr ""
#: js/versions.js:16
msgid "History"
msgstr ""
#: templates/settings-personal.php:4
msgid "Versions"
msgstr ""
#: templates/settings-personal.php:7
msgid "This will delete all existing backup versions of your files"
msgstr ""
#: templates/settings.php:3
msgid "Files Versioning"
msgstr ""
#: templates/settings.php:4
msgid "Enable"
msgstr ""

137
l10n/zu_ZA/lib.po Normal file
View File

@ -0,0 +1,137 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-07-27 22:23+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: app.php:285
msgid "Help"
msgstr ""
#: app.php:292
msgid "Personal"
msgstr ""
#: app.php:297
msgid "Settings"
msgstr ""
#: app.php:302
msgid "Users"
msgstr ""
#: app.php:309
msgid "Apps"
msgstr ""
#: app.php:311
msgid "Admin"
msgstr ""
#: files.php:328
msgid "ZIP download is turned off."
msgstr ""
#: files.php:329
msgid "Files need to be downloaded one by one."
msgstr ""
#: files.php:329 files.php:354
msgid "Back to Files"
msgstr ""
#: files.php:353
msgid "Selected files too large to generate zip file."
msgstr ""
#: json.php:28
msgid "Application is not enabled"
msgstr ""
#: json.php:39 json.php:64 json.php:77 json.php:89
msgid "Authentication error"
msgstr ""
#: json.php:51
msgid "Token expired. Please reload page."
msgstr ""
#: search/provider/file.php:17 search/provider/file.php:35
msgid "Files"
msgstr ""
#: search/provider/file.php:26 search/provider/file.php:33
msgid "Text"
msgstr ""
#: search/provider/file.php:29
msgid "Images"
msgstr ""
#: template.php:103
msgid "seconds ago"
msgstr ""
#: template.php:104
msgid "1 minute ago"
msgstr ""
#: template.php:105
#, php-format
msgid "%d minutes ago"
msgstr ""
#: template.php:108
msgid "today"
msgstr ""
#: template.php:109
msgid "yesterday"
msgstr ""
#: template.php:110
#, php-format
msgid "%d days ago"
msgstr ""
#: template.php:111
msgid "last month"
msgstr ""
#: template.php:112
msgid "months ago"
msgstr ""
#: template.php:113
msgid "last year"
msgstr ""
#: template.php:114
msgid "years ago"
msgstr ""
#: updater.php:75
#, php-format
msgid "%s is available. Get <a href=\"%s\">more information</a>"
msgstr ""
#: updater.php:77
msgid "up to date"
msgstr ""
#: updater.php:80
msgid "updates check is disabled"
msgstr ""

320
l10n/zu_ZA/settings.po Normal file
View File

@ -0,0 +1,320 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2011-07-25 16:05+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: ajax/apps/ocs.php:20
msgid "Unable to load list from App Store"
msgstr ""
#: ajax/creategroup.php:10
msgid "Group already exists"
msgstr ""
#: ajax/creategroup.php:19
msgid "Unable to add group"
msgstr ""
#: ajax/enableapp.php:12
msgid "Could not enable app. "
msgstr ""
#: ajax/lostpassword.php:12
msgid "Email saved"
msgstr ""
#: ajax/lostpassword.php:14
msgid "Invalid email"
msgstr ""
#: ajax/openid.php:13
msgid "OpenID Changed"
msgstr ""
#: ajax/openid.php:15 ajax/setlanguage.php:17 ajax/setlanguage.php:20
msgid "Invalid request"
msgstr ""
#: ajax/removegroup.php:13
msgid "Unable to delete group"
msgstr ""
#: ajax/removeuser.php:15 ajax/setquota.php:15 ajax/togglegroups.php:12
msgid "Authentication error"
msgstr ""
#: ajax/removeuser.php:24
msgid "Unable to delete user"
msgstr ""
#: ajax/setlanguage.php:15
msgid "Language changed"
msgstr ""
#: ajax/togglegroups.php:22
#, php-format
msgid "Unable to add user to group %s"
msgstr ""
#: ajax/togglegroups.php:28
#, php-format
msgid "Unable to remove user from group %s"
msgstr ""
#: js/apps.js:28 js/apps.js:67
msgid "Disable"
msgstr ""
#: js/apps.js:28 js/apps.js:55
msgid "Enable"
msgstr ""
#: js/personal.js:69
msgid "Saving..."
msgstr ""
#: personal.php:42 personal.php:43
msgid "__language_name__"
msgstr ""
#: templates/admin.php:14
msgid "Security Warning"
msgstr ""
#: templates/admin.php:17
msgid ""
"Your data directory and your files are probably accessible from the "
"internet. The .htaccess file that ownCloud provides is not working. We "
"strongly suggest that you configure your webserver in a way that the data "
"directory is no longer accessible or you move the data directory outside the"
" webserver document root."
msgstr ""
#: templates/admin.php:31
msgid "Cron"
msgstr ""
#: templates/admin.php:37
msgid "Execute one task with each page loaded"
msgstr ""
#: templates/admin.php:43
msgid ""
"cron.php is registered at a webcron service. Call the cron.php page in the "
"owncloud root once a minute over http."
msgstr ""
#: templates/admin.php:49
msgid ""
"Use systems cron service. Call the cron.php file in the owncloud folder via "
"a system cronjob once a minute."
msgstr ""
#: templates/admin.php:56
msgid "Sharing"
msgstr ""
#: templates/admin.php:61
msgid "Enable Share API"
msgstr ""
#: templates/admin.php:62
msgid "Allow apps to use the Share API"
msgstr ""
#: templates/admin.php:67
msgid "Allow links"
msgstr ""
#: templates/admin.php:68
msgid "Allow users to share items to the public with links"
msgstr ""
#: templates/admin.php:73
msgid "Allow resharing"
msgstr ""
#: templates/admin.php:74
msgid "Allow users to share items shared with them again"
msgstr ""
#: templates/admin.php:79
msgid "Allow users to share with anyone"
msgstr ""
#: templates/admin.php:81
msgid "Allow users to only share with users in their groups"
msgstr ""
#: templates/admin.php:88
msgid "Log"
msgstr ""
#: templates/admin.php:116
msgid "More"
msgstr ""
#: templates/admin.php:124
msgid ""
"Developed by the <a href=\"http://ownCloud.org/contact\" "
"target=\"_blank\">ownCloud community</a>, the <a "
"href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is "
"licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" "
"target=\"_blank\"><abbr title=\"Affero General Public "
"License\">AGPL</abbr></a>."
msgstr ""
#: templates/apps.php:10
msgid "Add your App"
msgstr ""
#: templates/apps.php:11
msgid "More Apps"
msgstr ""
#: templates/apps.php:27
msgid "Select an App"
msgstr ""
#: templates/apps.php:31
msgid "See application page at apps.owncloud.com"
msgstr ""
#: templates/apps.php:32
msgid "<span class=\"licence\"></span>-licensed by <span class=\"author\"></span>"
msgstr ""
#: templates/help.php:9
msgid "Documentation"
msgstr ""
#: templates/help.php:10
msgid "Managing Big Files"
msgstr ""
#: templates/help.php:11
msgid "Ask a question"
msgstr ""
#: templates/help.php:22
msgid "Problems connecting to help database."
msgstr ""
#: templates/help.php:23
msgid "Go there manually."
msgstr ""
#: templates/help.php:31
msgid "Answer"
msgstr ""
#: templates/personal.php:8
#, php-format
msgid "You have used <strong>%s</strong> of the available <strong>%s<strong>"
msgstr ""
#: templates/personal.php:12
msgid "Desktop and Mobile Syncing Clients"
msgstr ""
#: templates/personal.php:13
msgid "Download"
msgstr ""
#: templates/personal.php:19
msgid "Your password was changed"
msgstr ""
#: templates/personal.php:20
msgid "Unable to change your password"
msgstr ""
#: templates/personal.php:21
msgid "Current password"
msgstr ""
#: templates/personal.php:22
msgid "New password"
msgstr ""
#: templates/personal.php:23
msgid "show"
msgstr ""
#: templates/personal.php:24
msgid "Change password"
msgstr ""
#: templates/personal.php:30
msgid "Email"
msgstr ""
#: templates/personal.php:31
msgid "Your email address"
msgstr ""
#: templates/personal.php:32
msgid "Fill in an email address to enable password recovery"
msgstr ""
#: templates/personal.php:38 templates/personal.php:39
msgid "Language"
msgstr ""
#: templates/personal.php:44
msgid "Help translate"
msgstr ""
#: templates/personal.php:51
msgid "use this address to connect to your ownCloud in your file manager"
msgstr ""
#: templates/users.php:21 templates/users.php:76
msgid "Name"
msgstr ""
#: templates/users.php:23 templates/users.php:77
msgid "Password"
msgstr ""
#: templates/users.php:26 templates/users.php:78 templates/users.php:98
msgid "Groups"
msgstr ""
#: templates/users.php:32
msgid "Create"
msgstr ""
#: templates/users.php:35
msgid "Default Quota"
msgstr ""
#: templates/users.php:55 templates/users.php:138
msgid "Other"
msgstr ""
#: templates/users.php:80 templates/users.php:112
msgid "Group Admin"
msgstr ""
#: templates/users.php:82
msgid "Quota"
msgstr ""
#: templates/users.php:146
msgid "Delete"
msgstr ""

170
l10n/zu_ZA/user_ldap.po Normal file
View File

@ -0,0 +1,170 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: ownCloud\n"
"Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n"
"POT-Creation-Date: 2012-11-06 00:00+0100\n"
"PO-Revision-Date: 2012-08-12 22:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Zulu (South Africa) (http://www.transifex.com/projects/p/owncloud/language/zu_ZA/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: zu_ZA\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: templates/settings.php:8
msgid "Host"
msgstr ""
#: templates/settings.php:8
msgid ""
"You can omit the protocol, except you require SSL. Then start with ldaps://"
msgstr ""
#: templates/settings.php:9
msgid "Base DN"
msgstr ""
#: templates/settings.php:9
msgid "You can specify Base DN for users and groups in the Advanced tab"
msgstr ""
#: templates/settings.php:10
msgid "User DN"
msgstr ""
#: templates/settings.php:10
msgid ""
"The DN of the client user with which the bind shall be done, e.g. "
"uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password "
"empty."
msgstr ""
#: templates/settings.php:11
msgid "Password"
msgstr ""
#: templates/settings.php:11
msgid "For anonymous access, leave DN and Password empty."
msgstr ""
#: templates/settings.php:12
msgid "User Login Filter"
msgstr ""
#: templates/settings.php:12
#, php-format
msgid ""
"Defines the filter to apply, when login is attempted. %%uid replaces the "
"username in the login action."
msgstr ""
#: templates/settings.php:12
#, php-format
msgid "use %%uid placeholder, e.g. \"uid=%%uid\""
msgstr ""
#: templates/settings.php:13
msgid "User List Filter"
msgstr ""
#: templates/settings.php:13
msgid "Defines the filter to apply, when retrieving users."
msgstr ""
#: templates/settings.php:13
msgid "without any placeholder, e.g. \"objectClass=person\"."
msgstr ""
#: templates/settings.php:14
msgid "Group Filter"
msgstr ""
#: templates/settings.php:14
msgid "Defines the filter to apply, when retrieving groups."
msgstr ""
#: templates/settings.php:14
msgid "without any placeholder, e.g. \"objectClass=posixGroup\"."
msgstr ""
#: templates/settings.php:17
msgid "Port"
msgstr ""
#: templates/settings.php:18
msgid "Base User Tree"
msgstr ""
#: templates/settings.php:19
msgid "Base Group Tree"
msgstr ""
#: templates/settings.php:20
msgid "Group-Member association"
msgstr ""
#: templates/settings.php:21
msgid "Use TLS"
msgstr ""
#: templates/settings.php:21
msgid "Do not use it for SSL connections, it will fail."
msgstr ""
#: templates/settings.php:22
msgid "Case insensitve LDAP server (Windows)"
msgstr ""
#: templates/settings.php:23
msgid "Turn off SSL certificate validation."
msgstr ""
#: templates/settings.php:23
msgid ""
"If connection only works with this option, import the LDAP server's SSL "
"certificate in your ownCloud server."
msgstr ""
#: templates/settings.php:23
msgid "Not recommended, use for testing only."
msgstr ""
#: templates/settings.php:24
msgid "User Display Name Field"
msgstr ""
#: templates/settings.php:24
msgid "The LDAP attribute to use to generate the user`s ownCloud name."
msgstr ""
#: templates/settings.php:25
msgid "Group Display Name Field"
msgstr ""
#: templates/settings.php:25
msgid "The LDAP attribute to use to generate the groups`s ownCloud name."
msgstr ""
#: templates/settings.php:27
msgid "in bytes"
msgstr ""
#: templates/settings.php:29
msgid "in seconds. A change empties the cache."
msgstr ""
#: templates/settings.php:30
msgid ""
"Leave empty for user name (default). Otherwise, specify an LDAP/AD "
"attribute."
msgstr ""
#: templates/settings.php:32
msgid "Help"
msgstr ""

View File

@ -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

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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 ) {

View File

@ -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);
}

View File

@ -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);
}
}
/**

View File

@ -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');

View File

@ -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);
}
}

View File

@ -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;
}
}

View File

@ -34,7 +34,7 @@ class View {
$this->fakeRoot = $root;
}
public function getAbsolutePath($path) {
public function getAbsolutePath($path = '/') {
if (!$path) {
$path = '/';
}

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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 {

View File

@ -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;

View File

@ -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);

View File

@ -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 ) {

View File

@ -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
*/

View File

@ -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 = '');
}
/**

View File

@ -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';

View File

@ -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);
}
}
}

View File

@ -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;
}

View File

@ -3,22 +3,22 @@
/**
* ownCloud
*
* @author Frank Karlitschek
* @copyright 2012 Frank Karlitschek frank@owncloud.org
*
* @author Frank Karlitschek
* @copyright 2012 Frank Karlitschek frank@owncloud.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*
*/
require_once '../lib/base.php';

View File

@ -3,22 +3,22 @@
/**
* ownCloud
*
* @author Frank Karlitschek
* @copyright 2012 Frank Karlitschek frank@owncloud.org
*
* @author Frank Karlitschek
* @copyright 2012 Frank Karlitschek frank@owncloud.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*
*/
require_once '../lib/base.php';

View File

@ -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()) {

View File

@ -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())));

View File

@ -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));

View File

@ -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'));
}
}

View File

@ -95,11 +95,11 @@ if ( $remoteApps ) {
foreach ( $remoteApps AS $key => $remote ) {
if (
if (
$app['name'] == $remote['name']
// To set duplicate detection to use OCS ID instead of string name,
// enable this code, remove the line of code above,
// and add <ocs_id>[ID]</ocs_id> to info.xml of each 3rd party app:
// To set duplicate detection to use OCS ID instead of string name,
// enable this code, remove the line of code above,
// and add <ocs_id>[ID]</ocs_id> to info.xml of each 3rd party app:
// OR $app['ocs_id'] == $remote['ocs_id']
) {

View File

@ -4,8 +4,10 @@
"Could not enable app. " => "යෙදුම සක්‍රීය කළ නොහැකි විය.",
"Email saved" => "වි-තැපෑල සුරකින ලදී",
"Invalid email" => "අවලංගු වි-තැපෑල",
"OpenID Changed" => "විවෘත හැඳුනුම නැතහොත් OpenID වෙනස්විය.",
"Invalid request" => "අවලංගු අයදුම",
"Unable to delete group" => "කණ්ඩායම මැකීමට නොහැක",
"Authentication error" => "සත්‍යාපන දෝෂයක්",
"Unable to delete user" => "පරිශීලකයා මැකීමට නොහැක",
"Language changed" => "භාෂාව ාවනස් කිරීම",
"Unable to add user to group %s" => "පරිශීලකයා %s කණ්ඩායමට එකතු කළ නොහැක",
@ -14,6 +16,7 @@
"Enable" => "ක්‍රියත්මක කරන්න",
"Saving..." => "සුරැකෙමින් පවතී...",
"Security Warning" => "ආරක්ෂක නිවේදනයක්",
"Your data directory and your files are probably accessible from the internet. The .htaccess file that ownCloud provides is not working. We strongly suggest that you configure your webserver in a way that the data directory is no longer accessible or you move the data directory outside the webserver document root." => "ඔබගේ දත්ත ඩිරෙක්ටරිය හා ගොනුවලට අන්තර්ජාලයෙන් පිවිසිය හැක. ownCloud සපයා ඇති .htaccess ගොනුව ක්‍රියාකරන්නේ නැත. අපි තරයේ කියා සිටිනුයේ නම්, මෙම දත්ත හා ගොනු එසේ පිවිසීමට නොහැකි වන ලෙස ඔබේ වෙබ් සේවාදායකයා වින්‍යාස කරන ලෙස හෝ එම ඩිරෙක්ටරිය වෙබ් මූලයෙන් පිටතට ගෙනයන ලෙසය.",
"Sharing" => "හුවමාරු කිරීම",
"Allow links" => "යොමු සලසන්න",
"Allow resharing" => "යළි යළිත් හුවමාරුවට අවසර දෙමි",
@ -29,6 +32,7 @@
"Managing Big Files" => "විශාල ගොනු කළමණාකරනය",
"Ask a question" => "ප්‍රශ්ණයක් අසන්න",
"Problems connecting to help database." => "උදව් දත්ත ගබඩාව හා සම්බන්ධවීමේදී ගැටළු ඇතිවිය.",
"Go there manually." => "ස්වශක්තියෙන් එතැනට යන්න",
"Answer" => "පිළිතුර",
"You have used <strong>%s</strong> of the available <strong>%s<strong>" => "ඔබ <strong>%s</strong>ක් භාවිතා කර ඇත. මුළු ප්‍රමාණය <strong>%s</strong>කි",
"Download" => "භාගත කරන්න",
@ -43,6 +47,7 @@
"Fill in an email address to enable password recovery" => "මුරපද ප්‍රතිස්ථාපනය සඳහා විද්‍යුත් තැපැල් විස්තර ලබා දෙන්න",
"Language" => "භාෂාව",
"Help translate" => "පරිවර්ථන සහය",
"use this address to connect to your ownCloud in your file manager" => "ඔබගේ ගොනු කළමනාකරු ownCloudයට සම්බන්ධ කිරීමට මෙම ලිපිනය භාවිතා කරන්න",
"Name" => "නාමය",
"Password" => "මුරපදය",
"Groups" => "සමූහය",

View File

@ -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à',

View File

@ -1,4 +1,4 @@
<?php
<?php
/**
* 2012 Frank Karlitschek frank@owncloud.org
* This file is licensed under the Affero General Public License version 3 or later.
@ -12,8 +12,7 @@
<?php
$url=OC_Helper::linkTo( "settings", "help.php" ).'?page=';
$pageNavi=OC_Util::getPageNavi($_['pagecount'], $_['page'], $url);
if($pageNavi)
{
if($pageNavi) {
$pageNavi->printPage();
}
?>

View File

@ -142,7 +142,7 @@ var isadmin = <?php echo $_['isadmin']?'true':'false'; ?>;
</div>
</td>
<td class="remove">
<?php if($user['name']!=OC_User::getUser()):?>
<?php if($user['name']!=OC_User::getUser()):?>
<a href="#" class="action delete" original-title="<?php echo $l->t('Delete')?>">
<img src="<?php echo image_path('core', 'actions/delete.svg') ?>" />
</a>

View File

@ -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);
}

View File

@ -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));

View File

@ -20,7 +20,7 @@
*
*/
require_once("lib/template.php");
OC::autoload('OC_Template');
class Test_TemplateFunctions extends UnitTestCase {

View File

@ -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
*/

View File

@ -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);
}
}
}

View File

@ -1,15 +1,15 @@
<?php
$CONFIG = array (
"appstoreenabled" => false,
'apps_paths' =>
'apps_paths' =>
array (
0 =>
0 =>
array (
'path' => OC::$SERVERROOT.'/apps',
'url' => '/apps',
'writable' => false,
),
1 =>
1 =>
array (
'path' => OC::$SERVERROOT.'/apps2',
'url' => '/apps2',