Merge remote-tracking branch 'remotes/origin/develop' into configImportExport
This commit is contained in:
commit
ea72ab63a9
|
@ -1,3 +1,9 @@
|
|||
ldap-account-manager (7.2.RC1-1) unstable; urgency=medium
|
||||
|
||||
* new upstream release
|
||||
|
||||
-- Roland Gruber <post@rolandgruber.de> Wed, 22 Apr 2020 20:12:31 +0200
|
||||
|
||||
ldap-account-manager (7.1-1) unstable; urgency=medium
|
||||
|
||||
* new upstream release
|
||||
|
|
|
@ -29,7 +29,7 @@
|
|||
FROM debian:buster-slim
|
||||
LABEL maintainer="Roland Gruber <post@rolandgruber.de>"
|
||||
|
||||
ARG LAM_RELEASE=7.1
|
||||
ARG LAM_RELEASE=7.2.RC1
|
||||
EXPOSE 80
|
||||
|
||||
ENV \
|
||||
|
|
|
@ -4,7 +4,7 @@ services:
|
|||
build:
|
||||
context: .
|
||||
args:
|
||||
- LAM_RELEASE=7.1
|
||||
- LAM_RELEASE=7.2.RC1
|
||||
image: ldapaccountmanager/lam:latest
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
|
|
|
@ -3,6 +3,9 @@ June 2020 7.2
|
|||
- LAM Pro:
|
||||
-> EMail sending can be done via SMTP without local mail server
|
||||
-> License expiration warning can be sent via email or disabled
|
||||
- Fixed bugs:
|
||||
-> Captcha don't show anymore in Self Service login page (213)
|
||||
-> Unix memberships cannot be changed. This issue can also affect other membership relations.
|
||||
|
||||
|
||||
17.03.2020 7.1
|
||||
|
|
|
@ -1 +1 @@
|
|||
7.2.DEV
|
||||
7.2.RC1
|
||||
|
|
|
@ -238,9 +238,9 @@ $helpArray = array (
|
|||
'287' => array ("Headline" => _('Licence'),
|
||||
"Text" => _('Please enter your licence key.')),
|
||||
'288' => array ("Headline" => _('Expiration warning'),
|
||||
"Text" => _('Please select how to be warned before your license expires.')),
|
||||
"Text" => _('Please select how to be warned before your licence expires.')),
|
||||
'289' => array ("Headline" => _('From address'),
|
||||
"Text" => _('This email address will be set as sender address of all mails.')),
|
||||
"Text" => _('This email address will be set as sender address of the mails.')),
|
||||
'290' => array ("Headline" => _('TO address'),
|
||||
"Text" => _('This email address will be set as TO address for the mails.')),
|
||||
// 300 - 399
|
||||
|
@ -388,7 +388,7 @@ $helpArray = array (
|
|||
// jobs
|
||||
'800' => array(
|
||||
"Headline" => _('From address'),
|
||||
"Text" => _('This email address will be set as sender address of all mails.')
|
||||
"Text" => _('This email address will be set as sender address of the mails.')
|
||||
),
|
||||
'801' => array(
|
||||
"Headline" => _('Reply-to address'),
|
||||
|
|
|
@ -756,7 +756,7 @@ function searchLDAPByAttribute($name, $value, $objectClass, $attributes, $scopes
|
|||
$filter = '';
|
||||
$filterParts = array();
|
||||
if ($name != null) {
|
||||
$filterParts[] = '(' . $name . '=' . ldap_escape($value) . ')';
|
||||
$filterParts[] = '(' . $name . '=' . ldap_escape($value, '*', LDAP_ESCAPE_FILTER) . ')';
|
||||
}
|
||||
if ($objectClass != null) {
|
||||
$filterParts[] = '(objectClass=' . $objectClass . ')';
|
||||
|
|
|
@ -599,6 +599,9 @@ class quota extends baseModule {
|
|||
}
|
||||
$dirs = explode(":", $quotas);
|
||||
array_pop($dirs); // remove empty element at the end
|
||||
if (empty($dirs)) {
|
||||
continue;
|
||||
}
|
||||
for ($i = 0; $i < sizeof($dirs); $i++) {
|
||||
if (strpos($dirs[$i], self::$QUOTA_PREFIX) !== 0) {
|
||||
unset($dirs[$i]);
|
||||
|
@ -660,41 +663,40 @@ class quota extends baseModule {
|
|||
$remote->disconnect();
|
||||
$dirs = explode(":", $quotas);
|
||||
array_pop($dirs); // remove empty element at the end
|
||||
for ($i = 0; $i < sizeof($dirs); $i++) {
|
||||
if (strpos($dirs[$i], self::$QUOTA_PREFIX) !== 0) {
|
||||
unset($dirs[$i]);
|
||||
$i--;
|
||||
if (empty($dirs)) {
|
||||
continue;
|
||||
}
|
||||
$dirs[$i] = substr($dirs[$i], strlen(self::$QUOTA_PREFIX));
|
||||
$dirs[$i] = explode(",", $dirs[$i]);
|
||||
$dirs[$i] = $dirs[$i][0];
|
||||
$quotaDirs = array();
|
||||
foreach ($dirs as $dirString) {
|
||||
if (strpos($dirString, self::$QUOTA_PREFIX) !== 0) {
|
||||
continue;
|
||||
}
|
||||
$dirs = array_values($dirs);
|
||||
for ($i = 0; $i < sizeof($dirs); $i++) {
|
||||
if (!empty($options["quota_softblock_" . $id . "_" . $dirs[$i]][0]) && !get_preg($options["quota_softblock_" . $id . "_" . $dirs[$i]][0], 'quotaNumber')) {
|
||||
$dirData = explode(",", substr($dirString, strlen(self::$QUOTA_PREFIX)));
|
||||
$quotaDirs[] = $dirData[0];
|
||||
}
|
||||
foreach ($quotaDirs as $dirName) {
|
||||
if (!empty($options["quota_softblock_" . $id . "_" . $dirName][0]) && !get_preg($options["quota_softblock_" . $id . "_" . $dirName][0], 'quotaNumber')) {
|
||||
$return[] = $this->messages['softblock'][0];
|
||||
}
|
||||
if (!empty($options["quota_hardblock_" . $id . "_" . $dirs[$i]][0]) && !get_preg($options["quota_hardblock_" . $id . "_" . $dirs[$i]][0], 'quotaNumber')) {
|
||||
if (!empty($options["quota_hardblock_" . $id . "_" . $dirName][0]) && !get_preg($options["quota_hardblock_" . $id . "_" . $dirName][0], 'quotaNumber')) {
|
||||
$return[] = $this->messages['hardblock'][0];
|
||||
}
|
||||
if (!empty($options["quota_softinode_" . $id . "_" . $dirs[$i]][0]) && !get_preg($options["quota_softinode_" . $id . "_" . $dirs[$i]][0], 'quotaNumber')) {
|
||||
if (!empty($options["quota_softinode_" . $id . "_" . $dirName][0]) && !get_preg($options["quota_softinode_" . $id . "_" . $dirName][0], 'quotaNumber')) {
|
||||
$return[] = $this->messages['softinode'][0];
|
||||
}
|
||||
if (!empty($options["quota_hardinode_" . $id . "_" . $dirs[$i]][0]) && !get_preg($options["quota_hardinode_" . $id . "_" . $dirs[$i]][0], 'quotaNumber')) {
|
||||
if (!empty($options["quota_hardinode_" . $id . "_" . $dirName][0]) && !get_preg($options["quota_hardinode_" . $id . "_" . $dirName][0], 'quotaNumber')) {
|
||||
$return[] = $this->messages['hardinode'][0];
|
||||
}
|
||||
if (!empty($options["quota_softblock_" . $id . "_" . $dirs[$i]][0])
|
||||
&& !empty($options["quota_hardblock_" . $id . "_" . $dirs[$i]][0])
|
||||
&& ($this->getQuotaNumber($options["quota_softblock_" . $id . "_" . $dirs[$i]][0]) > $this->getQuotaNumber($options["quota_hardblock_" . $id . "_" . $dirs[$i]][0]))) {
|
||||
if (!empty($options["quota_softblock_" . $id . "_" . $dirName][0])
|
||||
&& !empty($options["quota_hardblock_" . $id . "_" . $dirName][0])
|
||||
&& ($this->getQuotaNumber($options["quota_softblock_" . $id . "_" . $dirName][0]) > $this->getQuotaNumber($options["quota_hardblock_" . $id . "_" . $dirName][0]))) {
|
||||
$return[] = $this->messages['block_cmp'][0];
|
||||
}
|
||||
if (!empty($options["quota_softinode_" . $id . "_" . $dirs[$i]][0])
|
||||
&& !empty($options["quota_hardinode_" . $id . "_" . $dirs[$i]][0])
|
||||
&& ($this->getQuotaNumber($options["quota_softinode_" . $id . "_" . $dirs[$i]][0]) > $this->getQuotaNumber($options["quota_hardinode_" . $id . "_" . $dirs[$i]][0]))) {
|
||||
if (!empty($options["quota_softinode_" . $id . "_" . $dirName][0])
|
||||
&& !empty($options["quota_hardinode_" . $id . "_" . $dirName][0])
|
||||
&& ($this->getQuotaNumber($options["quota_softinode_" . $id . "_" . $dirName][0]) > $this->getQuotaNumber($options["quota_hardinode_" . $id . "_" . $dirName][0]))) {
|
||||
$return[] = $this->messages['inode_cmp'][0];
|
||||
}
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
return $return;
|
||||
|
|
|
@ -687,7 +687,7 @@ function getSecurityTokenValue() {
|
|||
function setLAMHeaders() {
|
||||
if (!headers_sent()) {
|
||||
header('X-Frame-Options: sameorigin');
|
||||
header('Content-Security-Policy: frame-ancestors \'self\'; form-action \'self\'; base-uri \'none\'; object-src \'none\'; frame-src \'self\' https://*.duosecurity.com; worker-src \'self\'');
|
||||
header('Content-Security-Policy: frame-ancestors \'self\'; form-action \'self\'; base-uri \'none\'; object-src \'none\'; frame-src \'self\' https://*.duosecurity.com https://www.google.com/recaptcha/; worker-src \'self\'');
|
||||
header('X-Content-Type-Options: nosniff');
|
||||
header('X-XSS-Protection: 1; mode=block');
|
||||
header("Feature-Policy: ambient-light-sensor 'none'; autoplay 'none'; accelerometer 'none'; camera 'none'; encrypted-media 'none'; fullscreen 'self'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; midi 'none'; payment 'none'; picture-in-picture 'none'; speaker 'none'; sync-xhr 'self'; usb 'none'; vr 'none'");
|
||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -287,6 +287,11 @@ table.collapse {
|
|||
|
||||
.rightToLeftText {
|
||||
text-align: right;
|
||||
text-align-last: right;
|
||||
}
|
||||
|
||||
.rightToLeftText option {
|
||||
direction: rtl;
|
||||
}
|
||||
|
||||
.text-left {
|
||||
|
|
|
@ -111,11 +111,11 @@ if (isset($_POST['submitFormData'])) {
|
|||
$cfg->licenseEmailTo = $_POST['licenseEmailTo'];
|
||||
if ((($cfg->licenseWarningType === LAMCfgMain::LICENSE_WARNING_EMAIL) || ($cfg->licenseWarningType === LAMCfgMain::LICENSE_WARNING_ALL))
|
||||
&& !get_preg($cfg->licenseEmailFrom, 'email')) {
|
||||
$errors[] = _('License') . ': ' . _('From address') . ' - ' . _('Please enter a valid email address!');
|
||||
$errors[] = _('Licence') . ': ' . _('From address') . ' - ' . _('Please enter a valid email address!');
|
||||
}
|
||||
if ((($cfg->licenseWarningType === LAMCfgMain::LICENSE_WARNING_EMAIL) || ($cfg->licenseWarningType === LAMCfgMain::LICENSE_WARNING_ALL))
|
||||
&& !get_preg($cfg->licenseEmailTo, 'email')) {
|
||||
$errors[] = _('License') . ': ' . _('TO address') . ' - ' . _('Please enter a valid email address!');
|
||||
$errors[] = _('Licence') . ': ' . _('TO address') . ' - ' . _('Please enter a valid email address!');
|
||||
}
|
||||
}
|
||||
// set session timeout
|
||||
|
|
Loading…
Reference in New Issue