added clear text password to upload PDF files
This commit is contained in:
parent
4e33f7e5e3
commit
342cb63b7e
|
@ -1400,9 +1400,11 @@ class accountContainer {
|
||||||
* Loads an LDAP account with the given DN.
|
* Loads an LDAP account with the given DN.
|
||||||
*
|
*
|
||||||
* @param string $dn the DN of the account
|
* @param string $dn the DN of the account
|
||||||
|
* @param array $infoAttributes list of additional informational attributes that are added to the LDAP attributes
|
||||||
|
* E.g. this is used to inject the clear text password in the file upload. Informational attribute names must start with "INFO.".
|
||||||
* @return array error messages
|
* @return array error messages
|
||||||
*/
|
*/
|
||||||
function load_account($dn) {
|
function load_account($dn, $infoAttributes = array()) {
|
||||||
logNewMessage(LOG_DEBUG, "Edit account " . $dn);
|
logNewMessage(LOG_DEBUG, "Edit account " . $dn);
|
||||||
$this->module = array();
|
$this->module = array();
|
||||||
$modules = $_SESSION['config']->get_AccountModules($this->type);
|
$modules = $_SESSION['config']->get_AccountModules($this->type);
|
||||||
|
@ -1436,6 +1438,8 @@ class accountContainer {
|
||||||
$attr[$binaryAttr[$i]] = $binData;
|
$attr[$binaryAttr[$i]] = $binData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// add informational attributes
|
||||||
|
$attr = array_merge($attr, $infoAttributes);
|
||||||
// save original attributes
|
// save original attributes
|
||||||
$this->attributes_orig = $attr;
|
$this->attributes_orig = $attr;
|
||||||
|
|
||||||
|
|
|
@ -140,7 +140,7 @@ class posixAccount extends baseModule implements passwordService {
|
||||||
$return['LDAPaliases'] = array('commonName' => 'cn', 'userid' => 'uid');
|
$return['LDAPaliases'] = array('commonName' => 'cn', 'userid' => 'uid');
|
||||||
// managed attributes
|
// managed attributes
|
||||||
$return['attributes'] = array('cn', 'uid', 'uidNumber', 'gidNumber', 'homeDirectory',
|
$return['attributes'] = array('cn', 'uid', 'uidNumber', 'gidNumber', 'homeDirectory',
|
||||||
'userPassword', 'loginShell', 'gecos');
|
'userPassword', 'loginShell', 'gecos', 'INFO.userPasswordClearText');
|
||||||
if ($this->get_scope() == "user") {
|
if ($this->get_scope() == "user") {
|
||||||
// self service search attributes
|
// self service search attributes
|
||||||
$return['selfServiceSearchAttributes'] = array('uid');
|
$return['selfServiceSearchAttributes'] = array('uid');
|
||||||
|
@ -1483,6 +1483,9 @@ class posixAccount extends baseModule implements passwordService {
|
||||||
if (isset($this->clearTextPassword)) {
|
if (isset($this->clearTextPassword)) {
|
||||||
$return['posixAccount_userPassword'] = array('<block><key>' . _('Password') . '</key><value>' . $this->clearTextPassword . '</value></block>');
|
$return['posixAccount_userPassword'] = array('<block><key>' . _('Password') . '</key><value>' . $this->clearTextPassword . '</value></block>');
|
||||||
}
|
}
|
||||||
|
else if (isset($this->attributes['INFO.userPasswordClearText'])) {
|
||||||
|
$return['posixAccount_userPassword'] = array('<block><key>' . _('Password') . '</key><value>' . $this->attributes['INFO.userPasswordClearText'] . '</value></block>');
|
||||||
|
}
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -180,11 +180,18 @@ if (($_SESSION['mass_counter'] < sizeof($accounts)) || !isset($_SESSION['mass_po
|
||||||
<?php
|
<?php
|
||||||
flush();
|
flush();
|
||||||
while (!isset($_SESSION['mass_pdf']['finished']) && (($startTime + $maxTime) > time())) {
|
while (!isset($_SESSION['mass_pdf']['finished']) && (($startTime + $maxTime) > time())) {
|
||||||
// load account
|
|
||||||
$attrs = $accounts[$_SESSION['mass_pdf']['counter']];
|
$attrs = $accounts[$_SESSION['mass_pdf']['counter']];
|
||||||
$dn = $attrs['dn'];
|
$dn = $attrs['dn'];
|
||||||
|
// get informational attributes
|
||||||
|
$infoAttributes = array();
|
||||||
|
foreach ($attrs as $key => $value) {
|
||||||
|
if (strpos($key, 'INFO.') === 0) {
|
||||||
|
$infoAttributes[$key] = $value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// load account
|
||||||
$_SESSION['pdfAccount'] = new accountContainer($_SESSION['mass_scope'], 'pdfAccount');
|
$_SESSION['pdfAccount'] = new accountContainer($_SESSION['mass_scope'], 'pdfAccount');
|
||||||
$pdfErrors = $_SESSION['pdfAccount']->load_account($dn);
|
$pdfErrors = $_SESSION['pdfAccount']->load_account($dn, $infoAttributes);
|
||||||
if (sizeof($pdfErrors) > 0) {
|
if (sizeof($pdfErrors) > 0) {
|
||||||
$_SESSION['mass_errors'] = array_merge($_SESSION['mass_errors'], $pdfErrors);
|
$_SESSION['mass_errors'] = array_merge($_SESSION['mass_errors'], $pdfErrors);
|
||||||
$_SESSION['mass_pdf']['finished'] = true;
|
$_SESSION['mass_pdf']['finished'] = true;
|
||||||
|
|
Loading…
Reference in New Issue