diff --git a/apps/files_encryption/ajax/mode.php b/apps/files_encryption/ajax/mode.php
deleted file mode 100644
index 64c5be9440..0000000000
--- a/apps/files_encryption/ajax/mode.php
+++ /dev/null
@@ -1,38 +0,0 @@
-
- * This file is licensed under the Affero General Public License version 3 or later.
- * See the COPYING-README file.
- */
-
-use OCA\Encryption\Keymanager;
-
-OCP\JSON::checkAppEnabled('files_encryption');
-OCP\JSON::checkLoggedIn();
-OCP\JSON::callCheck();
-
-$mode = $_POST['mode'];
-$changePasswd = false;
-$passwdChanged = false;
-
-if ( isset($_POST['newpasswd']) && isset($_POST['oldpasswd']) ) {
- $oldpasswd = $_POST['oldpasswd'];
- $newpasswd = $_POST['newpasswd'];
- $changePasswd = true;
- $passwdChanged = Keymanager::changePasswd($oldpasswd, $newpasswd);
-}
-
-$query = \OC_DB::prepare( "SELECT mode FROM *PREFIX*encryption WHERE uid = ?" );
-$result = $query->execute(array(\OCP\User::getUser()));
-
-if ($result->fetchRow()){
- $query = OC_DB::prepare( 'UPDATE *PREFIX*encryption SET mode = ? WHERE uid = ?' );
-} else {
- $query = OC_DB::prepare( 'INSERT INTO *PREFIX*encryption ( mode, uid ) VALUES( ?, ? )' );
-}
-
-if ( (!$changePasswd || $passwdChanged) && $query->execute(array($mode, \OCP\User::getUser())) ) {
- OCP\JSON::success();
-} else {
- OCP\JSON::error();
-}
\ No newline at end of file
diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php
index f83109a18e..0872862252 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -43,6 +43,6 @@ if (
}
-// Reguster settings scripts
+// Register settings scripts
OCP\App::registerAdmin( 'files_encryption', 'settings' );
-OCP\App::registerPersonal( 'files_encryption', 'settings-personal' );
\ No newline at end of file
+OCP\App::registerPersonal( 'files_encryption', 'settings-personal' );
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index 8bdeee0937..7e4f677ce9 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -165,16 +165,6 @@ class Hooks {
* @brief
*/
public static function postShared( $params ) {
-
- // Delete existing catfile
- Keymanager::deleteFileKey( );
-
- // Generate new catfile and env keys
- Crypt::multiKeyEncrypt( $plainContent, $publicKeys );
-
- // Save env keys to user folders
-
-
}
/**
diff --git a/apps/files_encryption/js/settings-personal.js b/apps/files_encryption/js/settings-personal.js
deleted file mode 100644
index 1a53e99d2b..0000000000
--- a/apps/files_encryption/js/settings-personal.js
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * Copyright (c) 2012, Bjoern Schiessle
- * This file is licensed under the Affero General Public License version 3 or later.
- * See the COPYING-README file.
- */
-
-$(document).ready(function(){
- $('input[name=encryption_mode]').change(function(){
- var prevmode = document.getElementById('prev_encryption_mode').value
- var client=$('input[value="client"]:checked').val()
- ,server=$('input[value="server"]:checked').val()
- ,user=$('input[value="user"]:checked').val()
- ,none=$('input[value="none"]:checked').val()
- if (client) {
- $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'client' });
- if (prevmode == 'server') {
- OC.dialogs.info(t('encryption', 'Please switch to your ownCloud client and change your encryption password to complete the conversion.'), t('encryption', 'switched to client side encryption'));
- }
- } else if (server) {
- if (prevmode == 'client') {
- OC.dialogs.form([{text:'Login password', name:'newpasswd', type:'password'},{text:'Encryption password used on the client', name:'oldpasswd', type:'password'}],t('encryption', 'Change encryption password to login password'), function(data) {
- $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'server', newpasswd: data[0].value, oldpasswd: data[1].value }, function(result) {
- if (result.status != 'success') {
- document.getElementById(prevmode+'_encryption').checked = true;
- OC.dialogs.alert(t('encryption', 'Please check your passwords and try again.'), t('encryption', 'Could not change your file encryption password to your login password'))
- } else {
- console.log("alles super");
- }
- }, true);
- });
- } else {
- $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'server' });
- }
- } else {
- $.post(OC.filePath('files_encryption', 'ajax', 'mode.php'), { mode: 'none' });
- }
- })
-})
\ No newline at end of file
diff --git a/apps/files_encryption/js/settings.js b/apps/files_encryption/js/settings.js
index 60563bde85..0be857bb73 100644
--- a/apps/files_encryption/js/settings.js
+++ b/apps/files_encryption/js/settings.js
@@ -9,38 +9,11 @@ $(document).ready(function(){
$('#encryption_blacklist').multiSelect({
oncheck:blackListChange,
onuncheck:blackListChange,
- createText:'...',
+ createText:'...'
});
function blackListChange(){
var blackList=$('#encryption_blacklist').val().join(',');
OC.AppConfig.setValue('files_encryption','type_blacklist',blackList);
}
-
- //TODO: Handle switch between client and server side encryption
- $('input[name=encryption_mode]').change(function(){
- var client=$('input[value="client"]:checked').val()
- ,server=$('input[value="server"]:checked').val()
- ,user=$('input[value="user"]:checked').val()
- ,none=$('input[value="none"]:checked').val()
- ,disable=false
- if (client) {
- OC.AppConfig.setValue('files_encryption','mode','client');
- disable = true;
- } else if (server) {
- OC.AppConfig.setValue('files_encryption','mode','server');
- disable = true;
- } else if (user) {
- OC.AppConfig.setValue('files_encryption','mode','user');
- disable = true;
- } else {
- OC.AppConfig.setValue('files_encryption','mode','none');
- }
- if (disable) {
- document.getElementById('server_encryption').disabled = true;
- document.getElementById('client_encryption').disabled = true;
- document.getElementById('user_encryption').disabled = true;
- document.getElementById('none_encryption').disabled = true;
- }
- })
})
\ No newline at end of file
diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php
index 608778b2ec..7d431e6e46 100644
--- a/apps/files_encryption/l10n/fr.php
+++ b/apps/files_encryption/l10n/fr.php
@@ -5,5 +5,8 @@
"Please check your passwords and try again." => "Veuillez vérifier vos mots de passe et réessayer.",
"Could not change your file encryption password to your login password" => "Impossible de convertir votre mot de passe de chiffrement en mot de passe de connexion",
"Encryption" => "Chiffrement",
+"File encryption is enabled." => "Le chiffrement des fichiers est activé",
+"The following file types will not be encrypted:" => "Les fichiers de types suivants ne seront pas chiffrés :",
+"Exclude the following file types from encryption:" => "Ne pas chiffrer les fichiers dont les types sont les suivants :",
"None" => "Aucun"
);
diff --git a/apps/files_encryption/l10n/ru.php b/apps/files_encryption/l10n/ru.php
index 19d09274c1..651885fe02 100644
--- a/apps/files_encryption/l10n/ru.php
+++ b/apps/files_encryption/l10n/ru.php
@@ -1,5 +1,6 @@
"Пожалуйста переключитесь на Ваш клиент ownCloud и поменяйте пароль шиврования для завершения преобразования.",
+"switched to client side encryption" => "переключён на шифрование со стороны клиента",
"Change encryption password to login password" => "Изменить пароль шифрования для пароля входа",
"Please check your passwords and try again." => "Пожалуйста проверьте пароли и попробуйте снова.",
"Could not change your file encryption password to your login password" => "Невозможно изменить Ваш пароль файла шифрования для пароля входа",
diff --git a/apps/files_encryption/l10n/sk_SK.php b/apps/files_encryption/l10n/sk_SK.php
index 3a1e4c7e19..dc2907e704 100644
--- a/apps/files_encryption/l10n/sk_SK.php
+++ b/apps/files_encryption/l10n/sk_SK.php
@@ -5,5 +5,8 @@
"Please check your passwords and try again." => "Skontrolujte si heslo a skúste to znovu.",
"Could not change your file encryption password to your login password" => "Nie je možné zmeniť šifrovacie heslo na prihlasovacie",
"Encryption" => "Šifrovanie",
+"File encryption is enabled." => "Kryptovanie súborov nastavené.",
+"The following file types will not be encrypted:" => "Uvedené typy súborov nebudú kryptované:",
+"Exclude the following file types from encryption:" => "Nekryptovať uvedené typy súborov",
"None" => "Žiadne"
);
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php
index d00f71b614..c7a414c508 100755
--- a/apps/files_encryption/lib/crypt.php
+++ b/apps/files_encryption/lib/crypt.php
@@ -4,8 +4,8 @@
* ownCloud
*
* @author Sam Tuke, Frank Karlitschek, Robin Appelman
- * @copyright 2012 Sam Tuke samtuke@owncloud.com,
- * Robin Appelman icewind@owncloud.com, Frank Karlitschek
+ * @copyright 2012 Sam Tuke samtuke@owncloud.com,
+ * Robin Appelman icewind@owncloud.com, Frank Karlitschek
* frank@owncloud.org
*
* This library is free software; you can redistribute it and/or
@@ -47,15 +47,15 @@ class Crypt {
public static function mode( $user = null ) {
return 'server';
-
+
}
-
- /**
- * @brief Create a new encryption keypair
- * @return array publicKey, privatekey
- */
+
+ /**
+ * @brief Create a new encryption keypair
+ * @return array publicKey, privatekey
+ */
public static function createKeypair() {
-
+
$res = openssl_pkey_new();
// Get private key
@@ -63,570 +63,543 @@ class Crypt {
// Get public key
$publicKey = openssl_pkey_get_details( $res );
-
+
$publicKey = $publicKey['key'];
-
+
return( array( 'publicKey' => $publicKey, 'privateKey' => $privateKey ) );
-
+
}
-
- /**
- * @brief Add arbitrary padding to encrypted data
- * @param string $data data to be padded
- * @return padded data
- * @note In order to end up with data exactly 8192 bytes long we must
- * add two letters. It is impossible to achieve exactly 8192 length
- * blocks with encryption alone, hence padding is added to achieve the
- * required length.
- */
+
+ /**
+ * @brief Add arbitrary padding to encrypted data
+ * @param string $data data to be padded
+ * @return padded data
+ * @note In order to end up with data exactly 8192 bytes long we must
+ * add two letters. It is impossible to achieve exactly 8192 length
+ * blocks with encryption alone, hence padding is added to achieve the
+ * required length.
+ */
public static function addPadding( $data ) {
-
+
$padded = $data . 'xx';
-
+
return $padded;
-
+
}
-
- /**
- * @brief Remove arbitrary padding to encrypted data
- * @param string $padded padded data to remove padding from
- * @return unpadded data on success, false on error
- */
+
+ /**
+ * @brief Remove arbitrary padding to encrypted data
+ * @param string $padded padded data to remove padding from
+ * @return unpadded data on success, false on error
+ */
public static function removePadding( $padded ) {
-
+
if ( substr( $padded, -2 ) == 'xx' ) {
-
+
$data = substr( $padded, 0, -2 );
-
+
return $data;
-
+
} else {
-
+
// TODO: log the fact that unpadded data was submitted for removal of padding
return false;
-
+
}
-
+
}
-
- /**
- * @brief Check if a file's contents contains an IV and is symmetrically encrypted
- * @return true / false
- * @note see also OCA\Encryption\Util->isEncryptedPath()
- */
+
+ /**
+ * @brief Check if a file's contents contains an IV and is symmetrically encrypted
+ * @return true / false
+ * @note see also OCA\Encryption\Util->isEncryptedPath()
+ */
public static function isCatfile( $content ) {
-
+
+ if ( !$content ) {
+
+ return false;
+
+ }
+
$noPadding = self::removePadding( $content );
-
+
// Fetch encryption metadata from end of file
$meta = substr( $noPadding, -22 );
-
+
// Fetch IV from end of file
$iv = substr( $meta, -16 );
-
+
// Fetch identifier from start of metadata
$identifier = substr( $meta, 0, 6 );
-
+
if ( $identifier == '00iv00') {
-
+
return true;
-
+
} else {
-
+
return false;
-
+
}
-
+
}
-
+
/**
* Check if a file is encrypted according to database file cache
* @param string $path
* @return bool
*/
public static function isEncryptedMeta( $path ) {
-
+
// TODO: Use DI to get \OC\Files\Filesystem out of here
-
+
// Fetch all file metadata from DB
$metadata = \OC\Files\Filesystem::getFileInfo( $path, '' );
-
+
// Return encryption status
return isset( $metadata['encrypted'] ) and ( bool )$metadata['encrypted'];
-
+
}
-
- /**
- * @brief Check if a file is encrypted via legacy system
- * @param string $relPath The path of the file, relative to user/data;
- * e.g. filename or /Docs/filename, NOT admin/files/filename
- * @return true / false
- */
+
+ /**
+ * @brief Check if a file is encrypted via legacy system
+ * @param string $relPath The path of the file, relative to user/data;
+ * e.g. filename or /Docs/filename, NOT admin/files/filename
+ * @return true / false
+ */
public static function isLegacyEncryptedContent( $data, $relPath ) {
-
+
// Fetch all file metadata from DB
$metadata = \OC\Files\Filesystem::getFileInfo( $relPath, '' );
-
+
// If a file is flagged with encryption in DB, but isn't a
// valid content + IV combination, it's probably using the
// legacy encryption system
- if (
- isset( $metadata['encrypted'] )
- and $metadata['encrypted'] === true
- and ! self::isCatfile( $data )
+ if (
+ isset( $metadata['encrypted'] )
+ and $metadata['encrypted'] === true
+ and ! self::isCatfile( $data )
) {
-
+
return true;
-
+
} else {
-
+
return false;
-
+
}
-
+
}
-
- /**
- * @brief Symmetrically encrypt a string
- * @returns encrypted file
- */
+
+ /**
+ * @brief Symmetrically encrypt a string
+ * @returns encrypted file
+ */
public static function encrypt( $plainContent, $iv, $passphrase = '' ) {
-
+
if ( $encryptedContent = openssl_encrypt( $plainContent, 'AES-128-CFB', $passphrase, false, $iv ) ) {
return $encryptedContent;
-
+
} else {
-
+
\OC_Log::write( 'Encryption library', 'Encryption (symmetric) of content failed', \OC_Log::ERROR );
-
+
return false;
-
+
}
-
+
}
-
- /**
- * @brief Symmetrically decrypt a string
- * @returns decrypted file
- */
+
+ /**
+ * @brief Symmetrically decrypt a string
+ * @returns decrypted file
+ */
public static function decrypt( $encryptedContent, $iv, $passphrase ) {
-
+
if ( $plainContent = openssl_decrypt( $encryptedContent, 'AES-128-CFB', $passphrase, false, $iv ) ) {
return $plainContent;
-
-
+
+
} else {
-
+
throw new \Exception( 'Encryption library: Decryption (symmetric) of content failed' );
-
- return false;
-
+
}
-
+
}
-
- /**
- * @brief Concatenate encrypted data with its IV and padding
- * @param string $content content to be concatenated
- * @param string $iv IV to be concatenated
- * @returns string concatenated content
- */
+
+ /**
+ * @brief Concatenate encrypted data with its IV and padding
+ * @param string $content content to be concatenated
+ * @param string $iv IV to be concatenated
+ * @returns string concatenated content
+ */
public static function concatIv ( $content, $iv ) {
-
+
$combined = $content . '00iv00' . $iv;
-
+
return $combined;
-
+
}
-
- /**
- * @brief Split concatenated data and IV into respective parts
- * @param string $catFile concatenated data to be split
- * @returns array keys: encrypted, iv
- */
+
+ /**
+ * @brief Split concatenated data and IV into respective parts
+ * @param string $catFile concatenated data to be split
+ * @returns array keys: encrypted, iv
+ */
public static function splitIv ( $catFile ) {
-
+
// Fetch encryption metadata from end of file
$meta = substr( $catFile, -22 );
-
+
// Fetch IV from end of file
$iv = substr( $meta, -16 );
-
+
// Remove IV and IV identifier text to expose encrypted content
$encrypted = substr( $catFile, 0, -22 );
-
+
$split = array(
'encrypted' => $encrypted
- , 'iv' => $iv
+ , 'iv' => $iv
);
-
+
return $split;
-
+
}
-
- /**
- * @brief Symmetrically encrypts a string and returns keyfile content
- * @param $plainContent content to be encrypted in keyfile
- * @returns encrypted content combined with IV
- * @note IV need not be specified, as it will be stored in the returned keyfile
- * and remain accessible therein.
- */
+
+ /**
+ * @brief Symmetrically encrypts a string and returns keyfile content
+ * @param $plainContent content to be encrypted in keyfile
+ * @returns encrypted content combined with IV
+ * @note IV need not be specified, as it will be stored in the returned keyfile
+ * and remain accessible therein.
+ */
public static function symmetricEncryptFileContent( $plainContent, $passphrase = '' ) {
-
+
if ( !$plainContent ) {
-
+
return false;
-
+
}
-
+
$iv = self::generateIv();
-
+
if ( $encryptedContent = self::encrypt( $plainContent, $iv, $passphrase ) ) {
-
- // Combine content to encrypt with IV identifier and actual IV
- $catfile = self::concatIv( $encryptedContent, $iv );
-
- $padded = self::addPadding( $catfile );
-
- return $padded;
-
+
+ // Combine content to encrypt with IV identifier and actual IV
+ $catfile = self::concatIv( $encryptedContent, $iv );
+
+ $padded = self::addPadding( $catfile );
+
+ return $padded;
+
} else {
-
+
\OC_Log::write( 'Encryption library', 'Encryption (symmetric) of keyfile content failed', \OC_Log::ERROR );
-
+
return false;
-
+
}
-
+
}
/**
- * @brief Symmetrically decrypts keyfile content
- * @param string $source
- * @param string $target
- * @param string $key the decryption key
- * @returns decrypted content
- *
- * This function decrypts a file
- */
+ * @brief Symmetrically decrypts keyfile content
+ * @param string $source
+ * @param string $target
+ * @param string $key the decryption key
+ * @returns decrypted content
+ *
+ * This function decrypts a file
+ */
public static function symmetricDecryptFileContent( $keyfileContent, $passphrase = '' ) {
-
+
if ( !$keyfileContent ) {
-
+
throw new \Exception( 'Encryption library: no data provided for decryption' );
-
+
}
-
+
// Remove padding
$noPadding = self::removePadding( $keyfileContent );
-
+
// Split into enc data and catfile
$catfile = self::splitIv( $noPadding );
-
+
if ( $plainContent = self::decrypt( $catfile['encrypted'], $catfile['iv'], $passphrase ) ) {
-
+
return $plainContent;
-
+
}
-
+
}
-
+
/**
- * @brief Creates symmetric keyfile content using a generated key
- * @param string $plainContent content to be encrypted
- * @returns array keys: key, encrypted
- * @note symmetricDecryptFileContent() can be used to decrypt files created using this method
- *
- * This function decrypts a file
- */
+ * @brief Creates symmetric keyfile content using a generated key
+ * @param string $plainContent content to be encrypted
+ * @returns array keys: key, encrypted
+ * @note symmetricDecryptFileContent() can be used to decrypt files created using this method
+ *
+ * This function decrypts a file
+ */
public static function symmetricEncryptFileContentKeyfile( $plainContent ) {
-
+
$key = self::generateKey();
-
+
if( $encryptedContent = self::symmetricEncryptFileContent( $plainContent, $key ) ) {
-
+
return array(
'key' => $key
- , 'encrypted' => $encryptedContent
+ , 'encrypted' => $encryptedContent
);
-
+
} else {
-
+
return false;
-
+
}
-
+
}
-
+
/**
- * @brief Create asymmetrically encrypted keyfile content using a generated key
- * @param string $plainContent content to be encrypted
- * @returns array keys: key, encrypted
- * @note symmetricDecryptFileContent() can be used to decrypt files created using this method
- *
- * This function decrypts a file
- */
+ * @brief Create asymmetrically encrypted keyfile content using a generated key
+ * @param string $plainContent content to be encrypted
+ * @returns array keys: key, encrypted
+ * @note symmetricDecryptFileContent() can be used to decrypt files created using this method
+ *
+ * This function decrypts a file
+ */
public static function multiKeyEncrypt( $plainContent, array $publicKeys ) {
-
+
// Set empty vars to be set by openssl by reference
$sealed = '';
$envKeys = array();
-
+
if( openssl_seal( $plainContent, $sealed, $envKeys, $publicKeys ) ) {
-
+
return array(
'keys' => $envKeys
- , 'encrypted' => $sealed
+ , 'encrypted' => $sealed
);
-
+
} else {
-
+
return false;
-
+
}
-
- }
-
- /**
- * @brief Asymmetrically encrypt a file using multiple public keys
- * @param string $plainContent content to be encrypted
- * @returns string $plainContent decrypted string
- * @note symmetricDecryptFileContent() can be used to decrypt files created using this method
- *
- * This function decrypts a file
- */
- public static function multiKeyDecrypt( $encryptedContent, $envKey, $privateKey ) {
-
- if ( !$encryptedContent ) {
-
- return false;
-
- }
-
- if ( openssl_open( $encryptedContent, $plainContent, $envKey, $privateKey ) ) {
-
- return $plainContent;
-
- } else {
-
- \OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed', \OC_Log::ERROR );
-
- return false;
-
- }
-
- }
-
- /**
- * @brief Asymetrically encrypt a string using a public key
- * @returns encrypted file
- */
- public static function keyEncrypt( $plainContent, $publicKey ) {
-
- openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey );
-
- return $encryptedContent;
-
- }
-
- /**
- * @brief Asymetrically decrypt a file using a private key
- * @returns decrypted file
- */
- public static function keyDecrypt( $encryptedContent, $privatekey ) {
-
- openssl_private_decrypt( $encryptedContent, $plainContent, $privatekey );
-
- return $plainContent;
-
+
}
- /**
- * @brief Encrypts content symmetrically and generates keyfile asymmetrically
- * @returns array containing catfile and new keyfile.
- * keys: data, key
- * @note this method is a wrapper for combining other crypt class methods
- */
+ /**
+ * @brief Asymmetrically encrypt a file using multiple public keys
+ * @param string $plainContent content to be encrypted
+ * @returns string $plainContent decrypted string
+ * @note symmetricDecryptFileContent() can be used to decrypt files created using this method
+ *
+ * This function decrypts a file
+ */
+ public static function multiKeyDecrypt( $encryptedContent, $envKey, $privateKey ) {
+
+ if ( !$encryptedContent ) {
+
+ return false;
+
+ }
+
+ if ( openssl_open( $encryptedContent, $plainContent, $envKey, $privateKey ) ) {
+
+ return $plainContent;
+
+ } else {
+
+ \OC_Log::write( 'Encryption library', 'Decryption (asymmetric) of sealed content failed', \OC_Log::ERROR );
+
+ return false;
+
+ }
+
+ }
+
+ /**
+ * @brief Asymmetrically encrypt a string using a public key
+ * @returns encrypted file
+ */
+ public static function keyEncrypt( $plainContent, $publicKey ) {
+
+ openssl_public_encrypt( $plainContent, $encryptedContent, $publicKey );
+
+ return $encryptedContent;
+
+ }
+
+ /**
+ * @brief Asymetrically decrypt a file using a private key
+ * @returns decrypted file
+ */
+ public static function keyDecrypt( $encryptedContent, $privatekey ) {
+
+ openssl_private_decrypt( $encryptedContent, $plainContent, $privatekey );
+
+ return $plainContent;
+
+ }
+
+ /**
+ * @brief Encrypts content symmetrically and generates keyfile asymmetrically
+ * @returns array containing catfile and new keyfile.
+ * keys: data, key
+ * @note this method is a wrapper for combining other crypt class methods
+ */
public static function keyEncryptKeyfile( $plainContent, $publicKey ) {
-
+
// Encrypt plain data, generate keyfile & encrypted file
$cryptedData = self::symmetricEncryptFileContentKeyfile( $plainContent );
-
+
// Encrypt keyfile
$cryptedKey = self::keyEncrypt( $cryptedData['key'], $publicKey );
-
+
return array( 'data' => $cryptedData['encrypted'], 'key' => $cryptedKey );
-
+
}
-
- /**
- * @brief Takes catfile, keyfile, and private key, and
- * performs decryption
- * @returns decrypted content
- * @note this method is a wrapper for combining other crypt class methods
- */
+
+ /**
+ * @brief Takes catfile, keyfile, and private key, and
+ * performs decryption
+ * @returns decrypted content
+ * @note this method is a wrapper for combining other crypt class methods
+ */
public static function keyDecryptKeyfile( $catfile, $keyfile, $privateKey ) {
-
+
// Decrypt the keyfile with the user's private key
$decryptedKeyfile = self::keyDecrypt( $keyfile, $privateKey );
-
+
// Decrypt the catfile symmetrically using the decrypted keyfile
$decryptedData = self::symmetricDecryptFileContent( $catfile, $decryptedKeyfile );
-
+
return $decryptedData;
-
+
}
-
+
/**
- * @brief Symmetrically encrypt a file by combining encrypted component data blocks
- */
+ * @brief Symmetrically encrypt a file by combining encrypted component data blocks
+ */
public static function symmetricBlockEncryptFileContent( $plainContent, $key ) {
-
+
$crypted = '';
-
+
$remaining = $plainContent;
-
+
$testarray = array();
-
+
while( strlen( $remaining ) ) {
-
+
//echo "\n\n\$block = ".substr( $remaining, 0, 6126 );
-
+
// Encrypt a chunk of unencrypted data and add it to the rest
$block = self::symmetricEncryptFileContent( substr( $remaining, 0, 6126 ), $key );
-
+
$padded = self::addPadding( $block );
-
+
$crypted .= $block;
-
+
$testarray[] = $block;
-
+
// Remove the data already encrypted from remaining unencrypted data
$remaining = substr( $remaining, 6126 );
-
+
}
-
- //echo "hags ";
-
- //echo "\n\n\n\$crypted = $crypted\n\n\n";
-
- //print_r($testarray);
-
+
return $crypted;
}
/**
- * @brief Symmetrically decrypt a file by combining encrypted component data blocks
- */
+ * @brief Symmetrically decrypt a file by combining encrypted component data blocks
+ */
public static function symmetricBlockDecryptFileContent( $crypted, $key ) {
-
+
$decrypted = '';
-
+
$remaining = $crypted;
-
+
$testarray = array();
-
+
while( strlen( $remaining ) ) {
-
+
$testarray[] = substr( $remaining, 0, 8192 );
-
+
// Decrypt a chunk of unencrypted data and add it to the rest
$decrypted .= self::symmetricDecryptFileContent( $remaining, $key );
-
+
// Remove the data already encrypted from remaining unencrypted data
$remaining = substr( $remaining, 8192 );
-
+
}
-
- //echo "\n\n\$testarray = "; print_r($testarray);
-
+
return $decrypted;
-
+
}
-
- /**
- * @brief Generates a pseudo random initialisation vector
- * @return String $iv generated IV
- */
+
+ /**
+ * @brief Generates a pseudo random initialisation vector
+ * @return String $iv generated IV
+ */
public static function generateIv() {
-
+
if ( $random = openssl_random_pseudo_bytes( 12, $strong ) ) {
-
+
if ( !$strong ) {
-
+
// If OpenSSL indicates randomness is insecure, log error
\OC_Log::write( 'Encryption library', 'Insecure symmetric key was generated using openssl_random_pseudo_bytes()', \OC_Log::WARN );
-
+
}
-
+
// We encode the iv purely for string manipulation
// purposes - it gets decoded before use
$iv = base64_encode( $random );
-
+
return $iv;
-
+
} else {
-
- throw new Exception( 'Generating IV failed' );
-
+
+ throw new \Exception( 'Generating IV failed' );
+
}
-
+
}
-
- /**
- * @brief Generate a pseudo random 1024kb ASCII key
- * @returns $key Generated key
- */
+
+ /**
+ * @brief Generate a pseudo random 1024kb ASCII key
+ * @returns $key Generated key
+ */
public static function generateKey() {
-
+
// Generate key
if ( $key = base64_encode( openssl_random_pseudo_bytes( 183, $strong ) ) ) {
-
+
if ( !$strong ) {
-
+
// If OpenSSL indicates randomness is insecure, log error
- throw new Exception ( 'Encryption library, Insecure symmetric key was generated using openssl_random_pseudo_bytes()' );
-
+ throw new \Exception ( 'Encryption library, Insecure symmetric key was generated using openssl_random_pseudo_bytes()' );
+
}
-
+
return $key;
-
+
} else {
-
+
return false;
-
+
}
-
+
}
- public static function changekeypasscode( $oldPassword, $newPassword ) {
-
- if ( \OCP\User::isLoggedIn() ) {
-
- $key = Keymanager::getPrivateKey( $user, $view );
-
- if ( ( $key = Crypt::symmetricDecryptFileContent($key,$oldpasswd) ) ) {
-
- if ( ( $key = Crypt::symmetricEncryptFileContent( $key, $newpasswd ) ) ) {
-
- Keymanager::setPrivateKey( $key );
-
- return true;
- }
-
- }
-
- }
-
- return false;
-
- }
-
/**
* @brief Get the blowfish encryption handeler for a key
* @param $key string (optional)
@@ -635,21 +608,21 @@ class Crypt {
* if the key is left out, the default handeler will be used
*/
public static function getBlowfish( $key = '' ) {
-
+
if ( $key ) {
-
+
return new \Crypt_Blowfish( $key );
-
+
} else {
-
+
return false;
-
+
}
-
+
}
-
+
public static function legacyCreateKey( $passphrase ) {
-
+
// Generate a random integer
$key = mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 ) . mt_rand( 10000, 99999 );
@@ -657,9 +630,9 @@ class Crypt {
$legacyEncKey = self::legacyEncrypt( $key, $passphrase );
return $legacyEncKey;
-
+
}
-
+
/**
* @brief encrypts content using legacy blowfish system
* @param $content the cleartext message you want to encrypt
@@ -669,54 +642,54 @@ class Crypt {
* This function encrypts an content
*/
public static function legacyEncrypt( $content, $passphrase = '' ) {
-
+
$bf = self::getBlowfish( $passphrase );
-
+
return $bf->encrypt( $content );
-
+
}
-
+
/**
- * @brief decrypts content using legacy blowfish system
- * @param $content the cleartext message you want to decrypt
- * @param $key the encryption key (optional)
- * @returns cleartext content
- *
- * This function decrypts an content
- */
+ * @brief decrypts content using legacy blowfish system
+ * @param $content the cleartext message you want to decrypt
+ * @param $key the encryption key (optional)
+ * @returns cleartext content
+ *
+ * This function decrypts an content
+ */
public static function legacyDecrypt( $content, $passphrase = '' ) {
-
+
$bf = self::getBlowfish( $passphrase );
-
+
$decrypted = $bf->decrypt( $content );
-
+
$trimmed = rtrim( $decrypted, "\0" );
-
+
return $trimmed;
-
+
}
-
+
public static function legacyKeyRecryptKeyfile( $legacyEncryptedContent, $legacyPassphrase, $publicKey, $newPassphrase ) {
-
+
$decrypted = self::legacyDecrypt( $legacyEncryptedContent, $legacyPassphrase );
-
+
$recrypted = self::keyEncryptKeyfile( $decrypted, $publicKey );
-
+
return $recrypted;
-
+
}
-
+
/**
- * @brief Re-encryptes a legacy blowfish encrypted file using AES with integrated IV
- * @param $legacyContent the legacy encrypted content to re-encrypt
- * @returns cleartext content
- *
- * This function decrypts an content
- */
+ * @brief Re-encryptes a legacy blowfish encrypted file using AES with integrated IV
+ * @param $legacyContent the legacy encrypted content to re-encrypt
+ * @returns cleartext content
+ *
+ * This function decrypts an content
+ */
public static function legacyRecrypt( $legacyContent, $legacyPassphrase, $newPassphrase ) {
-
+
// TODO: write me
-
+
}
-
+
}
\ No newline at end of file
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index 43af70dacc..9558779715 100755
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -1,325 +1,323 @@
-
- *
- * 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
- * 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
- * License along with this library. If not, see .
- *
- */
-
-namespace OCA\Encryption;
-
-/**
- * @brief Class to manage storage and retrieval of encryption keys
- * @note Where a method requires a view object, it's root must be '/'
- */
-class Keymanager {
-
- /**
- * @brief retrieve the ENCRYPTED private key from a user
- *
- * @return string private key or false
- * @note the key returned by this method must be decrypted before use
- */
- public static function getPrivateKey( \OC_FilesystemView $view, $user ) {
-
- $path = '/' . $user . '/' . 'files_encryption' . '/' . $user.'.private.key';
-
- $key = $view->file_get_contents( $path );
-
- return $key;
- }
-
- /**
- * @brief retrieve public key for a specified user
- * @return string public key or false
- */
- public static function getPublicKey( \OC_FilesystemView $view, $userId ) {
-
- return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' );
-
- }
-
- /**
- * @brief retrieve both keys from a user (private and public)
- * @return array keys: privateKey, publicKey
- */
- public static function getUserKeys( \OC_FilesystemView $view, $userId ) {
-
- return array(
- 'publicKey' => self::getPublicKey( $view, $userId )
- , 'privateKey' => self::getPrivateKey( $view, $userId )
- );
-
- }
-
- /**
- * @brief Retrieve public keys of all users with access to a file
- * @param string $path Path to file
- * @return array of public keys for the given file
- * @note Checks that the sharing app is enabled should be performed
- * by client code, that isn't checked here
- */
- public static function getPublicKeys( \OC_FilesystemView $view, $userId, $filePath ) {
-
- $path = ltrim( $path, '/' );
-
- $filepath = '/' . $userId . '/files/' . $filePath;
-
- // Check if sharing is enabled
- if ( OC_App::isEnabled( 'files_sharing' ) ) {
-
-
-
- } else {
-
- // check if it is a file owned by the user and not shared at all
- $userview = new \OC_FilesystemView( '/'.$userId.'/files/' );
-
- if ( $userview->file_exists( $path ) ) {
-
- $users[] = $userId;
-
- }
-
- }
-
- $view = new \OC_FilesystemView( '/public-keys/' );
-
- $keylist = array();
-
- $count = 0;
-
- foreach ( $users as $user ) {
-
- $keylist['key'.++$count] = $view->file_get_contents( $user.'.public.key' );
-
- }
-
- return $keylist;
-
- }
-
- /**
- * @brief store file encryption key
- *
- * @param string $path relative path of the file, including filename
- * @param string $key
- * @return bool true/false
- * @note The keyfile is not encrypted here. Client code must
- * asymmetrically encrypt the keyfile before passing it to this method
- */
- public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) {
-
- $basePath = '/' . $userId . '/files_encryption/keyfiles';
-
- $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId );
-
- if ( $view->is_dir( $basePath . '/' . $targetPath ) ) {
-
-
-
- } else {
-
- // Save the keyfile in parallel directory
- return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile );
-
- }
-
- }
-
- /**
- * @brief retrieve keyfile for an encrypted file
- * @param string file name
- * @return string file key or false on failure
- * @note The keyfile returned is asymmetrically encrypted. Decryption
- * of the keyfile must be performed by client code
- */
- public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) {
-
- $filePath_f = ltrim( $filePath, '/' );
-
- $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key';
-
- if ( $view->file_exists( $catfilePath ) ) {
-
- return $view->file_get_contents( $catfilePath );
-
- } else {
-
- return false;
-
- }
-
- }
-
- /**
- * @brief Delete a keyfile
- *
- * @param OC_FilesystemView $view
- * @param string $userId username
- * @param string $path path of the file the key belongs to
- * @return bool Outcome of unlink operation
- * @note $path must be relative to data/user/files. e.g. mydoc.txt NOT
- * /data/admin/files/mydoc.txt
- */
- public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) {
-
- $trimmed = ltrim( $path, '/' );
- $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key';
-
- // Unlink doesn't tell us if file was deleted (not found returns
- // true), so we perform our own test
- if ( $view->file_exists( $keyPath ) ) {
-
- return $view->unlink( $keyPath );
-
- } else {
-
- \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR );
-
- return false;
-
- }
-
- }
-
- /**
- * @brief store private key from the user
- * @param string key
- * @return bool
- * @note Encryption of the private key must be performed by client code
- * as no encryption takes place here
- */
- public static function setPrivateKey( $key ) {
-
- $user = \OCP\User::getUser();
-
- $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' );
-
- \OC_FileProxy::$enabled = false;
-
- if ( !$view->file_exists( '' ) ) $view->mkdir( '' );
-
- return $view->file_put_contents( $user . '.private.key', $key );
-
- \OC_FileProxy::$enabled = true;
-
- }
-
- /**
- * @brief store private keys from the user
- *
- * @param string privatekey
- * @param string publickey
- * @return bool true/false
- */
- public static function setUserKeys($privatekey, $publickey) {
-
- return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) );
-
- }
-
- /**
- * @brief store public key of the user
- *
- * @param string key
- * @return bool true/false
- */
- public static function setPublicKey( $key ) {
-
- $view = new \OC_FilesystemView( '/public-keys' );
-
- \OC_FileProxy::$enabled = false;
-
- if ( !$view->file_exists( '' ) ) $view->mkdir( '' );
-
- return $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key );
-
- \OC_FileProxy::$enabled = true;
-
- }
-
- /**
- * @note 'shareKey' is a more user-friendly name for env_key
- */
- public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) {
-
- $basePath = '/' . $userId . '/files_encryption/share-keys';
-
- $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId );
-
- return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey );
-
- }
-
- /**
- * @brief Make preparations to vars and filesystem for saving a keyfile
- */
- public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) {
-
- $targetPath = ltrim( $path, '/' );
-
- $path_parts = pathinfo( $targetPath );
-
- // If the file resides within a subdirectory, create it
- if (
- isset( $path_parts['dirname'] )
- && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] )
- ) {
-
- $view->mkdir( $basePath . '/' . $path_parts['dirname'] );
-
- }
-
- return $targetPath;
-
- }
-
- /**
- * @brief change password of private encryption key
- *
- * @param string $oldpasswd old password
- * @param string $newpasswd new password
- * @return bool true/false
- */
- public static function changePasswd($oldpasswd, $newpasswd) {
-
- if ( \OCP\User::checkPassword(\OCP\User::getUser(), $newpasswd) ) {
- return Crypt::changekeypasscode($oldpasswd, $newpasswd);
- }
- return false;
-
- }
-
- /**
- * @brief Fetch the legacy encryption key from user files
- * @param string $login used to locate the legacy key
- * @param string $passphrase used to decrypt the legacy key
- * @return true / false
- *
- * if the key is left out, the default handeler will be used
- */
- public function getLegacyKey() {
-
- $user = \OCP\User::getUser();
- $view = new \OC_FilesystemView( '/' . $user );
- return $view->file_get_contents( 'encryption.key' );
-
- }
-
+
+ *
+ * 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
+ * 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
+ * License along with this library. If not, see .
+ *
+ */
+
+namespace OCA\Encryption;
+
+/**
+ * @brief Class to manage storage and retrieval of encryption keys
+ * @note Where a method requires a view object, it's root must be '/'
+ */
+class Keymanager {
+
+ /**
+ * @brief retrieve the ENCRYPTED private key from a user
+ *
+ * @return string private key or false
+ * @note the key returned by this method must be decrypted before use
+ */
+ public static function getPrivateKey( \OC_FilesystemView $view, $user ) {
+
+ $path = '/' . $user . '/' . 'files_encryption' . '/' . $user.'.private.key';
+
+ $key = $view->file_get_contents( $path );
+
+ return $key;
+ }
+
+ /**
+ * @brief retrieve public key for a specified user
+ * @param \OC_FilesystemView $view
+ * @param $userId
+ * @return string public key or false
+ */
+ public static function getPublicKey( \OC_FilesystemView $view, $userId ) {
+
+ return $view->file_get_contents( '/public-keys/' . '/' . $userId . '.public.key' );
+
+ }
+
+ /**
+ * @brief retrieve both keys from a user (private and public)
+ * @param \OC_FilesystemView $view
+ * @param $userId
+ * @return array keys: privateKey, publicKey
+ */
+ public static function getUserKeys( \OC_FilesystemView $view, $userId ) {
+
+ return array(
+ 'publicKey' => self::getPublicKey( $view, $userId )
+ , 'privateKey' => self::getPrivateKey( $view, $userId )
+ );
+
+ }
+
+ /**
+ * @brief Retrieve public keys of all users with access to a file
+ * @param string $path Path to file
+ * @return array of public keys for the given file
+ * @note Checks that the sharing app is enabled should be performed
+ * by client code, that isn't checked here
+ */
+ public static function getPublicKeys( \OC_FilesystemView $view, $userId, $filePath ) {
+
+ $path = ltrim( $path, '/' );
+
+ $filepath = '/' . $userId . '/files/' . $filePath;
+
+ // Check if sharing is enabled
+ if ( OC_App::isEnabled( 'files_sharing' ) ) {
+
+
+
+ } else {
+
+ // check if it is a file owned by the user and not shared at all
+ $userview = new \OC_FilesystemView( '/'.$userId.'/files/' );
+
+ if ( $userview->file_exists( $path ) ) {
+
+ $users[] = $userId;
+
+ }
+
+ }
+
+ $view = new \OC_FilesystemView( '/public-keys/' );
+
+ $keylist = array();
+
+ $count = 0;
+
+ foreach ( $users as $user ) {
+
+ $keylist['key'.++$count] = $view->file_get_contents( $user.'.public.key' );
+
+ }
+
+ return $keylist;
+
+ }
+
+ /**
+ * @brief store file encryption key
+ *
+ * @param string $path relative path of the file, including filename
+ * @param string $key
+ * @return bool true/false
+ * @note The keyfile is not encrypted here. Client code must
+ * asymmetrically encrypt the keyfile before passing it to this method
+ */
+ public static function setFileKey( \OC_FilesystemView $view, $path, $userId, $catfile ) {
+
+ $basePath = '/' . $userId . '/files_encryption/keyfiles';
+
+ $targetPath = self::keySetPreparation( $view, $path, $basePath, $userId );
+
+ if ( $view->is_dir( $basePath . '/' . $targetPath ) ) {
+
+
+
+ } else {
+
+ // Save the keyfile in parallel directory
+ return $view->file_put_contents( $basePath . '/' . $targetPath . '.key', $catfile );
+
+ }
+
+ }
+
+ /**
+ * @brief retrieve keyfile for an encrypted file
+ * @param \OC_FilesystemView $view
+ * @param $userId
+ * @param $filePath
+ * @internal param \OCA\Encryption\file $string name
+ * @return string file key or false
+ * @note The keyfile returned is asymmetrically encrypted. Decryption
+ * of the keyfile must be performed by client code
+ */
+ public static function getFileKey( \OC_FilesystemView $view, $userId, $filePath ) {
+
+ $filePath_f = ltrim( $filePath, '/' );
+
+ $catfilePath = '/' . $userId . '/files_encryption/keyfiles/' . $filePath_f . '.key';
+
+ if ( $view->file_exists( $catfilePath ) ) {
+
+ return $view->file_get_contents( $catfilePath );
+
+ } else {
+
+ return false;
+
+ }
+
+ }
+
+ /**
+ * @brief Delete a keyfile
+ *
+ * @param OC_FilesystemView $view
+ * @param string $userId username
+ * @param string $path path of the file the key belongs to
+ * @return bool Outcome of unlink operation
+ * @note $path must be relative to data/user/files. e.g. mydoc.txt NOT
+ * /data/admin/files/mydoc.txt
+ */
+ public static function deleteFileKey( \OC_FilesystemView $view, $userId, $path ) {
+
+ $trimmed = ltrim( $path, '/' );
+ $keyPath = '/' . $userId . '/files_encryption/keyfiles/' . $trimmed . '.key';
+
+ // Unlink doesn't tell us if file was deleted (not found returns
+ // true), so we perform our own test
+ if ( $view->file_exists( $keyPath ) ) {
+
+ return $view->unlink( $keyPath );
+
+ } else {
+
+ \OC_Log::write( 'Encryption library', 'Could not delete keyfile; does not exist: "' . $keyPath, \OC_Log::ERROR );
+
+ return false;
+
+ }
+
+ }
+
+ /**
+ * @brief store private key from the user
+ * @param string key
+ * @return bool
+ * @note Encryption of the private key must be performed by client code
+ * as no encryption takes place here
+ */
+ public static function setPrivateKey( $key ) {
+
+ $user = \OCP\User::getUser();
+
+ $view = new \OC_FilesystemView( '/' . $user . '/files_encryption' );
+
+ \OC_FileProxy::$enabled = false;
+
+ if ( !$view->file_exists( '' ) )
+ $view->mkdir( '' );
+
+ return $view->file_put_contents( $user . '.private.key', $key );
+
+ }
+
+ /**
+ * @brief store private keys from the user
+ *
+ * @param string privatekey
+ * @param string publickey
+ * @return bool true/false
+ */
+ public static function setUserKeys($privatekey, $publickey) {
+
+ return ( self::setPrivateKey( $privatekey ) && self::setPublicKey( $publickey ) );
+
+ }
+
+ /**
+ * @brief store public key of the user
+ *
+ * @param string key
+ * @return bool true/false
+ */
+ public static function setPublicKey( $key ) {
+
+ $view = new \OC_FilesystemView( '/public-keys' );
+
+ \OC_FileProxy::$enabled = false;
+
+ if ( !$view->file_exists( '' ) )
+ $view->mkdir( '' );
+
+ return $view->file_put_contents( \OCP\User::getUser() . '.public.key', $key );
+
+
+ }
+
+ /**
+ * @brief store file encryption key
+ *
+ * @param string $path relative path of the file, including filename
+ * @param string $key
+ * @param null $view
+ * @param string $dbClassName
+ * @return bool true/false
+ * @note The keyfile is not encrypted here. Client code must
+ * asymmetrically encrypt the keyfile before passing it to this method
+ */
+ public static function setShareKey( \OC_FilesystemView $view, $path, $userId, $shareKey ) {
+
+ $basePath = '/' . $userId . '/files_encryption/share-keys';
+
+ $shareKeyPath = self::keySetPreparation( $view, $path, $basePath, $userId );
+
+ return $view->file_put_contents( $basePath . '/' . $shareKeyPath . '.shareKey', $shareKey );
+
+ }
+
+ /**
+ * @brief Make preparations to vars and filesystem for saving a keyfile
+ */
+ public static function keySetPreparation( \OC_FilesystemView $view, $path, $basePath, $userId ) {
+
+ $targetPath = ltrim( $path, '/' );
+
+ $path_parts = pathinfo( $targetPath );
+
+ // If the file resides within a subdirectory, create it
+ if (
+ isset( $path_parts['dirname'] )
+ && ! $view->file_exists( $basePath . '/' . $path_parts['dirname'] )
+ ) {
+
+ $view->mkdir( $basePath . '/' . $path_parts['dirname'] );
+
+ }
+
+ return $targetPath;
+
+ }
+
+ /**
+ * @brief Fetch the legacy encryption key from user files
+ * @param string $login used to locate the legacy key
+ * @param string $passphrase used to decrypt the legacy key
+ * @return true / false
+ *
+ * if the key is left out, the default handler will be used
+ */
+ public function getLegacyKey() {
+
+ $user = \OCP\User::getUser();
+ $view = new \OC_FilesystemView( '/' . $user );
+ return $view->file_get_contents( 'encryption.key' );
+
+ }
+
}
\ No newline at end of file
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index d4b993b4c0..65d7d57a05 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -173,7 +173,7 @@ class Stream {
// $count will always be 8192 https://bugs.php.net/bug.php?id=21641
// This makes this function a lot simpler, but will break this class if the above 'bug' gets 'fixed'
- \OCP\Util::writeLog( 'files_encryption', 'PHP "bug" 21641 no longer holds, decryption system requires refactoring', OCP\Util::FATAL );
+ \OCP\Util::writeLog( 'files_encryption', 'PHP "bug" 21641 no longer holds, decryption system requires refactoring', \OCP\Util::FATAL );
die();
@@ -209,7 +209,7 @@ class Stream {
}
/**
- * @brief Encrypt and pad data ready for writting to disk
+ * @brief Encrypt and pad data ready for writing to disk
* @param string $plainData data to be encrypted
* @param string $key key to use for encryption
* @return encrypted data on success, false on failure
@@ -403,7 +403,7 @@ class Stream {
$encrypted = $this->preWriteEncrypt( $chunk, $this->keyfile );
// Write the data chunk to disk. This will be
- // addended to the last data chunk if the file
+ // attended to the last data chunk if the file
// being handled totals more than 6126 bytes
fwrite( $this->handle, $encrypted );
diff --git a/apps/files_encryption/settings-personal.php b/apps/files_encryption/settings-personal.php
index 6fe4ea6d56..af0273cfdc 100644
--- a/apps/files_encryption/settings-personal.php
+++ b/apps/files_encryption/settings-personal.php
@@ -12,8 +12,6 @@ $blackList = explode( ',', \OCP\Config::getAppValue( 'files_encryption', 'type_b
$tmpl->assign( 'blacklist', $blackList );
-OCP\Util::addscript('files_encryption','settings-personal');
-
return $tmpl->fetchPage();
return null;
diff --git a/apps/files_encryption/templates/settings-personal.php b/apps/files_encryption/templates/settings-personal.php
index 1f71efb173..47467c52c0 100644
--- a/apps/files_encryption/templates/settings-personal.php
+++ b/apps/files_encryption/templates/settings-personal.php
@@ -16,7 +16,7 @@
-
+
diff --git a/apps/files_trashbin/l10n/ca.php b/apps/files_trashbin/l10n/ca.php
index e5e0ae3492..803b0c81ef 100644
--- a/apps/files_trashbin/l10n/ca.php
+++ b/apps/files_trashbin/l10n/ca.php
@@ -1,4 +1,6 @@
"No s'ha pogut esborrar permanentment %s",
+"Couldn't restore %s" => "No s'ha pogut restaurar %s",
"perform restore operation" => "executa l'operació de restauració",
"delete file permanently" => "esborra el fitxer permanentment",
"Name" => "Nom",
diff --git a/apps/files_trashbin/l10n/cs_CZ.php b/apps/files_trashbin/l10n/cs_CZ.php
index 2f88f3ae4c..eeb27784d3 100644
--- a/apps/files_trashbin/l10n/cs_CZ.php
+++ b/apps/files_trashbin/l10n/cs_CZ.php
@@ -1,4 +1,6 @@
"Nelze trvale odstranit %s",
+"Couldn't restore %s" => "Nelze obnovit %s",
"perform restore operation" => "provést obnovu",
"delete file permanently" => "trvale odstranit soubor",
"Name" => "Název",
diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php
index b191ffc424..c14b977647 100644
--- a/apps/files_trashbin/l10n/es.php
+++ b/apps/files_trashbin/l10n/es.php
@@ -1,5 +1,8 @@
"No se puede eliminar %s permanentemente",
+"Couldn't restore %s" => "No se puede restaurar %s",
"perform restore operation" => "Restaurar",
+"delete file permanently" => "Eliminar archivo permanentemente",
"Name" => "Nombre",
"Deleted" => "Eliminado",
"1 folder" => "1 carpeta",
diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php
index 51ade82d90..609b2fa9bd 100644
--- a/apps/files_trashbin/l10n/fr.php
+++ b/apps/files_trashbin/l10n/fr.php
@@ -1,5 +1,8 @@
"Impossible d'effacer %s de façon permanente",
+"Couldn't restore %s" => "Impossible de restaurer %s",
"perform restore operation" => "effectuer l'opération de restauration",
+"delete file permanently" => "effacer définitivement le fichier",
"Name" => "Nom",
"Deleted" => "Effacé",
"1 folder" => "1 dossier",
diff --git a/apps/files_trashbin/l10n/it.php b/apps/files_trashbin/l10n/it.php
index cf8b981938..8627682d08 100644
--- a/apps/files_trashbin/l10n/it.php
+++ b/apps/files_trashbin/l10n/it.php
@@ -1,4 +1,6 @@
"Impossibile eliminare %s definitivamente",
+"Couldn't restore %s" => "Impossibile ripristinare %s",
"perform restore operation" => "esegui operazione di ripristino",
"delete file permanently" => "elimina il file definitivamente",
"Name" => "Nome",
diff --git a/apps/files_trashbin/l10n/ja_JP.php b/apps/files_trashbin/l10n/ja_JP.php
index 13e704f05a..2bccf3f3bd 100644
--- a/apps/files_trashbin/l10n/ja_JP.php
+++ b/apps/files_trashbin/l10n/ja_JP.php
@@ -1,4 +1,6 @@
"%s を完全に削除出来ませんでした",
+"Couldn't restore %s" => "%s を復元出来ませんでした",
"perform restore operation" => "復元操作を実行する",
"delete file permanently" => "ファイルを完全に削除する",
"Name" => "名前",
diff --git a/apps/files_trashbin/l10n/lv.php b/apps/files_trashbin/l10n/lv.php
index f08a4780c2..5ecb99b989 100644
--- a/apps/files_trashbin/l10n/lv.php
+++ b/apps/files_trashbin/l10n/lv.php
@@ -1,4 +1,6 @@
"Nevarēja pilnībā izdzēst %s",
+"Couldn't restore %s" => "Nevarēja atjaunot %s",
"perform restore operation" => "veikt atjaunošanu",
"delete file permanently" => "dzēst datni pavisam",
"Name" => "Nosaukums",
diff --git a/apps/files_trashbin/l10n/ru.php b/apps/files_trashbin/l10n/ru.php
index 14d807ec62..f6c85a6800 100644
--- a/apps/files_trashbin/l10n/ru.php
+++ b/apps/files_trashbin/l10n/ru.php
@@ -1,4 +1,6 @@
"%s не может быть удалён навсегда",
+"Couldn't restore %s" => "%s не может быть восстановлен",
"perform restore operation" => "выполнить операцию восстановления",
"delete file permanently" => "удалить файл навсегда",
"Name" => "Имя",
diff --git a/apps/files_trashbin/l10n/ru_RU.php b/apps/files_trashbin/l10n/ru_RU.php
index 8ef2658cf2..c5b1408e2c 100644
--- a/apps/files_trashbin/l10n/ru_RU.php
+++ b/apps/files_trashbin/l10n/ru_RU.php
@@ -3,5 +3,6 @@
"1 folder" => "1 папка",
"{count} folders" => "{количество} папок",
"1 file" => "1 файл",
-"{count} files" => "{количество} файлов"
+"{count} files" => "{количество} файлов",
+"Restore" => "Восстановить"
);
diff --git a/apps/files_trashbin/l10n/sk_SK.php b/apps/files_trashbin/l10n/sk_SK.php
index 81d43614d7..759850783e 100644
--- a/apps/files_trashbin/l10n/sk_SK.php
+++ b/apps/files_trashbin/l10n/sk_SK.php
@@ -1,5 +1,7 @@
"Nemožno obnoviť %s",
"perform restore operation" => "vykonať obnovu",
+"delete file permanently" => "trvalo zmazať súbor",
"Name" => "Meno",
"Deleted" => "Zmazané",
"1 folder" => "1 priečinok",
diff --git a/apps/files_versions/l10n/ca.php b/apps/files_versions/l10n/ca.php
index 01e0a11687..fc900c47dc 100644
--- a/apps/files_versions/l10n/ca.php
+++ b/apps/files_versions/l10n/ca.php
@@ -1,5 +1,13 @@
"No s'ha pogut revertir: %s",
+"success" => "èxit",
+"File %s was reverted to version %s" => "El fitxer %s s'ha revertit a la versió %s",
+"failure" => "fallada",
+"File %s could not be reverted to version %s" => "El fitxer %s no s'ha pogut revertir a la versió %s",
+"No old versions available" => "No hi ha versións antigues disponibles",
+"No path specified" => "No heu especificat el camí",
"History" => "Historial",
+"Revert a file to a previous version by clicking on its revert button" => "Reverteix un fitxer a una versió anterior fent clic en el seu botó de reverteix",
"Files Versioning" => "Fitxers de Versions",
"Enable" => "Habilita"
);
diff --git a/apps/files_versions/l10n/cs_CZ.php b/apps/files_versions/l10n/cs_CZ.php
index d219c3e68d..22d4a2ad82 100644
--- a/apps/files_versions/l10n/cs_CZ.php
+++ b/apps/files_versions/l10n/cs_CZ.php
@@ -1,5 +1,13 @@
"Nelze navrátit: %s",
+"success" => "úspěch",
+"File %s was reverted to version %s" => "Soubor %s byl navrácen na verzi %s",
+"failure" => "sehlhání",
+"File %s could not be reverted to version %s" => "Soubor %s nemohl být navrácen na verzi %s",
+"No old versions available" => "Nejsou dostupné žádné starší verze",
+"No path specified" => "Nezadána cesta",
"History" => "Historie",
+"Revert a file to a previous version by clicking on its revert button" => "Navraťte soubor do předchozí verze kliknutím na tlačítko navrátit",
"Files Versioning" => "Verzování souborů",
"Enable" => "Povolit"
);
diff --git a/apps/files_versions/l10n/de_DE.php b/apps/files_versions/l10n/de_DE.php
index 2fcb996de7..cf33bb071e 100644
--- a/apps/files_versions/l10n/de_DE.php
+++ b/apps/files_versions/l10n/de_DE.php
@@ -1,4 +1,8 @@
"Erfolgreich",
+"failure" => "Fehlgeschlagen",
+"No old versions available" => "keine älteren Versionen verfügbar",
+"No path specified" => "Kein Pfad angegeben",
"History" => "Historie",
"Files Versioning" => "Dateiversionierung",
"Enable" => "Aktivieren"
diff --git a/apps/files_versions/l10n/es.php b/apps/files_versions/l10n/es.php
index 4a8c34e518..608e171a4b 100644
--- a/apps/files_versions/l10n/es.php
+++ b/apps/files_versions/l10n/es.php
@@ -1,5 +1,13 @@
"No se puede revertir: %s",
+"success" => "exitoso",
+"File %s was reverted to version %s" => "El archivo %s fue revertido a la version %s",
+"failure" => "fallo",
+"File %s could not be reverted to version %s" => "El archivo %s no puede ser revertido a la version %s",
+"No old versions available" => "No hay versiones antiguas disponibles",
+"No path specified" => "Ruta no especificada",
"History" => "Historial",
+"Revert a file to a previous version by clicking on its revert button" => "Revertir un archivo a una versión anterior haciendo clic en el boton de revertir",
"Files Versioning" => "Versionado de archivos",
"Enable" => "Habilitar"
);
diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php
index 2d26b98860..6b2cf9ba6b 100644
--- a/apps/files_versions/l10n/fr.php
+++ b/apps/files_versions/l10n/fr.php
@@ -1,5 +1,13 @@
"Impossible de restaurer %s",
+"success" => "succès",
+"File %s was reverted to version %s" => "Le fichier %s a été restauré dans sa version %s",
+"failure" => "échec",
+"File %s could not be reverted to version %s" => "Le fichier %s ne peut être restauré dans sa version %s",
+"No old versions available" => "Aucune ancienne version n'est disponible",
+"No path specified" => "Aucun chemin spécifié",
"History" => "Historique",
+"Revert a file to a previous version by clicking on its revert button" => "Restaurez un fichier dans une version antérieure en cliquant sur son bouton de restauration",
"Files Versioning" => "Versionnage des fichiers",
"Enable" => "Activer"
);
diff --git a/apps/files_versions/l10n/it.php b/apps/files_versions/l10n/it.php
index c57b093011..3289f7f68d 100644
--- a/apps/files_versions/l10n/it.php
+++ b/apps/files_versions/l10n/it.php
@@ -1,5 +1,13 @@
"Impossibild ripristinare: %s",
+"success" => "completata",
+"File %s was reverted to version %s" => "Il file %s è stato ripristinato alla versione %s",
+"failure" => "non riuscita",
+"File %s could not be reverted to version %s" => "Il file %s non può essere ripristinato alla versione %s",
+"No old versions available" => "Non sono disponibili versioni precedenti",
+"No path specified" => "Nessun percorso specificato",
"History" => "Cronologia",
+"Revert a file to a previous version by clicking on its revert button" => "Ripristina un file a una versione precedente facendo clic sul rispettivo pulsante di ripristino",
"Files Versioning" => "Controllo di versione dei file",
"Enable" => "Abilita"
);
diff --git a/apps/files_versions/l10n/ja_JP.php b/apps/files_versions/l10n/ja_JP.php
index c97ba3d00e..1601876570 100644
--- a/apps/files_versions/l10n/ja_JP.php
+++ b/apps/files_versions/l10n/ja_JP.php
@@ -1,5 +1,13 @@
"元に戻せませんでした: %s",
+"success" => "成功",
+"File %s was reverted to version %s" => "ファイル %s をバージョン %s に戻しました",
+"failure" => "失敗",
+"File %s could not be reverted to version %s" => "ファイル %s をバージョン %s に戻せませんでした",
+"No old versions available" => "利用可能な古いバージョンはありません",
+"No path specified" => "パスが指定されていません",
"History" => "履歴",
+"Revert a file to a previous version by clicking on its revert button" => "もとに戻すボタンをクリックすると、ファイルを過去のバージョンに戻します",
"Files Versioning" => "ファイルのバージョン管理",
"Enable" => "有効化"
);
diff --git a/apps/files_versions/l10n/lv.php b/apps/files_versions/l10n/lv.php
index ae2ead12f4..2203dc706b 100644
--- a/apps/files_versions/l10n/lv.php
+++ b/apps/files_versions/l10n/lv.php
@@ -1,5 +1,13 @@
"Nevarēja atgriezt — %s",
+"success" => "veiksme",
+"File %s was reverted to version %s" => "Datne %s tika atgriezt uz versiju %s",
+"failure" => "neveiksme",
+"File %s could not be reverted to version %s" => "Datni %s nevarēja atgriezt uz versiju %s",
+"No old versions available" => "Nav pieejamu vecāku versiju",
+"No path specified" => "Nav norādīts ceļš",
"History" => "Vēsture",
+"Revert a file to a previous version by clicking on its revert button" => "Atgriez datni uz iepriekšēju versiju, spiežot uz tās atgriešanas pogu",
"Files Versioning" => "Datņu versiju izskošana",
"Enable" => "Aktivēt"
);
diff --git a/apps/files_versions/l10n/ru.php b/apps/files_versions/l10n/ru.php
index 4c7fb50109..221d24ce8d 100644
--- a/apps/files_versions/l10n/ru.php
+++ b/apps/files_versions/l10n/ru.php
@@ -1,5 +1,13 @@
"Не может быть возвращён: %s",
+"success" => "успех",
+"File %s was reverted to version %s" => "Файл %s был возвращён к версии %s",
+"failure" => "провал",
+"File %s could not be reverted to version %s" => "Файл %s не может быть возвращён к версии %s",
+"No old versions available" => "Нет доступных старых версий",
+"No path specified" => "Путь не указан",
"History" => "История",
+"Revert a file to a previous version by clicking on its revert button" => "Вернуть файл к предыдущей версии нажатием на кнопку возврата",
"Files Versioning" => "Версии файлов",
"Enable" => "Включить"
);
diff --git a/apps/files_versions/l10n/sk_SK.php b/apps/files_versions/l10n/sk_SK.php
index a3a3567cb4..8a59286b5a 100644
--- a/apps/files_versions/l10n/sk_SK.php
+++ b/apps/files_versions/l10n/sk_SK.php
@@ -1,4 +1,9 @@
"uspech",
+"File %s was reverted to version %s" => "Subror %s bol vrateny na verziu %s",
+"failure" => "chyba",
+"No old versions available" => "Nie sú dostupné žiadne staršie verzie",
+"No path specified" => "Nevybrali ste cestu",
"History" => "História",
"Files Versioning" => "Vytváranie verzií súborov",
"Enable" => "Zapnúť"
diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php
index a210e6f1a1..e4f27e25a7 100644
--- a/apps/user_ldap/l10n/ca.php
+++ b/apps/user_ldap/l10n/ca.php
@@ -43,6 +43,7 @@
"Disable Main Server" => "Desactiva el servidor principal",
"When switched on, ownCloud will only connect to the replica server." => "Quan està connectat, ownCloud només es connecta al servidor de la rèplica.",
"Use TLS" => "Usa TLS",
+"Do not use it additionally for LDAPS connections, it will fail." => "No ho useu adicionalment per a conexions LDAPS, fallarà.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)",
"Turn off SSL certificate validation." => "Desactiva la validació de certificat SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor ownCloud.",
diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php
index 6f5ab4011a..4c74f195cf 100644
--- a/apps/user_ldap/l10n/cs_CZ.php
+++ b/apps/user_ldap/l10n/cs_CZ.php
@@ -43,6 +43,7 @@
"Disable Main Server" => "Zakázat hlavní serveru",
"When switched on, ownCloud will only connect to the replica server." => "Při zapnutí se ownCloud připojí pouze k záložnímu serveru",
"Use TLS" => "Použít TLS",
+"Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívejte pro spojení LDAP, selže.",
"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)",
"Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Pokud připojení pracuje pouze s touto možností, tak importujte SSL certifikát SSL serveru do Vašeho serveru ownCloud",
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index 034f7709ad..c0a444c0c7 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -43,6 +43,7 @@
"Disable Main Server" => "Deshabilitar servidor principal",
"When switched on, ownCloud will only connect to the replica server." => "Cuando se inicie, ownCloud unicamente estara conectado al servidor replica",
"Use TLS" => "Usar TLS",
+"Do not use it additionally for LDAPS connections, it will fail." => "No usar adicionalmente para conecciones LDAPS, estas fallaran",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la conexión sólo funciona con esta opción, importe el certificado SSL del servidor LDAP en su servidor ownCloud.",
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index 5c30a20b68..abe1363569 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -43,6 +43,7 @@
"Disable Main Server" => "Désactiver le serveur principal",
"When switched on, ownCloud will only connect to the replica server." => "Lorsqu'activé, ownCloud ne se connectera qu'au serveur répliqué.",
"Use TLS" => "Utiliser TLS",
+"Do not use it additionally for LDAPS connections, it will fail." => "À ne pas utiliser pour les connexions LDAPS (cela échouera).",
"Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)",
"Turn off SSL certificate validation." => "Désactiver la validation du certificat SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur ownCloud.",
diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php
index 5746f119bc..594529190d 100644
--- a/apps/user_ldap/l10n/it.php
+++ b/apps/user_ldap/l10n/it.php
@@ -43,6 +43,7 @@
"Disable Main Server" => "Disabilita server principale",
"When switched on, ownCloud will only connect to the replica server." => "Se abilitata, ownCloud si collegherà solo al server di replica.",
"Use TLS" => "Usa TLS",
+"Do not use it additionally for LDAPS connections, it will fail." => "Da non utilizzare per le connessioni LDAPS, non funzionerà.",
"Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)",
"Turn off SSL certificate validation." => "Disattiva il controllo del certificato SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se la connessione funziona esclusivamente con questa opzione, importa il certificato SSL del server LDAP nel tuo server ownCloud.",
diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php
index 7697fc5b4f..11ad6cc7a3 100644
--- a/apps/user_ldap/l10n/ja_JP.php
+++ b/apps/user_ldap/l10n/ja_JP.php
@@ -43,6 +43,7 @@
"Disable Main Server" => "メインサーバを無効にする",
"When switched on, ownCloud will only connect to the replica server." => "有効にすると、ownCloudはレプリカサーバにのみ接続します。",
"Use TLS" => "TLSを利用",
+"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS接続のために追加でそれを利用しないで下さい。失敗します。",
"Case insensitve LDAP server (Windows)" => "大文字/小文字を区別しないLDAPサーバ(Windows)",
"Turn off SSL certificate validation." => "SSL証明書の確認を無効にする。",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書をownCloudサーバにインポートしてください。",
diff --git a/apps/user_ldap/l10n/lv.php b/apps/user_ldap/l10n/lv.php
index 532fc1023d..34e9196b8d 100644
--- a/apps/user_ldap/l10n/lv.php
+++ b/apps/user_ldap/l10n/lv.php
@@ -43,6 +43,7 @@
"Disable Main Server" => "Deaktivēt galveno serveri",
"When switched on, ownCloud will only connect to the replica server." => "Kad ieslēgts, ownCloud savienosies tikai ar kopijas serveri.",
"Use TLS" => "Lietot TLS",
+"Do not use it additionally for LDAPS connections, it will fail." => "Neizmanto papildu LDAPS savienojumus! Tas nestrādās.",
"Case insensitve LDAP server (Windows)" => "Reģistrnejutīgs LDAP serveris (Windows)",
"Turn off SSL certificate validation." => "Izslēgt SSL sertifikātu validēšanu.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ja savienojums darbojas ar šo opciju, importē LDAP serveru SSL sertifikātu savā ownCloud serverī.",
diff --git a/core/ajax/translations.php b/core/ajax/translations.php
index e22cbad470..e52a2e9b1e 100644
--- a/core/ajax/translations.php
+++ b/core/ajax/translations.php
@@ -22,6 +22,7 @@
*/
$app = $_POST["app"];
+$app = OC_App::cleanAppId($app);
$l = OC_L10N::get( $app );
diff --git a/core/css/styles.css b/core/css/styles.css
index cefab2d49f..e6a4bf6199 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -210,6 +210,7 @@ fieldset.warning {
border-radius:5px;
}
fieldset.warning legend { color:#b94a48 !important; }
+fieldset.warning a { color:#b94a48 !important; font-weight:bold; }
/* Alternative Logins */
#alternative-logins legend { margin-bottom:10px; }
@@ -219,14 +220,14 @@ fieldset.warning legend { color:#b94a48 !important; }
/* NAVIGATION ------------------------------------------------------------- */
#navigation {
position:fixed; top:3.5em; float:left; width:64px; padding:0; z-index:75; height:100%;
- background:#30343a url('../img/noise.png') repeat; border-right:1px #333 solid;
+ background:#383c43 url('../img/noise.png') repeat; border-right:1px #333 solid;
-moz-box-shadow:0 0 7px #000; -webkit-box-shadow:0 0 7px #000; box-shadow:0 0 7px #000;
overflow-x:scroll;
}
#navigation a {
display:block; padding:8px 0 4px;
text-decoration:none; font-size:10px; text-align:center;
- color:#fff; text-shadow:#000 0 -1px 0; opacity:.4;
+ color:#fff; text-shadow:#000 0 -1px 0; opacity:.5;
white-space:nowrap; overflow:hidden; text-overflow:ellipsis; // ellipsize long app names
}
#navigation a:hover, #navigation a:focus { opacity:.8; }
@@ -318,6 +319,8 @@ a.bookmarklet { background-color:#ddd; border:1px solid #ccc; padding:5px;paddin
.arrow.left { left:-13px; bottom:1.2em; -webkit-transform:rotate(270deg); -moz-transform:rotate(270deg); -o-transform:rotate(270deg); -ms-transform:rotate(270deg); transform:rotate(270deg); }
.arrow.up { top:-8px; right:2em; }
.arrow.down { -webkit-transform:rotate(180deg); -moz-transform:rotate(180deg); -o-transform:rotate(180deg); -ms-transform:rotate(180deg); transform:rotate(180deg); }
+.help-includes {overflow: hidden; width: 100%; height: 100%; -moz-box-sizing: border-box; box-sizing: border-box; padding-top: 2.8em; }
+.help-iframe {width: 100%; height: 100%; margin: 0;padding: 0; border: 0; overflow: auto;}
/* ---- BREADCRUMB ---- */
div.crumb { float:left; display:block; background:url('../img/breadcrumb.svg') no-repeat right 0; padding:.75em 1.5em 0 1em; height:2.9em; }
diff --git a/core/img/filetypes/application.png b/core/img/filetypes/application.png
new file mode 100644
index 0000000000..1dee9e3660
Binary files /dev/null and b/core/img/filetypes/application.png differ
diff --git a/core/js/js.js b/core/js/js.js
index c137f734d9..5f1870eb6c 100644
--- a/core/js/js.js
+++ b/core/js/js.js
@@ -8,7 +8,9 @@
var oc_debug;
var oc_webroot;
var oc_requesttoken;
-oc_webroot = oc_webroot || location.pathname.substr(0, location.pathname.lastIndexOf('/'));
+if (typeof oc_webroot === "undefined") {
+ oc_webroot = location.pathname.substr(0, location.pathname.lastIndexOf('/'));
+}
if (oc_debug !== true || typeof console === "undefined" || typeof console.log === "undefined") {
if (!window.console) {
window.console = {};
diff --git a/core/js/share.js b/core/js/share.js
index 6ad4130690..58cb787b6d 100644
--- a/core/js/share.js
+++ b/core/js/share.js
@@ -185,10 +185,10 @@ OC.Share={
html += '';
html += '
';
html += '';
- html += '';
+ html += '';
}
html += '
';
html += '';
@@ -373,18 +373,18 @@ OC.Share={
$('#linkPassText').attr('placeholder', t('core', 'Password protected'));
}
$('#expiration').show();
- $('#emailPrivateLink #email').show();
- $('#emailPrivateLink #emailButton').show();
+ $('#emailPrivateLink #email').show();
+ $('#emailPrivateLink #emailButton').show();
},
hideLink:function() {
$('#linkText').hide('blind');
$('#showPassword').hide();
$('#showPassword+label').hide();
$('#linkPass').hide();
- $('#emailPrivateLink #email').hide();
- $('#emailPrivateLink #emailButton').hide();
- },
- dirname:function(path) {
+ $('#emailPrivateLink #email').hide();
+ $('#emailPrivateLink #emailButton').hide();
+ },
+ dirname:function(path) {
return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');
},
showExpirationDate:function(date) {
@@ -401,16 +401,16 @@ OC.Share={
$(document).ready(function() {
if(typeof monthNames != 'undefined'){
- $.datepicker.setDefaults({
- monthNames: monthNames,
- monthNamesShort: $.map(monthNames, function(v) { return v.slice(0,3)+'.'; }),
- dayNames: dayNames,
- dayNamesMin: $.map(dayNames, function(v) { return v.slice(0,2); }),
- dayNamesShort: $.map(dayNames, function(v) { return v.slice(0,3)+'.'; }),
- firstDay: firstDay
- });
- }
- $('#fileList').on('click', 'a.share', function(event) {
+ $.datepicker.setDefaults({
+ monthNames: monthNames,
+ monthNamesShort: $.map(monthNames, function(v) { return v.slice(0,3)+'.'; }),
+ dayNames: dayNames,
+ dayNamesMin: $.map(dayNames, function(v) { return v.slice(0,2); }),
+ dayNamesShort: $.map(dayNames, function(v) { return v.slice(0,3)+'.'; }),
+ firstDay: firstDay
+ });
+ }
+ $(document).on('click', 'a.share', function(event) {
event.stopPropagation();
if ($(this).data('item-type') !== undefined && $(this).data('item') !== undefined) {
var itemType = $(this).data('item-type');
@@ -444,12 +444,12 @@ $(document).ready(function() {
}
});
- $('#fileList').on('mouseenter', '#dropdown #shareWithList li', function(event) {
+ $(document).on('mouseenter', '#dropdown #shareWithList li', function(event) {
// Show permissions and unshare button
$(':hidden', this).filter(':not(.cruds)').show();
});
- $('#fileList').on('mouseleave', '#dropdown #shareWithList li', function(event) {
+ $(document).on('mouseleave', '#dropdown #shareWithList li', function(event) {
// Hide permissions and unshare button
if (!$('.cruds', this).is(':visible')) {
$('a', this).hide();
@@ -462,11 +462,11 @@ $(document).ready(function() {
}
});
- $('#fileList').on('click', '#dropdown .showCruds', function() {
+ $(document).on('click', '#dropdown .showCruds', function() {
$(this).parent().find('.cruds').toggle();
});
- $('#fileList').on('click', '#dropdown .unshare', function() {
+ $(document).on('click', '#dropdown .unshare', function() {
var li = $(this).parent();
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
@@ -483,7 +483,7 @@ $(document).ready(function() {
});
});
- $('#fileList').on('change', '#dropdown .permissions', function() {
+ $(document).on('change', '#dropdown .permissions', function() {
if ($(this).attr('name') == 'edit') {
var li = $(this).parent().parent()
var checkboxes = $('.permissions', li);
@@ -496,10 +496,17 @@ $(document).ready(function() {
var li = $(this).parent().parent().parent();
var checkboxes = $('.permissions', li);
// Uncheck Edit if Create, Update, and Delete are not checked
- if (!$(this).is(':checked') && !$(checkboxes).filter('input[name="create"]').is(':checked') && !$(checkboxes).filter('input[name="update"]').is(':checked') && !$(checkboxes).filter('input[name="delete"]').is(':checked')) {
+ if (!$(this).is(':checked')
+ && !$(checkboxes).filter('input[name="create"]').is(':checked')
+ && !$(checkboxes).filter('input[name="update"]').is(':checked')
+ && !$(checkboxes).filter('input[name="delete"]').is(':checked'))
+ {
$(checkboxes).filter('input[name="edit"]').attr('checked', false);
// Check Edit if Create, Update, or Delete is checked
- } else if (($(this).attr('name') == 'create' || $(this).attr('name') == 'update' || $(this).attr('name') == 'delete')) {
+ } else if (($(this).attr('name') == 'create'
+ || $(this).attr('name') == 'update'
+ || $(this).attr('name') == 'delete'))
+ {
$(checkboxes).filter('input[name="edit"]').attr('checked', true);
}
}
@@ -507,10 +514,14 @@ $(document).ready(function() {
$(checkboxes).filter(':not(input[name="edit"])').filter(':checked').each(function(index, checkbox) {
permissions |= $(checkbox).data('permissions');
});
- OC.Share.setPermissions($('#dropdown').data('item-type'), $('#dropdown').data('item-source'), $(li).data('share-type'), $(li).data('share-with'), permissions);
+ OC.Share.setPermissions($('#dropdown').data('item-type'),
+ $('#dropdown').data('item-source'),
+ $(li).data('share-type'),
+ $(li).data('share-with'),
+ permissions);
});
- $('#fileList').on('change', '#dropdown #linkCheckbox', function() {
+ $(document).on('change', '#dropdown #linkCheckbox', function() {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
if (this.checked) {
@@ -532,12 +543,12 @@ $(document).ready(function() {
}
});
- $('#fileList').on('click', '#dropdown #linkText', function() {
+ $(document).on('click', '#dropdown #linkText', function() {
$(this).focus();
$(this).select();
});
- $('#fileList').on('click', '#dropdown #showPassword', function() {
+ $(document).on('click', '#dropdown #showPassword', function() {
$('#linkPass').toggle('blind');
if (!$('#showPassword').is(':checked') ) {
var itemType = $('#dropdown').data('item-type');
@@ -548,7 +559,7 @@ $(document).ready(function() {
}
});
- $('#fileList').on('focusout keyup', '#dropdown #linkPassText', function(event) {
+ $(document).on('focusout keyup', '#dropdown #linkPassText', function(event) {
if ( $('#linkPassText').val() != '' && (event.type == 'focusout' || event.keyCode == 13) ) {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
@@ -560,7 +571,7 @@ $(document).ready(function() {
}
});
- $('#fileList').on('click', '#dropdown #expirationCheckbox', function() {
+ $(document).on('click', '#dropdown #expirationCheckbox', function() {
if (this.checked) {
OC.Share.showExpirationDate('');
} else {
@@ -575,7 +586,7 @@ $(document).ready(function() {
}
});
- $('#fileList').on('change', '#dropdown #expirationDate', function() {
+ $(document).on('change', '#dropdown #expirationDate', function() {
var itemType = $('#dropdown').data('item-type');
var itemSource = $('#dropdown').data('item-source');
$.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'setExpirationDate', itemType: itemType, itemSource: itemSource, date: $(this).val() }, function(result) {
@@ -586,33 +597,33 @@ $(document).ready(function() {
});
- $('#fileList').on('submit', '#dropdown #emailPrivateLink', function(event) {
- event.preventDefault();
- var link = $('#linkText').val();
- var itemType = $('#dropdown').data('item-type');
- var itemSource = $('#dropdown').data('item-source');
- var file = $('tr').filterAttr('data-id', String(itemSource)).data('file');
- var email = $('#email').val();
- if (email != '') {
- $('#email').attr('disabled', "disabled");
- $('#email').val(t('core', 'Sending ...'));
- $('#emailButton').attr('disabled', "disabled");
+ $(document).on('submit', '#dropdown #emailPrivateLink', function(event) {
+ event.preventDefault();
+ var link = $('#linkText').val();
+ var itemType = $('#dropdown').data('item-type');
+ var itemSource = $('#dropdown').data('item-source');
+ var file = $('tr').filterAttr('data-id', String(itemSource)).data('file');
+ var email = $('#email').val();
+ if (email != '') {
+ $('#email').attr('disabled', "disabled");
+ $('#email').val(t('core', 'Sending ...'));
+ $('#emailButton').attr('disabled', "disabled");
- $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file},
- function(result) {
- $('#email').attr('disabled', "false");
- $('#emailButton').attr('disabled', "false");
- if (result && result.status == 'success') {
- $('#email').css('font-weight', 'bold');
- $('#email').animate({ fontWeight: 'normal' }, 2000, function() {
- $(this).val('');
- }).val(t('core','Email sent'));
- } else {
- OC.dialogs.alert(result.data.message, t('core', 'Error while sharing'));
- }
- });
- }
- });
+ $.post(OC.filePath('core', 'ajax', 'share.php'), { action: 'email', toaddress: email, link: link, itemType: itemType, itemSource: itemSource, file: file},
+ function(result) {
+ $('#email').attr('disabled', "false");
+ $('#emailButton').attr('disabled', "false");
+ if (result && result.status == 'success') {
+ $('#email').css('font-weight', 'bold');
+ $('#email').animate({ fontWeight: 'normal' }, 2000, function() {
+ $(this).val('');
+ }).val(t('core','Email sent'));
+ } else {
+ OC.dialogs.alert(result.data.message, t('core', 'Error while sharing'));
+ }
+ });
+ }
+ });
});
diff --git a/core/l10n/ca.php b/core/l10n/ca.php
index 3a7edb2110..c60a818a4e 100644
--- a/core/l10n/ca.php
+++ b/core/l10n/ca.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "L'usuari %s ha compartit la carpeta \"%s\" amb vós. Està disponible per a la descàrrega a: %s",
"Category type not provided." => "No s'ha especificat el tipus de categoria.",
"No category to add?" => "No voleu afegir cap categoria?",
+"This category already exists: %s" => "Aquesta categoria ja existeix: %s",
"Object type not provided." => "No s'ha proporcionat el tipus d'objecte.",
"%s ID not provided." => "No s'ha proporcionat la ID %s.",
"Error adding %s to favorites." => "Error en afegir %s als preferits.",
@@ -108,7 +109,6 @@
"Security Warning" => "Avís de seguretat",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "No està disponible el generador de nombres aleatoris segurs, habiliteu l'extensió de PHP OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sense un generador de nombres aleatoris segurs un atacant podria predir els senyals per restablir la contrasenya i prendre-us el compte.",
-"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." => "La carpeta de dades i els fitxers provablement són accessibles des d'internet. El fitxer .htaccess que proporciona ownCloud no funciona. Us recomanem que configureu el vostre servidor web de manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de la carpeta arrel del servidor web.",
"Create an admin account" => "Crea un compte d'administrador",
"Advanced" => "Avançat",
"Data folder" => "Carpeta de dades",
diff --git a/core/l10n/cs_CZ.php b/core/l10n/cs_CZ.php
index ea8ac8947e..c95854bc62 100644
--- a/core/l10n/cs_CZ.php
+++ b/core/l10n/cs_CZ.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Uživatel %s s vámi sdílí složku \"%s\". Můžete ji stáhnout zde: %s",
"Category type not provided." => "Nezadán typ kategorie.",
"No category to add?" => "Žádná kategorie k přidání?",
+"This category already exists: %s" => "Kategorie již existuje: %s",
"Object type not provided." => "Nezadán typ objektu.",
"%s ID not provided." => "Nezadáno ID %s.",
"Error adding %s to favorites." => "Chyba při přidávání %s k oblíbeným.",
@@ -108,7 +109,6 @@
"Security Warning" => "Bezpečnostní upozornění",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Není dostupný žádný bezpečný generátor náhodných čísel. Povolte, prosím, rozšíření OpenSSL v PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Bez bezpečného generátoru náhodných čísel může útočník předpovědět token pro obnovu hesla a převzít kontrolu nad Vaším účtem.",
-"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." => "Váš adresář dat a všechny Vaše soubory jsou pravděpodobně přístupné z internetu. Soubor .htaccess, který je poskytován ownCloud, nefunguje. Důrazně Vám doporučujeme nastavit váš webový server tak, aby nebyl adresář dat přístupný, nebo přesunout adresář dat mimo kořenovou složku dokumentů webového serveru.",
"Create an admin account" => "Vytvořit účet správce",
"Advanced" => "Pokročilé",
"Data folder" => "Složka s daty",
diff --git a/core/l10n/da.php b/core/l10n/da.php
index 4ade1e5336..ebe4808544 100644
--- a/core/l10n/da.php
+++ b/core/l10n/da.php
@@ -107,7 +107,6 @@
"Security Warning" => "Sikkerhedsadvarsel",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Ingen sikker tilfældighedsgenerator til tal er tilgængelig. Aktiver venligst OpenSSL udvidelsen.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Uden en sikker tilfældighedsgenerator til tal kan en angriber måske gætte dit gendan kodeord og overtage din konto",
-"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." => "Din data mappe og dine filer er muligvis tilgængelige fra internettet. .htaccess filen som ownCloud leverer virker ikke. Vi anbefaler på det kraftigste at du konfigurerer din webserver på en måske så data mappen ikke længere er tilgængelig eller at du flytter data mappen uden for webserverens dokument rod. ",
"Create an admin account" => "Opret en administratorkonto",
"Advanced" => "Avanceret",
"Data folder" => "Datamappe",
diff --git a/core/l10n/de.php b/core/l10n/de.php
index 1e437dafa1..d14af6639c 100644
--- a/core/l10n/de.php
+++ b/core/l10n/de.php
@@ -108,7 +108,6 @@
"Security Warning" => "Sicherheitswarnung",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Es ist kein sicherer Zufallszahlengenerator verfügbar, bitte aktiviere die PHP-Erweiterung für OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Ohne einen sicheren Zufallszahlengenerator sind Angreifer in der Lage die Tokens für das Zurücksetzen der Passwörter vorherzusehen und Konten zu übernehmen.",
-"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." => "Dein Datenverzeichnis und deine Datein sind vielleicht vom Internet aus erreichbar. Die .htaccess Datei, die ownCloud verwendet, arbeitet nicht richtig. Wir schlagen Dir dringend vor, dass du deinen Webserver so konfigurierst, dass das Datenverzeichnis nicht länger erreichbar ist oder, dass du dein Datenverzeichnis aus dem Dokumenten-root des Webservers bewegst.",
"Create an admin account" => "Administrator-Konto anlegen",
"Advanced" => "Fortgeschritten",
"Data folder" => "Datenverzeichnis",
diff --git a/core/l10n/de_DE.php b/core/l10n/de_DE.php
index afb51b5291..fdebfeb658 100644
--- a/core/l10n/de_DE.php
+++ b/core/l10n/de_DE.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "%s hat eine Verzeichnis \"%s\" für Sie freigegeben. Es ist zum Download hier ferfügbar: %s",
"Category type not provided." => "Kategorie nicht angegeben.",
"No category to add?" => "Keine Kategorie hinzuzufügen?",
+"This category already exists: %s" => "Die Kategorie '%s' existiert bereits.",
"Object type not provided." => "Objekttyp nicht angegeben.",
"%s ID not provided." => "%s ID nicht angegeben.",
"Error adding %s to favorites." => "Fehler beim Hinzufügen von %s zu den Favoriten.",
@@ -108,7 +109,6 @@
"Security Warning" => "Sicherheitshinweis",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Es ist kein sicherer Zufallszahlengenerator verfügbar, bitte aktivieren Sie die PHP-Erweiterung für OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Ohne einen sicheren Zufallszahlengenerator sind Angreifer in der Lage, die Tokens für das Zurücksetzen der Passwörter vorherzusehen und Ihr Konto zu übernehmen.",
-"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." => "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich über das Internet erreichbar. Die von ownCloud bereitgestellte .htaccess Datei funktioniert nicht. Wir empfehlen Ihnen dringend, Ihren Webserver so zu konfigurieren, dass das Datenverzeichnis nicht mehr über das Internet erreichbar ist. Alternativ können Sie auch das Datenverzeichnis aus dem Dokumentenverzeichnis des Webservers verschieben.",
"Create an admin account" => "Administrator-Konto anlegen",
"Advanced" => "Fortgeschritten",
"Data folder" => "Datenverzeichnis",
diff --git a/core/l10n/el.php b/core/l10n/el.php
index 95e9cf6be7..01c6eb818a 100644
--- a/core/l10n/el.php
+++ b/core/l10n/el.php
@@ -105,7 +105,6 @@
"Security Warning" => "Προειδοποίηση Ασφαλείας",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Δεν είναι διαθέσιμο το πρόσθετο δημιουργίας τυχαίων αριθμών ασφαλείας, παρακαλώ ενεργοποιήστε το πρόσθετο της PHP, OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Χωρίς το πρόσθετο δημιουργίας τυχαίων αριθμών ασφαλείας, μπορεί να διαρρεύσει ο λογαριασμός σας από επιθέσεις στο διαδίκτυο.",
-"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." => "Ο κατάλογος data και τα αρχεία σας πιθανόν να είναι διαθέσιμα στο διαδίκτυο. Το αρχείο .htaccess που παρέχει το ownCloud δεν δουλεύει. Σας προτείνουμε ανεπιφύλακτα να ρυθμίσετε το διακομιστή σας με τέτοιο τρόπο ώστε ο κατάλογος data να μην είναι πλέον προσβάσιμος ή να μετακινήσετε τον κατάλογο data έξω από τον κατάλογο του διακομιστή.",
"Create an admin account" => "Δημιουργήστε έναν λογαριασμό διαχειριστή",
"Advanced" => "Για προχωρημένους",
"Data folder" => "Φάκελος δεδομένων",
diff --git a/core/l10n/es.php b/core/l10n/es.php
index b56fd13c1b..a95d408a0b 100644
--- a/core/l10n/es.php
+++ b/core/l10n/es.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "El usuario %s ha compartido la carpeta \"%s\" contigo. Puedes descargarla aquí: %s",
"Category type not provided." => "Tipo de categoria no proporcionado.",
"No category to add?" => "¿Ninguna categoría para añadir?",
+"This category already exists: %s" => "Esta categoria ya existe: %s",
"Object type not provided." => "ipo de objeto no proporcionado.",
"%s ID not provided." => "%s ID no proporcionado.",
"Error adding %s to favorites." => "Error añadiendo %s a los favoritos.",
@@ -108,7 +109,6 @@
"Security Warning" => "Advertencia de seguridad",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "No está disponible un generador de números aleatorios seguro, por favor habilite la extensión OpenSSL de PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sin un generador de números aleatorios seguro un atacante podría predecir los tokens de reinicio de su contraseña y tomar control de su cuenta.",
-"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." => "Su directorio de datos y sus archivos están probablemente accesibles desde internet. El archivo .htaccess que ownCloud provee no está funcionando. Sugerimos fuertemente que configure su servidor web de manera que el directorio de datos ya no esté accesible o mueva el directorio de datos fuera del documento raíz de su servidor web.",
"Create an admin account" => "Crea una cuenta de administrador",
"Advanced" => "Avanzado",
"Data folder" => "Directorio de almacenamiento",
@@ -128,6 +128,7 @@
"Lost your password?" => "¿Has perdido tu contraseña?",
"remember" => "recuérdame",
"Log in" => "Entrar",
+"Alternative Logins" => "Nombre de usuarios alternativos",
"prev" => "anterior",
"next" => "siguiente",
"Updating ownCloud to version %s, this may take a while." => "Actualizando ownCloud a la versión %s, esto puede demorar un tiempo."
diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php
index 0764077a1c..819e52a785 100644
--- a/core/l10n/es_AR.php
+++ b/core/l10n/es_AR.php
@@ -108,7 +108,6 @@
"Security Warning" => "Advertencia de seguridad",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "No hay disponible ningún generador de números aleatorios seguro. Por favor habilitá la extensión OpenSSL de PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sin un generador de números aleatorios seguro un atacante podría predecir los tokens de reinicio de tu contraseña y tomar control de tu cuenta.",
-"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." => "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess provisto por ownCloud no está funcionando. Te sugerimos que configures tu servidor web de manera que el directorio de datos ya no esté accesible, o que muevas el directorio de datos afuera del directorio raíz de tu servidor web.",
"Create an admin account" => "Crear una cuenta de administrador",
"Advanced" => "Avanzado",
"Data folder" => "Directorio de almacenamiento",
diff --git a/core/l10n/eu.php b/core/l10n/eu.php
index a810e7fd49..7dce8c53fb 100644
--- a/core/l10n/eu.php
+++ b/core/l10n/eu.php
@@ -108,7 +108,6 @@
"Security Warning" => "Segurtasun abisua",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Ez dago hausazko zenbaki sortzaile segururik eskuragarri, mesedez gatiu PHP OpenSSL extensioa.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Hausazko zenbaki sortzaile segururik gabe erasotzaile batek pasahitza berrezartzeko kodeak iragarri ditzake eta zure kontuaz jabetu.",
-"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." => "Zure data karpeta eta zure fitxategiak internetetik zuzenean eskuragarri egon daitezke. ownCloudek emandako .htaccess fitxategia ez du bere lana egiten. Aholkatzen dizugu zure web zerbitzaria ongi konfiguratzea data karpeta eskuragarri ez izateko edo data karpeta web zerbitzariaren dokumentu errotik mugitzea.",
"Create an admin account" => "Sortu kudeatzaile kontu bat",
"Advanced" => "Aurreratua",
"Data folder" => "Datuen karpeta",
diff --git a/core/l10n/fi_FI.php b/core/l10n/fi_FI.php
index 4d0a96996e..dedbf6723f 100644
--- a/core/l10n/fi_FI.php
+++ b/core/l10n/fi_FI.php
@@ -100,7 +100,6 @@
"Edit categories" => "Muokkaa luokkia",
"Add" => "Lisää",
"Security Warning" => "Turvallisuusvaroitus",
-"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." => "Data-kansio ja tiedostot ovat ehkä saavutettavissa Internetistä. .htaccess-tiedosto, jolla kontrolloidaan pääsyä, ei toimi. Suosittelemme, että muutat web-palvelimesi asetukset niin ettei data-kansio ole enää pääsyä tai siirrät data-kansion pois web-palvelimen tiedostojen juuresta.",
"Create an admin account" => "Luo ylläpitäjän tunnus",
"Advanced" => "Lisäasetukset",
"Data folder" => "Datakansio",
diff --git a/core/l10n/fr.php b/core/l10n/fr.php
index 7014cb8291..ad8ff0a6fc 100644
--- a/core/l10n/fr.php
+++ b/core/l10n/fr.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "L'utilisateur %s a partagé le dossier \"%s\" avec vous. Il est disponible au téléchargement ici : %s",
"Category type not provided." => "Type de catégorie non spécifié.",
"No category to add?" => "Pas de catégorie à ajouter ?",
+"This category already exists: %s" => "Cette catégorie existe déjà : %s",
"Object type not provided." => "Type d'objet non spécifié.",
"%s ID not provided." => "L'identifiant de %s n'est pas spécifié.",
"Error adding %s to favorites." => "Erreur lors de l'ajout de %s aux favoris.",
@@ -108,7 +109,6 @@
"Security Warning" => "Avertissement de sécurité",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Aucun générateur de nombre aléatoire sécurisé n'est disponible, veuillez activer l'extension PHP OpenSSL",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sans générateur de nombre aléatoire sécurisé, un attaquant peut être en mesure de prédire les jetons de réinitialisation du mot de passe, et ainsi prendre le contrôle de votre compte utilisateur.",
-"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." => "Votre dossier data et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess fourni par ownCloud ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de manière à ce que le dossier data ne soit plus accessible ou bien de déplacer le dossier data en dehors du dossier racine des documents du serveur web.",
"Create an admin account" => "Créer un compte administrateur",
"Advanced" => "Avancé",
"Data folder" => "Répertoire des données",
@@ -128,6 +128,7 @@
"Lost your password?" => "Mot de passe perdu ?",
"remember" => "se souvenir de moi",
"Log in" => "Connexion",
+"Alternative Logins" => "Logins alternatifs",
"prev" => "précédent",
"next" => "suivant",
"Updating ownCloud to version %s, this may take a while." => "Mise à jour en cours d'ownCloud vers la version %s, cela peut prendre du temps."
diff --git a/core/l10n/gl.php b/core/l10n/gl.php
index 382cd09f00..8fd9292ce6 100644
--- a/core/l10n/gl.php
+++ b/core/l10n/gl.php
@@ -105,7 +105,6 @@
"Security Warning" => "Aviso de seguranza",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Non hai un xerador de números ao chou dispoñíbel. Active o engadido de OpenSSL para PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sen un xerador seguro de números ao chou podería acontecer que predicindo as cadeas de texto de reinicio de contrasinais se afagan coa súa conta.",
-"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." => "O seu cartafol de datos e os seus ficheiros probabelmente sexan accesíbeis a través da Internet. O ficheiro .htaccess que fornece ownCloud non está a empregarse. Suxerimoslle que configure o seu servidor web de tal xeito que o cartafol de datos non estea accesíbel ou mova o cartafol de datos fora do directorio raíz de datos do servidor web.",
"Create an admin account" => "Crear unha contra de administrador",
"Advanced" => "Avanzado",
"Data folder" => "Cartafol de datos",
diff --git a/core/l10n/he.php b/core/l10n/he.php
index 09da86bf5e..75c378cece 100644
--- a/core/l10n/he.php
+++ b/core/l10n/he.php
@@ -105,7 +105,6 @@
"Security Warning" => "אזהרת אבטחה",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "אין מחולל מספרים אקראיים מאובטח, נא להפעיל את ההרחבה OpenSSL ב־PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "ללא מחולל מספרים אקראיים מאובטח תוקף יכול לנבא את מחרוזות איפוס הססמה ולהשתלט על החשבון שלך.",
-"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." => "יתכן שתיקיית הנתונים והקבצים שלך נגישים דרך האינטרנט. קובץ ה־.htaccess שמסופק על ידי ownCloud כנראה אינו עובד. אנו ממליצים בחום להגדיר את שרת האינטרנט שלך בדרך שבה תיקיית הנתונים לא תהיה זמינה עוד או להעביר את תיקיית הנתונים מחוץ לספריית העל של שרת האינטרנט.",
"Create an admin account" => "יצירת חשבון מנהל",
"Advanced" => "מתקדם",
"Data folder" => "תיקיית נתונים",
diff --git a/core/l10n/hu_HU.php b/core/l10n/hu_HU.php
index 8cbc81efe8..fc71a669e8 100644
--- a/core/l10n/hu_HU.php
+++ b/core/l10n/hu_HU.php
@@ -105,7 +105,6 @@
"Security Warning" => "Biztonsági figyelmeztetés",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Nem érhető el megfelelő véletlenszám-generátor, telepíteni kellene a PHP OpenSSL kiegészítését.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Megfelelő véletlenszám-generátor hiányában egy támadó szándékú idegen képes lehet megjósolni a jelszóvisszaállító tokent, és Ön helyett belépni.",
-"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." => "Az adatkönytára és az itt levő fájlok valószínűleg elérhetők az internetről. Az ownCloud által beillesztett .htaccess fájl nem működik. Nagyon fontos, hogy a webszervert úgy konfigurálja, hogy az adatkönyvtár nem legyen közvetlenül kívülről elérhető, vagy az adatkönyvtárt tegye a webszerver dokumentumfáján kívülre.",
"Create an admin account" => "Rendszergazdai belépés létrehozása",
"Advanced" => "Haladó",
"Data folder" => "Adatkönyvtár",
diff --git a/core/l10n/is.php b/core/l10n/is.php
index d542db5777..997a582d22 100644
--- a/core/l10n/is.php
+++ b/core/l10n/is.php
@@ -105,7 +105,6 @@
"Security Warning" => "Öryggis aðvörun",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Enginn traustur slembitölugjafi í boði, vinsamlegast virkjaðu PHP OpenSSL viðbótina.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Án öruggs slembitölugjafa er mögulegt að sjá fyrir öryggis auðkenni til að endursetja lykilorð og komast inn á aðganginn þinn.",
-"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." => "Gagnamappan þín er að öllum líkindum aðgengileg frá internetinu. Skráin .htaccess sem fylgir með ownCloud er ekki að virka. Við mælum eindregið með því að þú stillir vefþjóninn þannig að gagnamappan verði ekki aðgengileg frá internetinu eða færir hana út fyrir vefrótina.",
"Create an admin account" => "Útbúa vefstjóra aðgang",
"Advanced" => "Ítarlegt",
"Data folder" => "Gagnamappa",
diff --git a/core/l10n/it.php b/core/l10n/it.php
index a9febc8ea9..1068e0c31c 100644
--- a/core/l10n/it.php
+++ b/core/l10n/it.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "L'utente %s ha condiviso la cartella \"%s\" con te. È disponibile per lo scaricamento qui: %s",
"Category type not provided." => "Tipo di categoria non fornito.",
"No category to add?" => "Nessuna categoria da aggiungere?",
+"This category already exists: %s" => "Questa categoria esiste già: %s",
"Object type not provided." => "Tipo di oggetto non fornito.",
"%s ID not provided." => "ID %s non fornito.",
"Error adding %s to favorites." => "Errore durante l'aggiunta di %s ai preferiti.",
@@ -108,7 +109,6 @@
"Security Warning" => "Avviso di sicurezza",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Non è disponibile alcun generatore di numeri casuali sicuro. Abilita l'estensione OpenSSL di PHP",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Senza un generatore di numeri casuali sicuro, un malintenzionato potrebbe riuscire a individuare i token di ripristino delle password e impossessarsi del tuo account.",
-"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." => "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet. Il file .htaccess fornito da ownCloud non funziona. Ti suggeriamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o sposta tale cartella fuori dalla radice del sito.",
"Create an admin account" => "Crea un account amministratore",
"Advanced" => "Avanzate",
"Data folder" => "Cartella dati",
diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php
index c569c63355..803faaf75a 100644
--- a/core/l10n/ja_JP.php
+++ b/core/l10n/ja_JP.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "ユーザ %s はあなたとフォルダ \"%s\" を共有しています。こちらからダウンロードできます: %s",
"Category type not provided." => "カテゴリタイプは提供されていません。",
"No category to add?" => "追加するカテゴリはありませんか?",
+"This category already exists: %s" => "このカテゴリはすでに存在します: %s",
"Object type not provided." => "オブジェクトタイプは提供されていません。",
"%s ID not provided." => "%s ID は提供されていません。",
"Error adding %s to favorites." => "お気に入りに %s を追加エラー",
@@ -108,7 +109,6 @@
"Security Warning" => "セキュリティ警告",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "セキュアな乱数生成器が利用可能ではありません。PHPのOpenSSL拡張を有効にして下さい。",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "セキュアな乱数生成器が無い場合、攻撃者はパスワードリセットのトークンを予測してアカウントを乗っ取られる可能性があります。",
-"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ファイルが機能していません。データディレクトリを全くアクセスできないようにするか、データディレクトリをウェブサーバのドキュメントルートの外に置くようにウェブサーバを設定することを強くお勧めします。 ",
"Create an admin account" => "管理者アカウントを作成してください",
"Advanced" => "詳細設定",
"Data folder" => "データフォルダ",
diff --git a/core/l10n/ko.php b/core/l10n/ko.php
index 6133703b97..172ec3e03a 100644
--- a/core/l10n/ko.php
+++ b/core/l10n/ko.php
@@ -108,7 +108,6 @@
"Security Warning" => "보안 경고",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "안전한 난수 생성기를 사용할 수 없습니다. PHP의 OpenSSL 확장을 활성화해 주십시오.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "안전한 난수 생성기를 사용하지 않으면 공격자가 암호 초기화 토큰을 추측하여 계정을 탈취할 수 있습니다.",
-"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 파일이 작동하지 않습니다. 웹 서버를 다시 설정하여 데이터 디렉터리에 접근할 수 없도록 하거나 문서 루트 바깥쪽으로 옮기는 것을 추천합니다.",
"Create an admin account" => "관리자 계정 만들기",
"Advanced" => "고급",
"Data folder" => "데이터 폴더",
diff --git a/core/l10n/lt_LT.php b/core/l10n/lt_LT.php
index f25afe1868..563fd8884b 100644
--- a/core/l10n/lt_LT.php
+++ b/core/l10n/lt_LT.php
@@ -84,7 +84,6 @@
"Security Warning" => "Saugumo pranešimas",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Saugaus atsitiktinių skaičių generatoriaus nėra, prašome įjungti PHP OpenSSL modulį.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Be saugaus atsitiktinių skaičių generatoriaus, piktavaliai gali atspėti Jūsų slaptažodį ir pasisavinti paskyrą.",
-"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." => "Jūsų duomenų aplankalas ir Jūsų failai turbūt yra pasiekiami per internetą. Failas .htaccess, kuris duodamas, neveikia. Mes rekomenduojame susitvarkyti savo nustatymsu taip, kad failai nebūtų pasiekiami per internetą, arba persikelti juos kitur.",
"Create an admin account" => "Sukurti administratoriaus paskyrą",
"Advanced" => "Išplėstiniai",
"Data folder" => "Duomenų katalogas",
diff --git a/core/l10n/lv.php b/core/l10n/lv.php
index 14f9a3fdf1..bc2306774a 100644
--- a/core/l10n/lv.php
+++ b/core/l10n/lv.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Lietotājs %s ar jums dalījās ar mapi “%s”. To var lejupielādēt šeit — %s",
"Category type not provided." => "Kategorijas tips nav norādīts.",
"No category to add?" => "Nav kategoriju, ko pievienot?",
+"This category already exists: %s" => "Šāda kategorija jau eksistē — %s",
"Object type not provided." => "Objekta tips nav norādīts.",
"%s ID not provided." => "%s ID nav norādīts.",
"Error adding %s to favorites." => "Kļūda, pievienojot %s izlasei.",
@@ -108,7 +109,6 @@
"Security Warning" => "Brīdinājums par drošību",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Nav pieejams drošs nejaušu skaitļu ģenerators. Lūdzu, aktivējiet PHP OpenSSL paplašinājumu.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Bez droša nejaušu skaitļu ģeneratora uzbrucējs var paredzēt paroļu atjaunošanas marķierus un pārņem jūsu kontu.",
-"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." => "Jūsu datu direktorija un datnes visdrīzāk ir pieejamas no interneta. ownCloud nodrošinātā .htaccess datne nedarbojas. Mēs iesakām konfigurēt serveri tā, lai datu direktorija vairs nebūtu pieejama, vai arī pārvietojiet datu direktoriju ārpus tīmekļa servera dokumentu saknes.",
"Create an admin account" => "Izveidot administratora kontu",
"Advanced" => "Paplašināti",
"Data folder" => "Datu mape",
diff --git a/core/l10n/mk.php b/core/l10n/mk.php
index 49befd912c..d9da766900 100644
--- a/core/l10n/mk.php
+++ b/core/l10n/mk.php
@@ -105,7 +105,6 @@
"Security Warning" => "Безбедносно предупредување",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Не е достапен безбеден генератор на случајни броеви, Ве молам озвоможете го OpenSSL PHP додатокот.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Без сигурен генератор на случајни броеви напаѓач може да ги предвиди жетоните за ресетирање на лозинка и да преземе контрола врз Вашата сметка. ",
-"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." => "Вашата папка со податоци и датотеките е најверојатно достапна од интернет. .htaccess датотеката што ја овозможува ownCloud не фунционира. Силно препорачуваме да го исконфигурирате вашиот сервер за вашата папка со податоци не е достапна преку интернетт или преместете ја надвор од коренот на веб серверот.",
"Create an admin account" => "Направете администраторска сметка",
"Advanced" => "Напредно",
"Data folder" => "Фолдер со податоци",
diff --git a/core/l10n/nl.php b/core/l10n/nl.php
index f2e411a262..1dc8a9ca3b 100644
--- a/core/l10n/nl.php
+++ b/core/l10n/nl.php
@@ -108,7 +108,6 @@
"Security Warning" => "Beveiligingswaarschuwing",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Er kon geen willekeurig nummer worden gegenereerd. Zet de PHP OpenSSL extentie aan.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Zonder random nummer generator is het mogelijk voor een aanvaller om de reset tokens van wachtwoorden te voorspellen. Dit kan leiden tot het inbreken op uw account.",
-"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." => "Uw data is waarschijnlijk toegankelijk vanaf net internet. Het .htaccess bestand dat ownCloud levert werkt niet goed. U wordt aangeraden om de configuratie van uw webserver zodanig aan te passen dat de data folders niet meer publiekelijk toegankelijk zijn. U kunt ook de data folder verplaatsen naar een folder buiten de webserver document folder.",
"Create an admin account" => "Maak een beheerdersaccount aan",
"Advanced" => "Geavanceerd",
"Data folder" => "Gegevensmap",
diff --git a/core/l10n/pl.php b/core/l10n/pl.php
index 19f0a7c29c..682289326d 100644
--- a/core/l10n/pl.php
+++ b/core/l10n/pl.php
@@ -106,7 +106,6 @@
"Security Warning" => "Ostrzeżenie o zabezpieczeniach",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Niedostępny bezpieczny generator liczb losowych, należy włączyć rozszerzenie OpenSSL w PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Bez bezpiecznego generatora liczb losowych, osoba atakująca może być w stanie przewidzieć resetujące hasło tokena i przejąć kontrolę nad swoim kontem.",
-"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." => "Katalog danych (data) i pliki są prawdopodobnie dostępnego z Internetu. Sprawdź plik .htaccess oraz konfigurację serwera (hosta). Sugerujemy, skonfiguruj swój serwer w taki sposób, żeby dane katalogu nie były dostępne lub przenieść katalog danych spoza głównego dokumentu webserwera.",
"Create an admin account" => "Tworzenie konta administratora",
"Advanced" => "Zaawansowane",
"Data folder" => "Katalog danych",
diff --git a/core/l10n/pt_BR.php b/core/l10n/pt_BR.php
index 7ca42b43c1..0d440f4c9d 100644
--- a/core/l10n/pt_BR.php
+++ b/core/l10n/pt_BR.php
@@ -108,7 +108,6 @@
"Security Warning" => "Aviso de Segurança",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Nenhum gerador de número aleatório de segurança disponível. Habilite a extensão OpenSSL do PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sem um gerador de número aleatório de segurança, um invasor pode ser capaz de prever os símbolos de redefinição de senhas e assumir sua conta.",
-"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." => "Seu diretório de dados e seus arquivos estão, provavelmente, acessíveis a partir da internet. O .htaccess que o ownCloud fornece não está funcionando. Nós sugerimos que você configure o seu servidor web de uma forma que o diretório de dados esteja mais acessível ou que você mova o diretório de dados para fora da raiz do servidor web.",
"Create an admin account" => "Criar uma conta de administrador",
"Advanced" => "Avançado",
"Data folder" => "Pasta de dados",
diff --git a/core/l10n/pt_PT.php b/core/l10n/pt_PT.php
index 21cb8b51b3..3fb3361b2d 100644
--- a/core/l10n/pt_PT.php
+++ b/core/l10n/pt_PT.php
@@ -108,7 +108,6 @@
"Security Warning" => "Aviso de Segurança",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Não existe nenhum gerador seguro de números aleatórios, por favor, active a extensão OpenSSL no PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Sem nenhum gerador seguro de números aleatórios, uma pessoa mal intencionada pode prever a sua password, reiniciar as seguranças adicionais e tomar conta da sua conta. ",
-"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." => "A sua pasta com os dados e os seus ficheiros estão provavelmente acessíveis a partir das internet. Sugerimos veementemente que configure o seu servidor web de maneira a que a pasta com os dados deixe de ficar acessível, ou mova a pasta com os dados para fora da raiz de documentos do servidor web.",
"Create an admin account" => "Criar uma conta administrativa",
"Advanced" => "Avançado",
"Data folder" => "Pasta de dados",
diff --git a/core/l10n/ro.php b/core/l10n/ro.php
index 5558f2bb9c..da9f1a7da9 100644
--- a/core/l10n/ro.php
+++ b/core/l10n/ro.php
@@ -105,7 +105,6 @@
"Security Warning" => "Avertisment de securitate",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Generatorul de numere pentru securitate nu este disponibil, va rog activati extensia PHP OpenSSL",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Fara generatorul pentru numere de securitate , un atacator poate afla parola si reseta contul tau",
-"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." => "Directorul tău de date și fișierele tale probabil sunt accesibile prin internet. Fișierul .htaccess oferit de ownCloud nu funcționează. Îți recomandăm să configurezi server-ul tău web într-un mod în care directorul de date să nu mai fie accesibil sau mută directorul de date în afara directorului root al server-ului web.",
"Create an admin account" => "Crează un cont de administrator",
"Advanced" => "Avansat",
"Data folder" => "Director date",
diff --git a/core/l10n/ru.php b/core/l10n/ru.php
index c119c68c40..0495f60d03 100644
--- a/core/l10n/ru.php
+++ b/core/l10n/ru.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Пользователь %s открыл вам доступ к папке \"%s\". Она доступна для загрузки здесь: %s",
"Category type not provided." => "Тип категории не предоставлен",
"No category to add?" => "Нет категорий для добавления?",
+"This category already exists: %s" => "Эта категория уже существует: %s",
"Object type not provided." => "Тип объекта не предоставлен",
"%s ID not provided." => "ID %s не предоставлен",
"Error adding %s to favorites." => "Ошибка добавления %s в избранное",
@@ -108,7 +109,6 @@
"Security Warning" => "Предупреждение безопасности",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Нет доступного защищенного генератора случайных чисел, пожалуйста, включите расширение PHP OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Без защищенного генератора случайных чисел злоумышленник может предугадать токены сброса пароля и завладеть Вашей учетной записью.",
-"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." => "Ваши каталоги данных и файлы, вероятно, доступны из Интернета. Файл .htaccess, предоставляемый ownCloud, не работает. Мы настоятельно рекомендуем Вам настроить вебсервер таким образом, чтобы каталоги данных больше не были доступны, или переместить их за пределы корневого каталога документов веб-сервера.",
"Create an admin account" => "Создать учётную запись администратора",
"Advanced" => "Дополнительно",
"Data folder" => "Директория с данными",
diff --git a/core/l10n/ru_RU.php b/core/l10n/ru_RU.php
index 96a0e506e7..fad6ebeddc 100644
--- a/core/l10n/ru_RU.php
+++ b/core/l10n/ru_RU.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Пользователь %s открыл Вам доступ к папке \"%s\". Она доступена для загрузки здесь: %s",
"Category type not provided." => "Тип категории не предоставлен.",
"No category to add?" => "Нет категории для добавления?",
+"This category already exists: %s" => "Эта категория уже существует: %s",
"Object type not provided." => "Тип объекта не предоставлен.",
"%s ID not provided." => "%s ID не предоставлен.",
"Error adding %s to favorites." => "Ошибка добавления %s в избранное.",
@@ -108,7 +109,6 @@
"Security Warning" => "Предупреждение системы безопасности",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Нет доступного защищенного генератора случайных чисел, пожалуйста, включите расширение PHP OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Без защищенного генератора случайных чисел злоумышленник может спрогнозировать пароль, сбросить учетные данные и завладеть Вашим аккаунтом.",
-"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." => "Ваши каталоги данных и файлы, вероятно, доступны из Интернета. Файл .htaccess, предоставляемый ownCloud, не работает. Мы настоятельно рекомендуем Вам настроить вебсервер таким образом, чтобы каталоги данных больше не были доступны, или переместить их за пределы корневого каталога документов веб-сервера.",
"Create an admin account" => "Создать admin account",
"Advanced" => "Расширенный",
"Data folder" => "Папка данных",
@@ -128,6 +128,7 @@
"Lost your password?" => "Забыли пароль?",
"remember" => "запомнить",
"Log in" => "Войти",
+"Alternative Logins" => "Альтернативные Имена",
"prev" => "предыдущий",
"next" => "следующий",
"Updating ownCloud to version %s, this may take a while." => "Обновление ownCloud до версии %s, это может занять некоторое время."
diff --git a/core/l10n/si_LK.php b/core/l10n/si_LK.php
index eab1ba1001..eaafca2f3f 100644
--- a/core/l10n/si_LK.php
+++ b/core/l10n/si_LK.php
@@ -71,7 +71,6 @@
"Add" => "එක් කරන්න",
"Security Warning" => "ආරක්ෂක නිවේදනයක්",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "ආරක්ෂිත අහඹු සංඛ්යා උත්පාදකයක් නොමැති නම් ඔබගේ ගිණුමට පහරදෙන අයකුට එහි මුරපද යළි පිහිටුවීමට අවශ්ය ටෝකන පහසුවෙන් සොයාගෙන ඔබගේ ගිණුම පැහැරගත හැක.",
-"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 ගොනුව ක්රියාකරන්නේ නැත. අපි තරයේ කියා සිටිනුයේ නම්, මෙම දත්ත හා ගොනු එසේ පිවිසීමට නොහැකි වන ලෙස ඔබේ වෙබ් සේවාදායකයා වින්යාස කරන ලෙස හෝ එම ඩිරෙක්ටරිය වෙබ් මූලයෙන් පිටතට ගෙනයන ලෙසය.",
"Advanced" => "දියුණු/උසස්",
"Data folder" => "දත්ත ෆෝල්ඩරය",
"Configure the database" => "දත්ත සමුදාය හැඩගැසීම",
diff --git a/core/l10n/sk_SK.php b/core/l10n/sk_SK.php
index ee1555eb5d..26f04c1bce 100644
--- a/core/l10n/sk_SK.php
+++ b/core/l10n/sk_SK.php
@@ -5,6 +5,7 @@
"User %s shared the folder \"%s\" with you. It is available for download here: %s" => "Používateľ %s zdieľa s Vami adresár \"%s\". Môžete si ho stiahnuť tu: %s",
"Category type not provided." => "Neposkytnutý kategorický typ.",
"No category to add?" => "Žiadna kategória pre pridanie?",
+"This category already exists: %s" => "Kategéria: %s už existuje.",
"Object type not provided." => "Neposkytnutý typ objektu.",
"%s ID not provided." => "%s ID neposkytnuté.",
"Error adding %s to favorites." => "Chyba pri pridávaní %s do obľúbených položiek.",
@@ -108,7 +109,6 @@
"Security Warning" => "Bezpečnostné varovanie",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Nie je dostupný žiadny bezpečný generátor náhodných čísel, prosím, povoľte rozšírenie OpenSSL v PHP.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Bez bezpečného generátora náhodných čísel môže útočník predpovedať token pre obnovu hesla a prevziať kontrolu nad vaším kontom.",
-"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." => "Váš priečinok s dátami a Vaše súbory sú pravdepodobne dostupné z internetu. .htaccess súbor dodávaný s inštaláciou ownCloud nespĺňa úlohu. Dôrazne Vám doporučujeme nakonfigurovať webserver takým spôsobom, aby dáta v priečinku neboli verejné, alebo presuňte dáta mimo štruktúry priečinkov webservera.",
"Create an admin account" => "Vytvoriť administrátorský účet",
"Advanced" => "Pokročilé",
"Data folder" => "Priečinok dát",
@@ -128,6 +128,7 @@
"Lost your password?" => "Zabudli ste heslo?",
"remember" => "zapamätať",
"Log in" => "Prihlásiť sa",
+"Alternative Logins" => "Altrnatívne loginy",
"prev" => "späť",
"next" => "ďalej",
"Updating ownCloud to version %s, this may take a while." => "Aktualizujem ownCloud na verziu %s, môže to chvíľu trvať."
diff --git a/core/l10n/sl.php b/core/l10n/sl.php
index 7353919004..2b5b02191e 100644
--- a/core/l10n/sl.php
+++ b/core/l10n/sl.php
@@ -105,7 +105,6 @@
"Security Warning" => "Varnostno opozorilo",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Na voljo ni varnega generatorja naključnih števil. Prosimo, če omogočite PHP OpenSSL razširitev.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Brez varnega generatorja naključnih števil lahko napadalec napove žetone za ponastavitev gesla, kar mu omogoča, da prevzame vaš račun.",
-"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." => "Trenutno je dostop do podatkovne mape in datotek najverjetneje omogočen vsem uporabnikom na omrežju. Datoteka .htaccess, vključena v ownCloud namreč ni omogočena. Močno priporočamo nastavitev spletnega strežnika tako, da mapa podatkov ne bo javno dostopna ali pa, da jo prestavite ven iz korenske mape spletnega strežnika.",
"Create an admin account" => "Ustvari skrbniški račun",
"Advanced" => "Napredne možnosti",
"Data folder" => "Mapa s podatki",
diff --git a/core/l10n/sr.php b/core/l10n/sr.php
index 61c2316764..557cb6a8ab 100644
--- a/core/l10n/sr.php
+++ b/core/l10n/sr.php
@@ -102,7 +102,6 @@
"Security Warning" => "Сигурносно упозорење",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Поуздан генератор случајних бројева није доступан, предлажемо да укључите PHP проширење OpenSSL.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Без поузданог генератора случајнох бројева нападач лако може предвидети лозинку за поништавање кључа шифровања и отети вам налог.",
-"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." => "Тренутно су ваши подаци и датотеке доступне са интернета. Датотека .htaccess коју је обезбедио пакет ownCloud не функционише. Саветујемо вам да подесите веб сервер тако да директоријум са подацима не буде изложен или да га преместите изван коренског директоријума веб сервера.",
"Create an admin account" => "Направи административни налог",
"Advanced" => "Напредно",
"Data folder" => "Фацикла података",
diff --git a/core/l10n/sv.php b/core/l10n/sv.php
index 2e129038ff..bc96c23713 100644
--- a/core/l10n/sv.php
+++ b/core/l10n/sv.php
@@ -108,7 +108,6 @@
"Security Warning" => "Säkerhetsvarning",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Ingen säker slumptalsgenerator finns tillgänglig. Du bör aktivera PHP OpenSSL-tillägget.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Utan en säker slumptalsgenerator kan angripare få möjlighet att förutsäga lösenordsåterställningar och ta över ditt konto.",
-"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." => "Din datakatalog och dina filer är förmodligen tillgängliga från Internet. Den .htaccess-fil som ownCloud tillhandahåller fungerar inte. Vi rekommenderar starkt att du konfigurerar webbservern så att datakatalogen inte längre är tillgänglig eller att du flyttar datakatalogen utanför webbserverns dokument-root.",
"Create an admin account" => "Skapa ett administratörskonto",
"Advanced" => "Avancerat",
"Data folder" => "Datamapp",
diff --git a/core/l10n/ta_LK.php b/core/l10n/ta_LK.php
index 64d0abad6c..f7ad09fbc7 100644
--- a/core/l10n/ta_LK.php
+++ b/core/l10n/ta_LK.php
@@ -97,7 +97,6 @@
"Security Warning" => "பாதுகாப்பு எச்சரிக்கை",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "குறிப்பிட்ட எண்ணிக்கை பாதுகாப்பான புறப்பாக்கி / உண்டாக்கிகள் இல்லை, தயவுசெய்து PHP OpenSSL நீட்சியை இயலுமைப்படுத்துக. ",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "பாதுகாப்பான சீரற்ற எண்ணிக்கையான புறப்பாக்கி இல்லையெனின், தாக்குனரால் கடவுச்சொல் மீளமைப்பு அடையாளவில்லைகள் முன்மொழியப்பட்டு உங்களுடைய கணக்கை கைப்பற்றலாம்.",
-"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 கோப்பு வேலை செய்யவில்லை. தரவு அடைவை நீண்ட நேரத்திற்கு அணுகக்கூடியதாக உங்களுடைய வலைய சேவையகத்தை தகவமைக்குமாறு நாங்கள் உறுதியாக கூறுகிறோம் அல்லது தரவு அடைவை வலைய சேவையக மூல ஆவணத்திலிருந்து வெளியே அகற்றுக. ",
"Create an admin account" => " நிர்வாக கணக்கொன்றை உருவாக்குக",
"Advanced" => "மேம்பட்ட",
"Data folder" => "தரவு கோப்புறை",
diff --git a/core/l10n/th_TH.php b/core/l10n/th_TH.php
index 2c697b1b85..e5295cee10 100644
--- a/core/l10n/th_TH.php
+++ b/core/l10n/th_TH.php
@@ -108,7 +108,6 @@
"Security Warning" => "คำเตือนเกี่ยวกับความปลอดภัย",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "ยังไม่มีตัวสร้างหมายเลขแบบสุ่มให้ใช้งาน, กรุณาเปิดใช้งานส่วนเสริม PHP OpenSSL",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "หากปราศจากตัวสร้างหมายเลขแบบสุ่มที่ช่วยป้องกันความปลอดภัย ผู้บุกรุกอาจสามารถที่จะคาดคะเนรหัสยืนยันการเข้าถึงเพื่อรีเซ็ตรหัสผ่าน และเอาบัญชีของคุณไปเป็นของตนเองได้",
-"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." => "ไดเร็กทอรี่ข้อมูลและไฟล์ของคุณสามารถเข้าถึงได้จากอินเทอร์เน็ต ไฟล์ .htaccess ที่ ownCloud มีให้ไม่สามารถทำงานได้อย่างเหมาะสม เราขอแนะนำให้คุณกำหนดค่าเว็บเซิร์ฟเวอร์ใหม่ในรูปแบบที่ไดเร็กทอรี่เก็บข้อมูลไม่สามารถเข้าถึงได้อีกต่อไป หรือคุณได้ย้ายไดเร็กทอรี่ที่ใช้เก็บข้อมูลไปอยู่ภายนอกตำแหน่ง root ของเว็บเซิร์ฟเวอร์แล้ว",
"Create an admin account" => "สร้าง บัญชีผู้ดูแลระบบ",
"Advanced" => "ขั้นสูง",
"Data folder" => "โฟลเดอร์เก็บข้อมูล",
diff --git a/core/l10n/tr.php b/core/l10n/tr.php
index 69dc8ca53d..201b511647 100644
--- a/core/l10n/tr.php
+++ b/core/l10n/tr.php
@@ -105,7 +105,6 @@
"Security Warning" => "Güvenlik Uyarisi",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Güvenli rasgele sayı üreticisi bulunamadı. Lütfen PHP OpenSSL eklentisini etkinleştirin.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Güvenli rasgele sayı üreticisi olmadan saldırganlar parola sıfırlama simgelerini tahmin edip hesabınızı ele geçirebilir.",
-"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." => "data dizininiz ve dosyalarınız büyük ihtimalle internet üzerinden erişilebilir. Owncloud tarafından sağlanan .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu döküman dizini dışına almanızı şiddetle tavsiye ederiz.",
"Create an admin account" => "Bir yönetici hesabı oluşturun",
"Advanced" => "Gelişmiş",
"Data folder" => "Veri klasörü",
diff --git a/core/l10n/uk.php b/core/l10n/uk.php
index 9a4d1eec0e..7eab365a39 100644
--- a/core/l10n/uk.php
+++ b/core/l10n/uk.php
@@ -108,7 +108,6 @@
"Security Warning" => "Попередження про небезпеку",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Не доступний безпечний генератор випадкових чисел, будь ласка, активуйте PHP OpenSSL додаток.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Без безпечного генератора випадкових чисел зловмисник може визначити токени скидання пароля і заволодіти Вашим обліковим записом.",
-"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." => "Ваш каталог з даними та Ваші файли можливо доступні з Інтернету. Файл .htaccess, наданий з ownCloud, не працює. Ми наполегливо рекомендуємо Вам налаштувати свій веб-сервер таким чином, щоб каталог data більше не був доступний, або перемістити каталог data за межі кореневого каталогу документів веб-сервера.",
"Create an admin account" => "Створити обліковий запис адміністратора",
"Advanced" => "Додатково",
"Data folder" => "Каталог даних",
diff --git a/core/l10n/vi.php b/core/l10n/vi.php
index 055baecada..ca6f9b91da 100644
--- a/core/l10n/vi.php
+++ b/core/l10n/vi.php
@@ -105,7 +105,6 @@
"Security Warning" => "Cảnh bảo bảo mật",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "Không an toàn ! chức năng random number generator đã có sẵn ,vui lòng bật PHP OpenSSL extension.",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "Nếu không có random number generator , Hacker có thể thiết lập lại mật khẩu và chiếm tài khoản của bạn.",
-"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." => "Thư mục dữ liệu và những tập tin của bạn có thể dễ dàng bị truy cập từ mạng. Tập tin .htaccess do ownCloud cung cấp không hoạt động. Chúng tôi đề nghị bạn nên cấu hình lại máy chủ web để thư mục dữ liệu không còn bị truy cập hoặc bạn nên di chuyển thư mục dữ liệu ra bên ngoài thư mục gốc của máy chủ.",
"Create an admin account" => "Tạo một tài khoản quản trị",
"Advanced" => "Nâng cao",
"Data folder" => "Thư mục dữ liệu",
diff --git a/core/l10n/zh_CN.GB2312.php b/core/l10n/zh_CN.GB2312.php
index 354bc4bb89..57f0e96378 100644
--- a/core/l10n/zh_CN.GB2312.php
+++ b/core/l10n/zh_CN.GB2312.php
@@ -86,7 +86,6 @@
"Security Warning" => "安全警告",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "没有安全随机码生成器,请启用 PHP OpenSSL 扩展。",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "没有安全随机码生成器,黑客可以预测密码重置令牌并接管你的账户。",
-"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 提供的 .htaccesss 文件未其作用。我们强烈建议您配置网络服务器以使数据文件夹不能从互联网访问,或将移动数据文件夹移出网络服务器文档根目录。",
"Create an admin account" => "建立一个 管理帐户",
"Advanced" => "进阶",
"Data folder" => "数据存放文件夹",
diff --git a/core/l10n/zh_CN.php b/core/l10n/zh_CN.php
index 60dff9a822..086687c08c 100644
--- a/core/l10n/zh_CN.php
+++ b/core/l10n/zh_CN.php
@@ -106,7 +106,6 @@
"Security Warning" => "安全警告",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "随机数生成器无效,请启用PHP的OpenSSL扩展",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "没有安全随机码生成器,攻击者可能会猜测密码重置信息从而窃取您的账户",
-"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文件未生效。我们强烈建议您配置服务器,以使数据文件夹不可被访问,或者将数据文件夹移到web服务器根目录以外。",
"Create an admin account" => "创建管理员账号",
"Advanced" => "高级",
"Data folder" => "数据目录",
diff --git a/core/l10n/zh_TW.php b/core/l10n/zh_TW.php
index 54ea772da6..58d2aca409 100644
--- a/core/l10n/zh_TW.php
+++ b/core/l10n/zh_TW.php
@@ -108,7 +108,6 @@
"Security Warning" => "安全性警告",
"No secure random number generator is available, please enable the PHP OpenSSL extension." => "沒有可用的亂數產生器,請啟用 PHP 中的 OpenSSL 擴充功能。",
"Without a secure random number generator an attacker may be able to predict password reset tokens and take over your account." => "若沒有安全的亂數產生器,攻擊者可能可以預測密碼重設信物,然後控制您的帳戶。",
-"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." => "您的資料目錄 (Data Directory) 和檔案可能可以由網際網路上面公開存取。Owncloud 所提供的 .htaccess 設定檔並未生效,我們強烈建議您設定您的網頁伺服器以防止資料目錄被公開存取,或將您的資料目錄移出網頁伺服器的 document root 。",
"Create an admin account" => "建立一個管理者帳號",
"Advanced" => "進階",
"Data folder" => "資料夾",
diff --git a/core/routes.php b/core/routes.php
index 7408858b10..2527816b66 100644
--- a/core/routes.php
+++ b/core/routes.php
@@ -6,6 +6,10 @@
* See the COPYING-README file.
*/
+// Post installation check
+$this->create('post_setup_check', '/post-setup-check')
+ ->action('OC_Setup', 'postSetupCheck');
+
// Core ajax actions
// Search
$this->create('search_ajax_search', '/search/ajax/search.php')
diff --git a/core/setup.php b/core/setup.php
index 66b8cf378b..f16385466c 100644
--- a/core/setup.php
+++ b/core/setup.php
@@ -43,7 +43,7 @@ if(isset($_POST['install']) AND $_POST['install']=='true') {
OC_Template::printGuestPage("", "installation", $options);
}
else {
- header("Location: ".OC::$WEBROOT.'/');
+ header( 'Location: '.OC_Helper::linkToRoute( 'post_setup_check' ));
exit();
}
}
diff --git a/core/templates/installation.php b/core/templates/installation.php
index f3d232b637..ad0d9cfbad 100644
--- a/core/templates/installation.php
+++ b/core/templates/installation.php
@@ -21,15 +21,15 @@