implemented profile loading

This commit is contained in:
Roland Gruber 2005-01-29 12:05:16 +00:00
parent 301bb7edf4
commit 3c27a809b2
1 changed files with 92 additions and 16 deletions

View File

@ -106,6 +106,15 @@ class sambaSamAccount extends baseModule {
'type' => 'ext_preg',
'regex' => 'unixhost',
'error_message' => $this->messages['workstations'][0]);
// profile mappings
$return['profile_mappings'] = array(
'sambaSamAccount_homeDrive' => 'sambaHomeDrive',
'sambaSamAccount_smbhome' => 'sambaHomePath',
'sambaSamAccount_profilePath' => 'sambaProfilePath',
'sambaSamAccount_scriptPath' => 'sambaLogonScript',
'sambaSamAccount_userWorkstations' => 'sambaUserWorkstations',
'sambaSamAccount_sambaDomainName' => 'sambaDomainName'
);
// available PDF fields
$return['PDF_fields'] = array(
'displayName',
@ -331,17 +340,30 @@ class sambaSamAccount extends baseModule {
return $return;
}
// Constructor
/**
* Initializes the module after it became part of an accountContainer
*
* @param string $base the name of the accountContainer object ($_SESSION[$base])
*/
function init($base) {
// call parent init
parent::init($base);
$this->useunixpwd=false;
}
$this->noexpire = true;
$this->nopwd = false;
$this->deactivated = false;
}
// Variables
// use unix password as samba password?
/** use unix password as samba password? */
var $useunixpwd;
// Array of well known rids
/** use no password? */
var $nopwd;
/** password does not expire? */
var $noexpire;
/** account deactivated? */
var $deactivated;
/** array of well known rids */
var $rids;
@ -400,6 +422,9 @@ class sambaSamAccount extends baseModule {
*/
function load_attributes($attr) {
$this->load_ldap_attributes($attr);
if (strpos($this->attributes['sambaAcctFlags'][0], "D")) $this->deactivated = true;
if (strpos($this->attributes['sambaAcctFlags'][0], "N")) $this->nopwd = true;
if (strpos($this->attributes['sambaAcctFlags'][0], "X")) $this->noexpire = true;
// Delete password. We don't want to show an encrypted password because it makes no sense
$this->sambaLMPassword('');
return 0;
@ -484,9 +509,27 @@ class sambaSamAccount extends baseModule {
$RIDbase = $sambaDomains[$i]->RIDbase;
}
$flag = "[";
if ($post['sambaAcctFlagsD']) $flag .= "D";
if ($post['sambaAcctFlagsX']) $flag .= "X";
if ($post['sambaAcctFlagsN']) $flag .= "N";
if ($post['sambaAcctFlagsD']) {
$flag .= "D";
$this->deactivated = true;
}
else {
$this->deactivated = false;
}
if ($post['sambaAcctFlagsX']) {
$flag .= "X";
$this->noexpire = true;
}
else {
$this->noexpire = false;
}
if ($post['sambaAcctFlagsN']) {
$flag .= "N";
$this->nopwd = true;
}
else {
$this->nopwd = false;
}
if ($post['sambaAcctFlagsS']) $flag .= "S";
if ($post['sambaAcctFlagsH']) $flag .= "H";
if ($post['sambaAcctFlagsW']) $flag .= "W";
@ -678,20 +721,14 @@ class sambaSamAccount extends baseModule {
1 => array ( 'kind' => 'input', 'name' => 'useunixpwd', 'type' => 'checkbox', 'checked' => $this->useunixpwd),
2 => array ('kind' => 'help', 'value' => 'useunixpwd'));
}
$checked = false;
if (strpos($this->attributes['sambaAcctFlags'][0], "N")) $checked = true;
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Use no password') ),
1 => array ( 'kind' => 'input', 'name' => 'sambaAcctFlagsN', 'type' => 'checkbox', 'checked' => $checked, 'value' => 'true'),
1 => array ( 'kind' => 'input', 'name' => 'sambaAcctFlagsN', 'type' => 'checkbox', 'checked' => $this->nopwd, 'value' => 'true'),
2 => array ('kind' => 'help', 'value' => 'sambaAcctFlagsN'));
$checked = false;
if (strpos($this->attributes['sambaAcctFlags'][0], "X")) $checked = true;
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Password does not expire') ),
1 => array ( 'kind' => 'input', 'name' => 'sambaAcctFlagsX', 'type' => 'checkbox', 'checked' => $checked, 'value' => 'true'),
1 => array ( 'kind' => 'input', 'name' => 'sambaAcctFlagsX', 'type' => 'checkbox', 'checked' => $this->noexpire, 'value' => 'true'),
2 => array ('kind' => 'help', 'value' => 'sambaAcctFlagsX'));
$checked = false;
if (strpos($this->attributes['sambaAcctFlags'][0], "D")) $checked = true;
$return[] = array ( 0 => array ( 'kind' => 'text', 'text' => _('Account is deactivated') ),
1 => array ( 'kind' => 'input', 'name' => 'sambaAcctFlagsD', 'type' => 'checkbox', 'checked' => $checked, 'value' => 'true'),
1 => array ( 'kind' => 'input', 'name' => 'sambaAcctFlagsD', 'type' => 'checkbox', 'checked' => $this->deactivated, 'value' => 'true'),
2 => array ('kind' => 'help', 'value' => 'sambaAcctFlagsD'));
for ( $i=1; $i<=31; $i++ ) $mday[] = $i;
for ( $i=1; $i<=12; $i++ ) $mon[] = $i;
@ -907,6 +944,45 @@ class sambaSamAccount extends baseModule {
return $return;
}
/**
* Loads the values of an account profile into internal variables.
*
* @param array $profile hash array with profile values (identifier => value)
*/
function load_profile($profile) {
// profile mappings in meta data
parent::load_profile($profile);
// special profile options
// use Unix password
if ($profile['sambaSamAccount_useunixpwd'][0] == "true") {
$this->useunixpwd = true;
}
elseif ($profile['sambaSamAccount_useunixpwd'][0] == "false") {
$this->useunixpwd = false;
}
// use no password
if ($profile['sambaSamAccount_acctFlagsN'][0] == "true") {
$this->nopwd = true;
}
elseif ($profile['sambaSamAccount_acctFlagsN'][0] == "false") {
$this->nopwd = false;
}
// password expiration
if ($profile['sambaSamAccount_acctFlagsX'][0] == "true") {
$this->noexpire = true;
}
elseif ($profile['sambaSamAccount_acctFlagsX'][0] == "false") {
$this->noexpire = false;
}
// use no password
if ($profile['sambaSamAccount_acctFlagsD'][0] == "true") {
$this->deactivated = true;
}
elseif ($profile['sambaSamAccount_acctFlagsD'][0] == "false") {
$this->deactivated = false;
}
}
/*
* (non-PHPDoc)
* @see baseModule#get_pdfEntries