diff --git a/lam/docs/manual-sources/howto.xml b/lam/docs/manual-sources/howto.xml
index 8dafff50..0bef2149 100644
--- a/lam/docs/manual-sources/howto.xml
+++ b/lam/docs/manual-sources/howto.xml
@@ -5615,6 +5615,10 @@ Run slapindex to rebuild the index.
the LDAP database. Before your users may change their settings you
must allow them to change their LDAP data.
+ Hint: The ACLs below are not required if you decide to run all
+ operations as the LDAP bind user (option "Use for all
+ operations").
+
This can be done by adding ACLs to your slapd.conf or
slapd.d/cn=config/olcDatabase={1}bdb.ldif which look similar to
these:
@@ -5722,7 +5726,7 @@ Run slapindex to rebuild the index.
-
+
General options
@@ -5730,7 +5734,15 @@ Run slapindex to rebuild the index.
Server address
- The address of your LDAP server
+ The address of your LDAP server. For LDAP+SSL use
+ "ldaps://myserver"
+
+
+
+ Activate TLS
+
+ Activates TLS encryption. Please note that this cannot
+ be combined with LDAP+SSL ("ldaps://").
@@ -5740,6 +5752,13 @@ Run slapindex to rebuild the index.
users
+
+ LDAP search attribute
+
+ Here you can specify if your users can login with user
+ name + password, email + password or other attributes.
+
+
LDAP user + password
@@ -5750,10 +5769,15 @@ Run slapindex to rebuild the index.
- LDAP search attribute
+ Use for all operations
- Here you can specify if your users can login with user
- name + password, email + password or other attributes.
+ By default LAM will use the credentials of the user
+ that logged in to self service for read/modify operations. If
+ you select this box then the connection user specified before
+ will be used instead. Please note that this can be a security
+ risk because the user requires write access to all users. You
+ need to make sure that your LAM server is well
+ protected.
diff --git a/lam/docs/manual-sources/images/conf4.jpg b/lam/docs/manual-sources/images/conf4.jpg
index a92a885a..f32c53fc 100644
Binary files a/lam/docs/manual-sources/images/conf4.jpg and b/lam/docs/manual-sources/images/conf4.jpg differ
diff --git a/lam/help/help.inc b/lam/help/help.inc
index 0ca558c7..44831df3 100644
--- a/lam/help/help.inc
+++ b/lam/help/help.inc
@@ -225,6 +225,8 @@ $helpArray = array (
"Text" => _('This text is placed as label for the password field on the login page. LAM will use "Password" if you do not enter any text.')),
"512" => array ("Headline" => _("Additional LDAP filter"),
"Text" => _('Use this to enter an additional LDAP filter (e.g. "(objectClass=passwordSelfReset)") to reduce the number of accounts who may use self service.')),
+ "513" => array ("Headline" => _('Use for all operations'),
+ "Text" => _('By default all modifications are done as the user that authenticated in self service. If active then LAM will use the connection user for all LDAP modifications and searches.')),
"520" => array ("Headline" => _("Generate random password"),
"Text" => _("This will set a random password and display it on the screen or send it to the user via mail. Please edit your LAM server profile to setup the mail settings.")),
"550" => array ("Headline" => _("From address"),
diff --git a/lam/lib/html.inc b/lam/lib/html.inc
index 222c75db..66bb0ebc 100644
--- a/lam/lib/html.inc
+++ b/lam/lib/html.inc
@@ -250,6 +250,15 @@ class htmlTable extends htmlElement {
}
}
+ /**
+ * Adds an htmlSpacer with the given width.
+ *
+ * @param String $width width (e.g. 10px)
+ */
+ public function addSpace($width) {
+ $this->addElement(new htmlSpacer($width, null));
+ }
+
/**
* Prints the HTML code for this element.
*
diff --git a/lam/lib/selfService.inc b/lam/lib/selfService.inc
index 0ec9f8d1..99c01317 100644
--- a/lam/lib/selfService.inc
+++ b/lam/lib/selfService.inc
@@ -307,6 +307,9 @@ class selfServiceProfile {
/** LDAP password */
public $LDAPPassword;
+
+ /** use bind user also for read/modify operations */
+ public $useForAllOperations;
/** LDAP search attribute */
public $searchAttribute;
@@ -364,6 +367,7 @@ class selfServiceProfile {
$this->LDAPSuffix = "dc=my-domain,dc=com";
$this->LDAPUser = "";
$this->LDAPPassword = "";
+ $this->useForAllOperations = false;
$this->searchAttribute = "uid";
$this->additionalLDAPFilter = '';
$this->httpAuthentication = false;
diff --git a/lam/templates/lib/500_lam.js b/lam/templates/lib/500_lam.js
index f11096d6..5d4a1cf3 100644
--- a/lam/templates/lib/500_lam.js
+++ b/lam/templates/lib/500_lam.js
@@ -354,6 +354,10 @@ function equalWidth(elementIDs) {
maxWidth = jQuery(elementIDs[i]).width();
};
}
+ if (maxWidth < 5) {
+ // no action if invalid width value (e.g. because of hidden tab)
+ return;
+ }
for (var i = 0; i < elementIDs.length; ++i) {
jQuery(elementIDs[i]).css({'width': maxWidth - (jQuery(elementIDs[i]).outerWidth() - jQuery(elementIDs[i]).width())});
}