aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/ajax/list.php2
-rw-r--r--apps/files/index.php3
-rw-r--r--apps/files/js/filelist.js6
-rw-r--r--apps/files_external/3rdparty/smb4php/smb.php3
-rw-r--r--apps/files_external/css/settings.css4
-rw-r--r--apps/files_sharing/lib/sharedstorage.php106
-rw-r--r--apps/files_versions/js/versions.js2
-rw-r--r--apps/user_ldap/css/settings.css8
-rw-r--r--apps/user_ldap/js/settings.js27
-rw-r--r--apps/user_ldap/lib/wizard.php59
-rw-r--r--apps/user_ldap/templates/part.wizard-server.php4
-rw-r--r--apps/user_ldap/templates/settings.php3
12 files changed, 108 insertions, 119 deletions
diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index 350fc7fa5f6..0be38c3b96f 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -10,7 +10,7 @@ OCP\JSON::checkLoggedIn();
// Load the files
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
-
+$dir = \OC\Files\Filesystem::normalizePath($dir);
if (!\OC\Files\Filesystem::is_dir($dir . '/')) {
header("HTTP/1.0 404 Not Found");
exit();
diff --git a/apps/files/index.php b/apps/files/index.php
index f0f95b3bac8..9ae378d7a1d 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -36,6 +36,7 @@ OCP\Util::addscript('files', 'filelist');
OCP\App::setActiveNavigationEntry('files_index');
// Load the files
$dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : '';
+$dir = \OC\Files\Filesystem::normalizePath($dir);
// Redirect if directory does not exist
if (!\OC\Files\Filesystem::is_dir($dir . '/')) {
header('Location: ' . OCP\Util::getScriptName() . '');
@@ -128,7 +129,7 @@ if ($needUpgrade) {
$tmpl = new OCP\Template('files', 'index', 'user');
$tmpl->assign('fileList', $list->fetchPage());
$tmpl->assign('breadcrumb', $breadcrumbNav->fetchPage());
- $tmpl->assign('dir', \OC\Files\Filesystem::normalizePath($dir));
+ $tmpl->assign('dir', $dir);
$tmpl->assign('isCreatable', $isCreatable);
$tmpl->assign('permissions', $permissions);
$tmpl->assign('files', $files);
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 0a94657c2d8..49dd28517be 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -660,19 +660,19 @@ var FileList={
$('.summary .filesize').html(humanFileSize(fileSummary.totalSize));
// Show only what's necessary (may be hidden)
- if ($dirInfo.html().charAt(0) === "0") {
+ if (fileSummary.totalDirs === 0) {
$dirInfo.hide();
$connector.hide();
} else {
$dirInfo.show();
}
- if ($fileInfo.html().charAt(0) === "0") {
+ if (fileSummary.totalFiles === 0) {
$fileInfo.hide();
$connector.hide();
} else {
$fileInfo.show();
}
- if ($dirInfo.html().charAt(0) !== "0" && $fileInfo.html().charAt(0) !== "0") {
+ if (fileSummary.totalDirs > 0 && fileSummary.totalFiles > 0) {
$connector.show();
}
}
diff --git a/apps/files_external/3rdparty/smb4php/smb.php b/apps/files_external/3rdparty/smb4php/smb.php
index e91b0a59581..1a6cd05590c 100644
--- a/apps/files_external/3rdparty/smb4php/smb.php
+++ b/apps/files_external/3rdparty/smb4php/smb.php
@@ -460,7 +460,8 @@ class smb_stream_wrapper extends smb {
function stream_tell () { return ftell($this->stream); }
- function stream_seek ($offset, $whence=null) { return fseek($this->stream, $offset, $whence); }
+ // PATCH: the wrapper must return true when fseek succeeded by returning 0.
+ function stream_seek ($offset, $whence=null) { return fseek($this->stream, $offset, $whence) === 0; }
function stream_flush () {
if ($this->mode <> 'r' && $this->need_flush) {
diff --git a/apps/files_external/css/settings.css b/apps/files_external/css/settings.css
index 0ebae9d82be..9858c10ea35 100644
--- a/apps/files_external/css/settings.css
+++ b/apps/files_external/css/settings.css
@@ -18,3 +18,7 @@ tr:hover>td.remove>img { visibility:visible; cursor:pointer; }
#addMountPoint>td { border:none; }
#addMountPoint>td.applicable { visibility:hidden; }
#selectBackend { margin-left:-10px; }
+
+#externalStorage label > input[type="checkbox"] {
+ margin-right: 3px;
+}
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 6141d832199..3116cd717fb 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -34,15 +34,15 @@ class Shared extends \OC\Files\Storage\Common {
$this->sharedFolder = $arguments['sharedFolder'];
}
- public function getId(){
+ public function getId() {
return 'shared::' . $this->sharedFolder;
}
/**
- * @brief Get the source file path, permissions, and owner for a shared file
- * @param string Shared target file path
- * @return Returns array with the keys path, permissions, and owner or false if not found
- */
+ * @brief Get the source file path, permissions, and owner for a shared file
+ * @param string Shared target file path
+ * @return Returns array with the keys path, permissions, and owner or false if not found
+ */
public function getFile($target) {
if (!isset($this->files[$target])) {
// Check for partial files
@@ -62,10 +62,10 @@ class Shared extends \OC\Files\Storage\Common {
}
/**
- * @brief Get the source file path for a shared file
- * @param string Shared target file path
- * @return string source file path or false if not found
- */
+ * @brief Get the source file path for a shared file
+ * @param string Shared target file path
+ * @return string source file path or false if not found
+ */
public function getSourcePath($target) {
$source = $this->getFile($target);
if ($source) {
@@ -73,7 +73,7 @@ class Shared extends \OC\Files\Storage\Common {
\OC\Files\Filesystem::initMountPoints($source['fileOwner']);
$mount = \OC\Files\Filesystem::getMountByNumericId($source['storage']);
if (is_array($mount)) {
- $this->files[$target]['fullPath'] = $mount[key($mount)]->getMountPoint().$source['path'];
+ $this->files[$target]['fullPath'] = $mount[key($mount)]->getMountPoint() . $source['path'];
} else {
$this->files[$target]['fullPath'] = false;
}
@@ -84,10 +84,10 @@ class Shared extends \OC\Files\Storage\Common {
}
/**
- * @brief Get the permissions granted for a shared file
- * @param string Shared target file path
- * @return int CRUDS permissions granted or false if not found
- */
+ * @brief Get the permissions granted for a shared file
+ * @param string Shared target file path
+ * @return int CRUDS permissions granted or false if not found
+ */
public function getPermissions($target) {
$source = $this->getFile($target);
if ($source) {
@@ -222,7 +222,7 @@ class Shared extends \OC\Files\Storage\Common {
if ($path == '' || $path == '/') {
$mtime = 0;
$dh = $this->opendir($path);
- if(is_resource($dh)) {
+ if (is_resource($dh)) {
while (($filename = readdir($dh)) !== false) {
$tempmtime = $this->filemtime($filename);
if ($tempmtime > $mtime) {
@@ -244,7 +244,7 @@ class Shared extends \OC\Files\Storage\Common {
$source = $this->getSourcePath($path);
if ($source) {
$info = array(
- 'target' => $this->sharedFolder.$path,
+ 'target' => $this->sharedFolder . $path,
'source' => $source,
);
\OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_get_contents', $info);
@@ -257,13 +257,14 @@ class Shared extends \OC\Files\Storage\Common {
if ($source = $this->getSourcePath($path)) {
// Check if permission is granted
if (($this->file_exists($path) && !$this->isUpdatable($path))
- || ($this->is_dir($path) && !$this->isCreatable($path))) {
+ || ($this->is_dir($path) && !$this->isCreatable($path))
+ ) {
return false;
}
$info = array(
- 'target' => $this->sharedFolder.$path,
- 'source' => $source,
- );
+ 'target' => $this->sharedFolder . $path,
+ 'source' => $source,
+ );
\OCP\Util::emitHook('\OC\Files\Storage\Shared', 'file_put_contents', $info);
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source);
$result = $storage->file_put_contents($internalPath, $data);
@@ -304,31 +305,16 @@ class Shared extends \OC\Files\Storage\Common {
$pos1 = strpos($path1, '/', 1);
$pos2 = strpos($path2, '/', 1);
if ($pos1 !== false && $pos2 !== false && ($oldSource = $this->getSourcePath($path1))) {
- $newSource = $this->getSourcePath(dirname($path2)).'/'.basename($path2);
- if (dirname($path1) == dirname($path2)) {
- // Rename the file if UPDATE permission is granted
- if ($this->isUpdatable($path1)) {
- list($storage, $oldInternalPath) = \OC\Files\Filesystem::resolvePath($oldSource);
- list( , $newInternalPath) = \OC\Files\Filesystem::resolvePath($newSource);
- return $storage->rename($oldInternalPath, $newInternalPath);
- }
- } else {
- // Move the file if DELETE and CREATE permissions are granted
- if ($this->isDeletable($path1) && $this->isCreatable(dirname($path2))) {
- // Get the root shared folder
- $folder1 = substr($path1, 0, $pos1);
- $folder2 = substr($path2, 0, $pos2);
- // Copy and unlink the file if it exists in a different shared folder
- if ($folder1 != $folder2) {
- if ($this->copy($path1, $path2)) {
- return $this->unlink($path1);
- }
- } else {
- list($storage, $oldInternalPath) = \OC\Files\Filesystem::resolvePath($oldSource);
- list( , $newInternalPath) = \OC\Files\Filesystem::resolvePath($newSource);
- return $storage->rename($oldInternalPath, $newInternalPath);
- }
- }
+ $newSource = $this->getSourcePath(dirname($path2)) . '/' . basename($path2);
+ // Within the same folder, we only need UPDATE permissions
+ if (dirname($path1) == dirname($path2) and $this->isUpdatable($path1)) {
+ list($storage, $oldInternalPath) = \OC\Files\Filesystem::resolvePath($oldSource);
+ list(, $newInternalPath) = \OC\Files\Filesystem::resolvePath($newSource);
+ return $storage->rename($oldInternalPath, $newInternalPath);
+ // otherwise DELETE and CREATE permissions required
+ } elseif ($this->isDeletable($path1) && $this->isCreatable(dirname($path2))) {
+ $rootView = new \OC\Files\View('');
+ return $rootView->rename($oldSource, $newSource);
}
}
}
@@ -338,10 +324,10 @@ class Shared extends \OC\Files\Storage\Common {
public function copy($path1, $path2) {
// Copy the file if CREATE permission is granted
if ($this->isCreatable(dirname($path2))) {
- $source = $this->fopen($path1, 'r');
- $target = $this->fopen($path2, 'w');
- list ($count, $result) = \OC_Helper::streamCopy($source, $target);
- return $result;
+ $oldSource = $this->getSourcePath($path1);
+ $newSource = $this->getSourcePath(dirname($path2)) . '/' . basename($path2);
+ $rootView = new \OC\Files\View('');
+ return $rootView->copy($oldSource, $newSource);
}
return false;
}
@@ -363,16 +349,16 @@ class Shared extends \OC\Files\Storage\Common {
case 'xb':
case 'a':
case 'ab':
- $exists = $this->file_exists($path);
- if ($exists && !$this->isUpdatable($path)) {
- return false;
- }
- if (!$exists && !$this->isCreatable(dirname($path))) {
- return false;
- }
+ $exists = $this->file_exists($path);
+ if ($exists && !$this->isUpdatable($path)) {
+ return false;
+ }
+ if (!$exists && !$this->isCreatable(dirname($path))) {
+ return false;
+ }
}
$info = array(
- 'target' => $this->sharedFolder.$path,
+ 'target' => $this->sharedFolder . $path,
'source' => $source,
'mode' => $mode,
);
@@ -412,6 +398,7 @@ class Shared extends \OC\Files\Storage\Common {
}
return false;
}
+
public function touch($path, $mtime = null) {
if ($source = $this->getSourcePath($path)) {
list($storage, $internalPath) = \OC\Files\Filesystem::resolvePath($source);
@@ -422,11 +409,12 @@ class Shared extends \OC\Files\Storage\Common {
public static function setup($options) {
if (!\OCP\User::isLoggedIn() || \OCP\User::getUser() != $options['user']
- || \OCP\Share::getItemsSharedWith('file')) {
+ || \OCP\Share::getItemsSharedWith('file')
+ ) {
$user_dir = $options['user_dir'];
\OC\Files\Filesystem::mount('\OC\Files\Storage\Shared',
array('sharedFolder' => '/Shared'),
- $user_dir.'/Shared/');
+ $user_dir . '/Shared/');
}
}
diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js
index d118456d62e..738a7ece6f2 100644
--- a/apps/files_versions/js/versions.js
+++ b/apps/files_versions/js/versions.js
@@ -21,7 +21,7 @@ $(document).ready(function(){
// Action to perform when clicked
if (scanFiles.scanning){return;}//workaround to prevent additional http request block scanning feedback
- var file = $('#dir').val()+'/'+filename;
+ var file = $('#dir').val().replace(/(?!<=\/)$|\/$/, '/' + filename);
var createDropDown = true;
// Check if drop down is already visible for a different file
if (($('#dropdown').length > 0) ) {
diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css
index 41578e91b69..be03419c2de 100644
--- a/apps/user_ldap/css/settings.css
+++ b/apps/user_ldap/css/settings.css
@@ -3,13 +3,9 @@
width: 60%;
}
-.tablecell {
- display: table-cell !important;
- white-space: nowrap;
-}
-
.tablerow {
display: table-row;
+ white-space: nowrap;
}
.tablerow input, .tablerow textarea {
@@ -78,6 +74,7 @@
.wizSpinner {
height: 15px;
+ margin: 0.3em;
}
.ldapSettingControls {
@@ -100,7 +97,6 @@
#ldap fieldset input, #ldap fieldset textarea {
width: 60%;
- display: inline-block;
}
#ldap fieldset p input[type=checkbox] {
diff --git a/apps/user_ldap/js/settings.js b/apps/user_ldap/js/settings.js
index 3abec1e232e..dcaeb70b57f 100644
--- a/apps/user_ldap/js/settings.js
+++ b/apps/user_ldap/js/settings.js
@@ -192,19 +192,20 @@ var LdapWizard = {
'&ldap_serverconfig_chooser='+$('#ldap_serverconfig_chooser').val();
LdapWizard.showSpinner('#ldap_base');
+ $('#ldap_base').prop('disabled', 'disabled');
LdapWizard.ajax(param,
function(result) {
LdapWizard.applyChanges(result);
LdapWizard.hideSpinner('#ldap_base');
if($('#ldap_base').val()) {
- $('#ldap_base').removeClass('invisible');
LdapWizard.hideInfoBox();
}
+ $('#ldap_base').prop('disabled', false);
},
function (result) {
LdapWizard.hideSpinner('#ldap_base');
- $('#ldap_base').removeClass('invisible');
- LdapWizard.showInfoBox('Please specify a port');
+ LdapWizard.showInfoBox('Please specify a Base DN');
+ $('#ldap_base').prop('disabled', false);
}
);
}
@@ -212,28 +213,28 @@ var LdapWizard = {
checkPort: function() {
host = $('#ldap_host').val();
- user = $('#ldap_dn').val();
- pass = $('#ldap_agent_password').val();
+ port = $('#ldap_port').val();
- if(host && user && pass) {
+ if(host && !port) {
param = 'action=guessPortAndTLS'+
'&ldap_serverconfig_chooser='+$('#ldap_serverconfig_chooser').val();
LdapWizard.showSpinner('#ldap_port');
+ $('#ldap_port').prop('disabled', 'disabled');
LdapWizard.ajax(param,
function(result) {
LdapWizard.applyChanges(result);
LdapWizard.hideSpinner('#ldap_port');
if($('#ldap_port').val()) {
LdapWizard.checkBaseDN();
- $('#ldap_port').removeClass('invisible');
+ $('#ldap_port').prop('disabled', false);
LdapWizard.hideInfoBox();
}
},
function (result) {
LdapWizard.hideSpinner('#ldap_port');
- $('#ldap_port').removeClass('invisible');
- LdapWizard.showInfoBox('Please specify the BaseDN');
+ $('#ldap_port').prop('disabled', false);
+ LdapWizard.showInfoBox('Please specify the Port');
}
);
}
@@ -461,12 +462,6 @@ var LdapWizard = {
},
init: function() {
- if($('#ldap_port').val()) {
- $('#ldap_port').removeClass('invisible');
- }
- if($('#ldap_base').val()) {
- $('#ldap_base').removeClass('invisible');
- }
LdapWizard.basicStatusCheck();
},
@@ -521,6 +516,8 @@ var LdapWizard = {
},
processChanges: function(triggerObj) {
+ LdapWizard.hideInfoBox();
+
if(triggerObj.id == 'ldap_host'
|| triggerObj.id == 'ldap_port'
|| triggerObj.id == 'ldap_dn'
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index 9428a98e29c..fb6aca9e961 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -63,8 +63,6 @@ class Wizard extends LDAPUtility {
public function countGroups() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
))) {
return false;
@@ -98,8 +96,6 @@ class Wizard extends LDAPUtility {
public function countUsers() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
'ldapUserFilter',
))) {
@@ -130,8 +126,6 @@ class Wizard extends LDAPUtility {
public function determineAttributes() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
'ldapUserFilter',
))) {
@@ -160,8 +154,6 @@ class Wizard extends LDAPUtility {
private function getUserAttributes() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
'ldapUserFilter',
))) {
@@ -214,8 +206,6 @@ class Wizard extends LDAPUtility {
private function determineGroups($dbkey, $confkey, $testMemberOf = true) {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
))) {
return false;
@@ -242,8 +232,6 @@ class Wizard extends LDAPUtility {
public function determineGroupMemberAssoc() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapGroupFilter',
))) {
return false;
@@ -266,8 +254,6 @@ class Wizard extends LDAPUtility {
public function determineGroupObjectClasses() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
))) {
return false;
@@ -294,8 +280,6 @@ class Wizard extends LDAPUtility {
public function determineUserObjectClasses() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
))) {
return false;
@@ -322,12 +306,17 @@ class Wizard extends LDAPUtility {
public function getGroupFilter() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
))) {
return false;
}
+ //make sure the use display name is set
+ $displayName = $this->configuration->ldapGroupDisplayName;
+ if(empty($displayName)) {
+ $d = $this->configuration->getDefaults();
+ $this->applyFind('ldap_group_display_name',
+ $d['ldap_group_display_name']);
+ }
$filter = $this->composeLdapFilter(self::LFILTER_GROUP_LIST);
$this->applyFind('ldap_group_filter', $filter);
@@ -337,12 +326,16 @@ class Wizard extends LDAPUtility {
public function getUserListFilter() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
))) {
return false;
}
+ //make sure the use display name is set
+ $displayName = $this->configuration->ldapUserDisplayName;
+ if(empty($displayName)) {
+ $d = $this->configuration->getDefaults();
+ $this->applyFind('ldap_display_name', $d['ldap_display_name']);
+ }
$filter = $this->composeLdapFilter(self::LFILTER_USER_LIST);
if(!$filter) {
throw new \Exception('Cannot create filter');
@@ -355,13 +348,12 @@ class Wizard extends LDAPUtility {
public function getUserLoginFilter() {
if(!$this->checkRequirements(array('ldapHost',
'ldapPort',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapBase',
'ldapUserFilter',
))) {
return false;
}
+
$filter = $this->composeLdapFilter(self::LFILTER_LOGIN);
if(!$filter) {
throw new \Exception('Cannot create filter');
@@ -377,8 +369,6 @@ class Wizard extends LDAPUtility {
*/
public function guessPortAndTLS() {
if(!$this->checkRequirements(array('ldapHost',
- 'ldapAgentName',
- 'ldapAgentPassword'
))) {
return false;
}
@@ -418,8 +408,6 @@ class Wizard extends LDAPUtility {
*/
public function guessBaseDN() {
if(!$this->checkRequirements(array('ldapHost',
- 'ldapAgentName',
- 'ldapAgentPassword',
'ldapPort',
))) {
return false;
@@ -799,7 +787,22 @@ class Wizard extends LDAPUtility {
throw new \Exception($error);
}
+ /**
+ * @brief checks whether a valid combination of agent and password has been
+ * provided (either two values or nothing for anonymous connect)
+ * @return boolean, true if everything is fine, false otherwise
+ *
+ */
+ private function checkAgentRequirements() {
+ $agent = $this->configuration->ldapAgentName;
+ $pwd = $this->configuration->ldapAgentPassword;
+
+ return ( (!empty($agent) && !empty($pwd))
+ || (empty($agent) && empty($pwd)));
+ }
+
private function checkRequirements($reqs) {
+ $this->checkAgentRequirements();
foreach($reqs as $option) {
$value = $this->configuration->$option;
if(empty($value)) {
@@ -1005,9 +1008,9 @@ class Wizard extends LDAPUtility {
//In case the port is already provided, we will check this first
if($port > 0) {
$hostInfo = parse_url($host);
- if(is_array($hostInfo)
+ if(!(is_array($hostInfo)
&& isset($hostInfo['scheme'])
- && stripos($hostInfo['scheme'], 'ldaps') === false) {
+ && stripos($hostInfo['scheme'], 'ldaps') !== false)) {
$portSettings[] = array('port' => $port, 'tls' => true);
}
$portSettings[] =array('port' => $port, 'tls' => false);
diff --git a/apps/user_ldap/templates/part.wizard-server.php b/apps/user_ldap/templates/part.wizard-server.php
index 01dd8d0fcb2..fde7c36cdd1 100644
--- a/apps/user_ldap/templates/part.wizard-server.php
+++ b/apps/user_ldap/templates/part.wizard-server.php
@@ -32,7 +32,7 @@
/>
<span>
<input type="number" id="ldap_port" name="ldap_port"
- class="invisible lwautosave"
+ class="lwautosave"
placeholder="<?php p($l->t('Port'));?>" />
</span>
</div>
@@ -56,7 +56,7 @@
<div class="tablerow">
<textarea id="ldap_base" name="ldap_base"
- class="tablecell invisible lwautosave"
+ class="tablecell lwautosave"
placeholder="<?php p($l->t('One Base DN per line'));?>"
title="<?php p($l->t('You can specify Base DN for users and groups in the Advanced tab'));?>">
</textarea>
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index 22aab0186f7..feb5ac6385d 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -20,8 +20,7 @@
<h3><?php p($l->t('Connection Settings'));?></h3>
<div>
<p><label for="ldap_configuration_active"><?php p($l->t('Configuration Active'));?></label><input type="checkbox" id="ldap_configuration_active" name="ldap_configuration_active" value="1" data-default="<?php p($_['ldap_configuration_active_default']); ?>" title="<?php p($l->t('When unchecked, this configuration will be skipped.'));?>" /></p>
- <p><label for="ldap_login_filter"><?php p($l->t('User Login Filter'));?></label>
- <input type="text" id="ldap_login_filter" name="ldap_login_filter"
+ <p><label for="ldap_login_filter"><?php p($l->t('User Login Filter'));?></label><input type="text" id="ldap_login_filter" name="ldap_login_filter"
data-default="<?php p($_['ldap_login_filter_default']); ?>"
title="<?php p($l->t('Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: "uid=%%uid"'));?>" /></p>
<p><label for="ldap_backup_host"><?php p($l->t('Backup (Replica) Host'));?></label><input type="text" id="ldap_backup_host" name="ldap_backup_host" data-default="<?php p($_['ldap_backup_host_default']); ?>" title="<?php p($l->t('Give an optional backup host. It must be a replica of the main LDAP/AD server.'));?>"></p>