From f2b5b809b2aa9234937fad1958d9cacc0fd681ce Mon Sep 17 00:00:00 2001 From: katagia Date: Mon, 15 Sep 2003 16:22:04 +0000 Subject: [PATCH] added separate useredit.php page --- lam/lib/account.inc | 4 +- lam/style/500_layout.css | 8 +- lam/templates/account/groupedit.php | 49 +- lam/templates/account/hostedit.php | 37 +- lam/templates/account/useredit.php | 992 ++++++++++++++++++++++++++++ 5 files changed, 1047 insertions(+), 43 deletions(-) create mode 100644 lam/templates/account/useredit.php diff --git a/lam/lib/account.inc b/lam/lib/account.inc index 1b751f42..849e491a 100644 --- a/lam/lib/account.inc +++ b/lam/lib/account.inc @@ -443,7 +443,7 @@ function checkquota($values) { // This function checks all quota paramters $i++; } // Return values and errors - if (!$errors) return array($return); + if (!isset($errors)) return array($return); else return array($return, $errors); } @@ -461,7 +461,7 @@ function checkpersonal($values) { if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $values->personal_title)) $errors[] = array('ERROR', _('Title'), _('Please enter a valid title!')); if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $values->personal_employeeType)) $errors[] = array('ERROR', _('Employee type'), _('Please enter a valid employee type!')); if ( !ereg('^([0-9]|[A-Z]|[a-z])*$', $values->personal_postalCode)) $errors[] = array('ERROR', _('Postal code'), _('Please enter a valid postal code!')); - if (!$errors) return array($return, ''); + if (!isset($errors)) return array($return, ''); else return array($return, $errors); } diff --git a/lam/style/500_layout.css b/lam/style/500_layout.css index d99ecadc..75d869bf 100644 --- a/lam/style/500_layout.css +++ b/lam/style/500_layout.css @@ -422,7 +422,7 @@ fieldset.groupedit-middle { } legend.groupedit-bright { - color:#7167bf; + color:blue; } fieldset.groupedit-dark { @@ -430,7 +430,7 @@ fieldset.groupedit-dark { } legend.groupedit-dark { - color:#000000; + color:blue; } select.groupedit-bright { @@ -448,7 +448,7 @@ fieldset.hostedit-bright { } legend.hostedit-bright { - color:#7167bf; + color:blue; } fieldset.hostedit-dark { @@ -456,7 +456,7 @@ fieldset.hostedit-dark { } legend.hostedit-dark { - color:#000000; + color:blue; } select.hostedit-bright { diff --git a/lam/templates/account/groupedit.php b/lam/templates/account/groupedit.php index 39682cae..0a97a293 100644 --- a/lam/templates/account/groupedit.php +++ b/lam/templates/account/groupedit.php @@ -172,23 +172,28 @@ echo "\n". do { // X-Or, only one if() can be true if ($_POST['next_members']) { - if (!isset($errors)) $select_local='groupmembers'; + if (!is_array($errors)) $select_local='groupmembers'; + else $select_local=$_POST['select']; break; } if ($_POST['next_general']) { - if (!isset($errors)) $select_local='general'; + if (!is_array($errors)) $select_local='general'; + else $select_local=$_POST['select']; break; } if ($_POST['next_samba']) { - if (!isset($errors)) $select_local='samba'; + if (!is_array($errors)) $select_local='samba'; + else $select_local=$_POST['select']; break; } if ($_POST['next_quota']) { - if (!isset($errors)) $select_local='quota'; + if (!is_array($errors)) $select_local='quota'; + else $select_local=$_POST['select']; break; } if ($_POST['next_final']) { if (!isset($errors)) $select_local='final'; + else $select_local=$_POST['select']; break; } if ( $_POST['create'] ) { // Create-Button was pressed @@ -260,7 +265,7 @@ switch ($select_local) { // Select which part of page will be loaded ldapreload('user'); echo "\n"; echo "\n\n\n\n
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; @@ -269,8 +274,8 @@ switch ($select_local) { // Select which part of page will be loaded echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "
"; - echo "
". _('Additional group members') . "\n"; + echo "\">
"; + echo "\n
". _('Additional group members') . "\n"; echo "\n"; echo "\n\n
"; echo _('Group members'); @@ -289,7 +294,7 @@ switch ($select_local) { // Select which part of page will be loaded if (is_array($temp)) { echo " \n"; } - echo "
\n
\n
\n"; + echo "
\n\n\n\n"; break; case 'general': @@ -299,7 +304,7 @@ switch ($select_local) { // Select which part of page will be loaded // Show page info echo "\n"; echo "\n\n\n
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; @@ -308,7 +313,7 @@ switch ($select_local) { // Select which part of page will be loaded echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "
"; + echo "\">
"; echo "\n\n
"; echo "
"; echo _("General properties"); @@ -356,7 +361,7 @@ switch ($select_local) { // Select which part of page will be loaded if ($_SESSION['config']->samba3 == 'yes') $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); echo "\n"; echo "\n\n
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; @@ -365,8 +370,8 @@ switch ($select_local) { // Select which part of page will be loaded echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "
"; - echo "
"._('Samba properties')."\n"; + echo "\">
"; + echo "\n
"._('Samba properties')."\n"; echo "\n'."\n".''."\n"; - echo "
"; echo _('Windows groupname'); echo "'._('Help').'
\n
\n
\n"; + echo "
\n
\n
\n"; break; case 'quota': // Quota Settings echo "\n"; echo "\n\n
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; @@ -436,9 +441,9 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n
"; echo "\n
"; echo "
"; + echo "\">
"; echo ''; - echo "
"._('Quota properties')."\n"; + echo "\n
"._('Quota properties')."\n"; echo "'."\n".''."\n".''."\n".''."\n".''; // inodes grace period $i++; } - echo "
"; echo _('Mountpoint'); echo ''; echo _('Used blocks'); echo ''; echo _('Soft block limit'); echo ''; echo _('Hard block limit'); echo ''; echo _('Grace block period'); @@ -461,7 +466,7 @@ switch ($select_local) { // Select which part of page will be loaded echo ''.$_SESSION['account']->quota[$i][8].'
\n
\n
\n"; + echo "
\n\n\n\n"; break; case 'final': @@ -469,7 +474,7 @@ switch ($select_local) { // Select which part of page will be loaded echo ''; echo "\n"; echo "\n\n\n"; + if (isset($_SESSION['shelllist'])) unset($_SESSION['shelllist']); + if (isset($_SESSION['account'])) unset($_SESSION['account']); + if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); + break; + } + +// Print end of HTML-Page +if ($select_local != 'pdf') + echo ''; +?>
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; @@ -478,11 +483,11 @@ switch ($select_local) { // Select which part of page will be loaded echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "
"; + echo "\">
"; echo "\n\n
"; - echo "
"; + echo "
"; echo _("Save profile"); - echo "\n\n\n
"; + echo "\n\n\n
"; echo ''; echo 'type = 'host'; + $_SESSION['account']->smb_flagsW = 1; $_SESSION['account_old'] = $_SESSION['account']; + $_SESSION['account']->unix_password=''; + $_SESSION['account']->smb_password=''; $_SESSION['account']->general_dn = substr($_SESSION['account']->general_dn, strpos($_SESSION['account']->general_dn, ',')+1); $_SESSION['final_changegids'] = ''; } else { $_SESSION['account'] = loadHostProfile('default'); $_SESSION['account'] ->type = 'host'; + $_SESSION['account']->smb_flagsW = 1; if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); } } else if (count($_POST)==0) { // Startcondition. groupedit.php was called from outside $_SESSION['account'] = loadHostProfile('default'); $_SESSION['account'] ->type = 'host'; + $_SESSION['account']->smb_flagsW = 1; if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); } @@ -118,7 +123,7 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch break; } -// Write HTML-Header and part of Table +// Write HTML-Header echo $_SESSION['header']; echo ""; echo _("Create new Account"); @@ -129,15 +134,18 @@ echo "\n". do { // X-Or, only one if() can be true if ($_POST['next_general']) { - if (!isset($errors)) $select_local='general'; + if (!is_array($errors)) $select_local='general'; + else $select_local=$_POST['select']; break; } if ($_POST['next_samba']) { - if (!isset($errors)) $select_local='samba'; + if (!is_array($errors)) $select_local='samba'; + else $select_local=$_POST['select']; break; } if ($_POST['next_final']) { - if (!isset($errors)) $select_local='final'; + if (!is_array($errors)) $select_local='final'; + else $select_local=$_POST['select']; break; } if ( $_POST['create'] ) { // Create-Button was pressed @@ -211,13 +219,13 @@ switch ($select_local) { // Select which part of page will be loaded // Show page info echo ''; echo "\n\n\n
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; echo "\n
"; echo "
"; + echo "\">
"; echo "\n\n
"; echo "
"; echo _("General properties"); @@ -278,18 +286,17 @@ switch ($select_local) { // Select which part of page will be loaded case 'samba': // Samba Settings if ($_SESSION['config']->samba3 == 'yes') $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); - $_SESSION['account']->smb_flagsW = 1; if ($_SESSION['account']->smb_password_no) echo ''; echo ''; echo "\n\n
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; echo "\n
"; echo "
"; - echo "
"._('Samba properties')."\n"; + echo "\">
"; + echo "\n
"._('Samba properties')."\n"; echo "'."\n".''."\n".''."\n"; - echo "
"; echo _('Password'); echo ''; @@ -322,22 +329,22 @@ switch ($select_local) { // Select which part of page will be loaded echo ''; } echo ''._('Help').'
\n
\n
\n"; + echo "
\n
\n
\n"; break; case 'final': // Final Settings echo ''; echo "\n\n
"; - echo "
"; + echo "\n
"; echo _('Please select page:'); echo "\n"; echo "\n
"; echo "\n
"; echo "
"; + echo "\">
"; echo "\n\n
"; - echo "
"; + echo "
"; echo _("Save profile"); echo "\n\n\n
"; echo ''; @@ -389,7 +396,7 @@ switch ($select_local) { // Select which part of page will be loaded if ($_SESSION['account_old']) echo _('Modify Account'); else echo _('Create Account'); echo '">'."\n"; - echo "
\n
\n
"; + echo "
\n
\n
"; break; case 'finish': // Final Settings diff --git a/lam/templates/account/useredit.php b/lam/templates/account/useredit.php new file mode 100644 index 00000000..eb85c448 --- /dev/null +++ b/lam/templates/account/useredit.php @@ -0,0 +1,992 @@ +type = 'user'; + $_SESSION['account_old'] = $_SESSION['account']; + $_SESSION['account']->unix_password=''; + $_SESSION['account']->smb_password=''; + $_SESSION['account']->smb_flagsW = 0; + $_SESSION['account']->general_dn = substr($_SESSION['account']->general_dn, strpos($_SESSION['account']->general_dn, ',')+1); + $_SESSION['final_changegids'] = ''; + } + else { + $_SESSION['account'] = loadUserProfile('default'); + $_SESSION['account'] ->type = 'user'; + $_SESSION['account']->smb_flagsW = 0; + if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); + } + } +else if (count($_POST)==0) { // Startcondition. useredit.php was called from outside + $_SESSION['account'] = loadUserProfile('default'); + $_SESSION['account'] ->type = 'user'; + $_SESSION['account']->smb_flagsW = 0; + if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); + } + + +switch ($_POST['select']) { // Select which part of page should be loaded and check values + // general = startpage, general account paramters + // unix = page with all shadow-options and password + // samba = page with all samba-related parameters e.g. smbpassword + // quota = page with all quota-related parameters e.g. hard file quota + // personal = page with all personal-related parametergs, e.g. phone number + // final = last page shown before account is created/modified + // if account is modified commands might be ran are shown + // finish = page shown after account has been created/modified + case 'general': + // Write all general values into $_SESSION['account'] if no profile should be loaded + if (!$_POST['load']) { + $_SESSION['account']->general_dn = $_POST['f_general_suffix']; + $_SESSION['account']->general_username = $_POST['f_general_username']; + $_SESSION['account']->general_surname = $_POST['f_general_surname']; + $_SESSION['account']->general_givenname = $_POST['f_general_givenname']; + $_SESSION['account']->general_uidNumber = $_POST['f_general_uidNumber']; + $_SESSION['account']->general_group = $_POST['f_general_group']; + if (isset($_POST['f_general_groupadd'])) $_SESSION['account']->general_groupadd = $_POST['f_general_groupadd']; + else $_SESSION['account']->general_groupadd = array(''); + $_SESSION['account']->general_homedir = $_POST['f_general_homedir']; + $_SESSION['account']->general_shell = $_POST['f_general_shell']; + $_SESSION['account']->general_gecos = $_POST['f_general_gecos']; + // Check if values are OK and set automatic values. if not error-variable will be set + if ($_SESSION['account_old']) list($values, $errors) = checkglobal($_SESSION['account'], $_SESSION['account']->type, $_SESSION['account_old']); // account.inc + else list($values, $errors) = checkglobal($_SESSION['account'], $_SESSION['account']->type); // account.inc + if (is_object($values)) { + while (list($key, $val) = each($values)) // Set only defined values + if (isset($val)) $_SESSION['account']->$key = $val; + } + } + + break; + case 'unix': + // Write all general values into $_SESSION['account'] + if (isset($_POST['f_unix_password'])) { + // Encraypt password + $iv = base64_decode($_COOKIE["IV"]); + $key = base64_decode($_COOKIE["Key"]); + $_SESSION['account']->unix_password = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $_POST['f_unix_password'], MCRYPT_MODE_ECB, $iv)); + } + else $_SESSION['account']->unix_password = ''; + if ($_POST['f_unix_password_no']) $_SESSION['account']->unix_password_no = true; + else $_SESSION['account']->unix_password_no = false; + $_SESSION['account']->unix_pwdwarn = $_POST['f_unix_pwdwarn']; + $_SESSION['account']->unix_pwdallowlogin = $_POST['f_unix_pwdallowlogin']; + $_SESSION['account']->unix_pwdmaxage = $_POST['f_unix_pwdmaxage']; + $_SESSION['account']->unix_pwdminage = $_POST['f_unix_pwdminage']; + $_SESSION['account']->unix_host = $_POST['f_unix_host']; + $_SESSION['account']->unix_pwdexpire = mktime(10, 0, 0, $_POST['f_unix_pwdexpire_mon'], + $_POST['f_unix_pwdexpire_day'], $_POST['f_unix_pwdexpire_yea']); + if ($_POST['f_unix_deactivated']) $_SESSION['account']->unix_deactivated = $_POST['f_unix_deactivated']; + else $_SESSION['account']->unix_deactivated = false; + if ($_POST['genpass']) { + // Generate a random password if generate-button was pressed + $iv = base64_decode($_COOKIE["IV"]); + $key = base64_decode($_COOKIE["Key"]); + $_SESSION['account']->unix_password = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, genpasswd(), MCRYPT_MODE_ECB, $iv)); + // Keep unix-page acitve + $select_local = 'unix'; + } + // Check if values are OK and set automatic values. if not error-variable will be set + else $errors = checkunix($_SESSION['account'], $_SESSION['account']->type); // account.inc + break; + case 'samba': + // Write all general values into $_SESSION['account'] + if ($_POST['f_smb_password']) { + // Encrypt password + $iv = base64_decode($_COOKIE["IV"]); + $key = base64_decode($_COOKIE["Key"]); + $_SESSION['account']->smb_password = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, base64_decode($_COOKIE['Key']), $_POST['f_smb_password'], + MCRYPT_MODE_ECB, base64_decode($_COOKIE['IV']))); + } + else $_SESSION['account']->smb_password = ""; + $_SESSION['account']->smb_pwdcanchange = mktime($_POST['f_smb_pwdcanchange_s'], $_POST['f_smb_pwdcanchange_m'], $_POST['f_smb_pwdcanchange_h'], + $_POST['f_smb_pwdcanchange_mon'], $_POST['f_smb_pwdcanchange_day'], $_POST['f_smb_pwdcanchange_yea']); + $_SESSION['account']->smb_pwdmustchange = mktime($_POST['f_smb_pwdmustchange_s'], $_POST['f_smb_pwdmustchange_m'], $_POST['f_smb_pwdmustchange_h'], + $_POST['f_smb_pwdmustchange_mon'], $_POST['f_smb_pwdmustchange_day'], $_POST['f_smb_pwdmustchange_yea']); + if ($_POST['f_smb_password_no']) $_SESSION['account']->smb_password_no = true; + else $_SESSION['account']->smb_password_no = false; + if ($_POST['f_smb_useunixpwd']) $_SESSION['account']->smb_useunixpwd = $_POST['f_smb_useunixpwd']; + else $_SESSION['account']->smb_useunixpwd = false; + $_SESSION['account']->smb_homedrive = $_POST['f_smb_homedrive']; + $_SESSION['account']->smb_scriptPath = $_POST['f_smb_scriptpath']; + $_SESSION['account']->smb_smbuserworkstations = $_POST['f_smb_smbuserworkstations']; + $_SESSION['account']->smb_smbhome = stripslashes($_POST['f_smb_smbhome']); + $_SESSION['account']->smb_profilePath = stripslashes($_POST['f_smb_profilePath']); + if ($_POST['f_smb_flagsW']) $_SESSION['account']->smb_flagsW = true; + else $_SESSION['account']->smb_flagsW = false; + if ($_POST['f_smb_flagsD']) $_SESSION['account']->smb_flagsD = true; + else $_SESSION['account']->smb_flagsD = false; + if ($_POST['f_smb_flagsX']) $_SESSION['account']->smb_flagsX = true; + else $_SESSION['account']->smb_flagsX = false; + + if ($_SESSION['config']->samba3 == 'yes') { + $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); + for ($i=0; $iname) { + $_SESSION['account']->smb_domain = $samba3domains[$i]; + } + } + else { + if (isset($_POST['f_smb_domain'])) $_SESSION['account']->smb_domain = $_POST['f_smb_domain']; + else $_SESSION['account']->smb_domain = ''; + } + + switch ($_POST['f_smb_mapgroup']) { + case '*'._('Domain Guests'): $_SESSION['account']->smb_mapgroup = $_SESSION['account']->smb_domain->SID . "-" . '514'; break; + case '*'._('Domain Users'): $_SESSION['account']->smb_mapgroup = $_SESSION['account']->smb_domain->SID . "-" . '513'; break; + case '*'._('Domain Admins'): $_SESSION['account']->smb_mapgroup = $_SESSION['account']->smb_domain->SID . "-" . '512'; break; + case $_SESSION['account']->general_group: + if ($_SESSION['config']->samba3 == 'yes') + $_SESSION['account']->smb_mapgroup = $_SESSION['account']->smb_domain->SID . "-". + (2 * getgid($_SESSION['account']->general_group) + $_SESSION['account']->smb_domain->RIDbase +1); + else $_SESSION['account']->smb_mapgroup = (2 * getgid($_SESSION['account']->general_group) + 1001); + break; + case $_SESSION['account']->general_username: + if ($_SESSION['config']->samba3 == 'yes') + $_SESSION['account']->smb_mapgroup = $_SESSION['account']->smb_domain->SID . "-". + (2 * $_SESSION['account']->general_uidNumber + $_SESSION['account']->smb_domain->RIDbase +1); + else $_SESSION['account']->smb_mapgroup = (2 * $_SESSION['account']->general_uidNumber + 1001); + break; + } + // Reset password if reset button was pressed. Button only vissible if account should be modified + // Check if values are OK and set automatic values. if not error-variable will be set + list($values, $errors) = checksamba($_SESSION['account'], $_SESSION['account']->type); // account.inc + if (is_object($values)) { + while (list($key, $val) = each($values)) // Set only defined values + if (isset($val)) $_SESSION['account']->$key = $val; + } + + if ($_POST['respass']) { + $_SESSION['account']->unix_password_no=true; + $_SESSION['account']->smb_password_no=true; + $select_local = 'samba'; + } + break; + case 'quota': + // Write all general values into $_SESSION['account'] + $i=0; + while ($_SESSION['account']->quota[$i][0]) { + $_SESSION['account']->quota[$i][2] = $_POST['f_quota_'.$i.'_2']; + $_SESSION['account']->quota[$i][3] = $_POST['f_quota_'.$i.'_3']; + $_SESSION['account']->quota[$i][6] = $_POST['f_quota_'.$i.'_6']; + $_SESSION['account']->quota[$i][7] = $_POST['f_quota_'.$i.'_7']; + $i++; + } + // Check if values are OK and set automatic values. if not error-variable will be set + list($values, $errors) = checkquota($_SESSION['account'], $_SESSION['account']->type); // account.inc + if (is_object($values)) { + while (list($key, $val) = each($values)) // Set only defined values + if (isset($val)) $_SESSION['account']->$key = $val; + } + // Check which part Site should be displayed next + break; + case 'personal': + // Write all general values into $_SESSION['account'] + $_SESSION['account']->personal_title = $_POST['f_personal_title']; + $_SESSION['account']->personal_mail = $_POST['f_personal_mail']; + $_SESSION['account']->personal_telephoneNumber = $_POST['f_personal_telephoneNumber']; + $_SESSION['account']->personal_mobileTelephoneNumber = $_POST['f_personal_mobileTelephoneNumber']; + $_SESSION['account']->personal_facsimileTelephoneNumber = $_POST['f_personal_facsimileTelephoneNumber']; + $_SESSION['account']->personal_street = $_POST['f_personal_street']; + $_SESSION['account']->personal_postalCode = $_POST['f_personal_postalCode']; + $_SESSION['account']->personal_postalAddress = $_POST['f_personal_postalAddress']; + $_SESSION['account']->personal_employeeType = $_POST['f_personal_employeeType']; + // Check if values are OK and set automatic values. if not error-variable will be set + list($values, $errors) = checkpersonal($_SESSION['account'], $_SESSION['account']->type); // account.inc + if (is_object($values)) { + while (list($key, $val) = each($values)) // Set only defined values + if (isset($val)) $_SESSION['account']->$key = $val; + } + break; + case 'final': + // Write all general values into $_SESSION['account'] + if ($_POST['f_final_changegids']) $_SESSION['final_changegids'] = $_POST['f_final_changegids'] ; + // Check which part Site should be displayed next + break; + case 'finish': + // Check if pdf-file should be created + if ($_POST['outputpdf']) { + createUserPDF(array($_SESSION['account'])); + $select_local = 'pdf'; + } + break; + } + +if ($select_local != 'pdf') { + // Write HTML-Header + echo $_SESSION['header']; + echo ""; + echo _("Create new Account"); + echo "\n". + "\n". + "\n". + "\n"; + } + + +do { // X-Or, only one if() can be true + if ($_POST['next_general']) { + if (!is_array($errors)) $select_local='general'; + else $select_local=$_POST['select']; + break; + } + if ($_POST['next_unix']) { + if (!is_array($errors)) $select_local='unix'; + else $select_local=$_POST['select']; + break; + } + if ($_POST['next_samba']) { + if (!is_array($errors)) $select_local='samba'; + else $select_local=$_POST['select']; + break; + } + if ($_POST['next_quota']) { + if (!is_array($errors)) $select_local='quota'; + else $select_local=$_POST['select']; + break; + } + if ($_POST['next_personal']) { + if (!is_array($errors)) $select_local='personal'; + else $select_local=$_POST['select']; + break; + } + if ($_POST['next_final']) { + if (!is_array($errors)) $select_local='final'; + else $select_local=$_POST['select']; + break; + } + if ( $_POST['create'] ) { // Create-Button was pressed + // Create or modify an account + if ($_SESSION['account_old']) $result = modifyuser($_SESSION['account'],$_SESSION['account_old']); + else $result = createuser($_SESSION['account']); // account.inc + if ( $result==1 || $result==3 ) $select_local = 'finish'; + else $select_local = 'final'; + break; + } + if ($_POST['createagain']) { + $select_local='general'; + unset($_SESSION['account']); + $_SESSION['account'] = loadUserProfile('default'); + $_SESSION['account'] ->type = 'user'; + break; + } + if ($_POST['load']) { + // load profile + if ($_POST['f_general_selectprofile']!='') $values = loadUserProfile($_POST['f_general_selectprofile']); + if (is_object($values)) { + while (list($key, $val) = each($values)) // Set only defined values + if (isset($val)) $_SESSION['account']->$key = $val; + } + // select general page after group has been loaded + $select_local='general'; + break; + } + if ($_POST['save']) { + // save profile + saveUserProfile($_SESSION['account'], $_POST['f_finish_safeProfile']); + // select last page displayed before user is created + $select_local='final'; + break; + } + if ($_POST['backmain']) { + echo "\n"; + $select_local='backmain'; + break; + } + if (!$select_local) $select_local='general'; + } while(0); + + +if ($select_local != 'pdf') { + echo "\n"; + echo "
\n"; + + if (is_array($errors)) { + echo "\n"; + for ($i=0; $i"; + } + } + +// print_r($_SESSION['account']); +// print_r($_POST); + +switch ($select_local) { // Select which part of page will be loaded + // general = startpage, general account paramters + // unix = page with all shadow-options and password + // samba = page with all samba-related parameters e.g. smbpassword + // quota = page with all quota-related parameters e.g. hard file quota + // personal = page with all personal-related parametergs, e.g. phone number + // final = last page shown before account is created/modified + // if account is modified commands might be ran are shown + // finish = page shown after account has been created/modified + case 'general': + // General Account Settings + // load list of all groups + $groups = findgroups(); + $profilelist = getUserProfiles(); + // Show page info + // Show page info + echo ''; + echo "
\n\n
"; + echo "
"; + echo _('Please select page:'); + echo "\n"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "scriptPath)) echo " disabled "; + echo "value=\""; echo _('Quota'); echo "\">\n
"; + echo "\n
"; + echo "
"; + echo "\n\n\n
"; + echo "
"; + echo _("General properties"); + echo "\n\n\n\n'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".'\n\n
"; + echo _('Username').'*'; + echo "". + ''. + ''. + ''._('Help').''. + '
'; + echo _('UID number'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Surname').'*'; + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Given name').'*'; + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Primary group').'*'; + echo ''. + ''._('Help').''. + '
'; + echo _('Additional groups'); + echo ''. + ''._('Help').''. + '
'; + echo _('Home directory').'*'; + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Gecos'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Login shell').'*'; + echo ''. + ''._('Help').''. + '
'; + echo _('Suffix'); echo ''._('Help'). + "
"; + echo _('Values with * are required'); + echo "
\n
"; + if (count($profilelist)!=0) { + echo "
"; + echo _("Load profile"); + echo "\n\n\n\n\n
"; + echo "\n". + "
\n
\n"; + } + echo "
\n
\n"; + + break; + case 'unix': + // Unix Password Settings + // decrypt password + if ($_SESSION['account']->unix_password != '') { + $iv = base64_decode($_COOKIE["IV"]); + $key = base64_decode($_COOKIE["Key"]); + $password = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($_SESSION['account']->unix_password), MCRYPT_MODE_ECB, $iv); + $password = str_replace(chr(00), '', $password); + } + else $password=''; + $date = getdate ($_SESSION['account']->unix_pwdexpire); + echo "\n"; + echo "\n\n\n
"; + echo "
"; + echo _('Please select page:'); + echo "\n"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "scriptPath)) echo " disabled "; + echo "value=\""; echo _('Quota'); echo "\">\n
"; + echo "\n
"; + echo "
"; + echo "
"._('Unix properties')."\n"; + echo "'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".'\n\n
"; + echo _('Password'); + echo ''. + ''. + ''. + '
'; + echo _('Use no password'); + echo 'unix_password_no) echo ' checked '; + echo '>'. + ''._('Help').''. + '
'; + echo _('Password warn'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Password expire'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Maximum password age'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Minimum password age'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Expire date'); + echo ''. + ''._('Help').''. + '
'; + echo _('Account deactivated'); + echo 'unix_deactivated) echo ' checked '; + echo '>'. + ''._('Help').''. + '
'; + echo _('Unix workstations'); + echo ''. + ''. + ''._('Help'). + "
"; + echo _('Values with * are required'); + echo "
\n
\n"; + + + break; + case 'samba': + // Samba Settings + // decrypt password + if ($_SESSION['account']->smb_password != '') { + $iv = base64_decode($_COOKIE["IV"]); + $key = base64_decode($_COOKIE["Key"]); + $password = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($_SESSION['account']->smb_password), MCRYPT_MODE_ECB, $iv); + $password = str_replace(chr(00), '', $password); + } + if ($_SESSION['config']->samba3 == 'yes') $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); + $canchangedate = getdate($_SESSION['account']->smb_pwdcanchange); + $mustchangedate = getdate($_SESSION['account']->smb_pwdmustchange); + + echo ''; + echo ''. + ''. + ''. + ''. + ''. + ''; + echo "\n\n\n
"; + echo "
"; + echo _('Please select page:'); + echo "\n"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "scriptPath)) echo " disabled "; + echo "value=\""; echo _('Quota'); echo "\">\n
"; + echo "\n
"; + echo "
"; + echo "\n\n
"; + echo "
"; + echo _("Samba properties"); + echo "\n\n\n'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n"; + echo "
"; + echo _('Samba password'); + echo ''. + '
'; + echo _('Use unix password'); + echo 'smb_useunixpwd) echo ' checked '; + echo '>'. + ''._('Help').''; + echo '
'; + echo _('Use no password'); + echo 'smb_password_no) echo ' checked '; + echo '>'. + ''._('Help').''. + '
'; + echo _('Password does not expire'); + echo 'smb_flagsX) echo ' checked '; + echo '>'. + ''._('Help').''. + '
'; + echo _('User can change password'); + echo ''; + echo ''._('Help').''. + '
'; + echo _('User must change password'); + echo ''; + echo ''._('Help').''. + '
'; + echo _('Account is deactivated'); + echo 'smb_flagsD) echo ' checked '; + echo '>'. + ''._('Help').''. + '
'; + echo _('Home drive'); + echo ''. + ''._('Help').''. + '
'; + echo _('Home path'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Profile path'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Script path'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Samba workstations'); + echo ''. + ''. + ''._('Help').''. + '
'; + echo _('Windows groupname'); + echo ''. + ''._('Help').''. + '
'; + echo _('Domain'); + if ($_SESSION['config']->samba3 == 'yes') { + echo ''; + } + else { + echo ''; + } + echo ''._('Help').'
\n
\n
\n"; + break; + case 'quota': + // Quota Settings + echo "\n"; + echo "\n\n\n
"; + echo "
"; + echo _('Please select page:'); + echo "\n"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "
"; + echo "
"._('Quota properties')."\n"; + echo "'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n"; + echo ''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n"; + $i=0; + while ($_SESSION['account']->quota[$i][0]) { + echo ''; // used blocks + echo ''; // blocks soft limit + echo ''; // blocks hard limit + echo ''; // block grace period + echo ''; // used inodes + echo ''; // inodes soft limit + echo ''; // inodes hard limit + echo ''; // inodes grace period + $i++; + } + echo "
"; + echo _('Mountpoint'); echo ''; echo _('Used blocks'); echo ''; + echo _('Soft block limit'); echo ''; echo _('Hard block limit'); echo ''; echo _('Grace block period'); + echo ''; echo _('Used inodes'); echo ''; echo _('Soft inode limit'); echo ''; + echo _('Hard inode limit'); echo ''; echo _('Grace inode period'); echo '
'._('Help').''._('Help').''. + ''._('Help').''._('Help').''. + ''._('Help').''._('Help').''. + ''._('Help').''._('Help').''. + ''._('Help').'
'.$_SESSION['account']->quota[$i][0].''.$_SESSION['account']->quota[$i][1].''.$_SESSION['account']->quota[$i][4].''.$_SESSION['account']->quota[$i][5].''.$_SESSION['account']->quota[$i][8].'
\n
\n
\n"; + break; + + case 'personal': + // Personal Settings + echo "\n"; + echo "\n\n\n
"; + echo "
"; + echo _('Please select page:'); + echo "\n"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "scriptPath)) echo " disabled "; + echo "value=\""; echo _('Quota'); echo "\">\n
"; + echo "\n
"; + echo "
"; + echo "
"._('Personal properties')."\n"; + echo "'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n"; + echo "
"; + echo _('Title'); + echo ''. + ' '; + echo $_SESSION['account']->general_surname . ' ' . $_SESSION['account']->general_givenname . ''. + ''._('Help').''. + '
'; + echo _('Employee type'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Street'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Postal code'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Postal address'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Telephone number'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Mobile number'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('Fax number'); + echo ''. + ''. + ''. + ''._('Help').''. + '
'; + echo _('eMail address'); + echo ''. + ''. + ''. + ''._('Help').'
\n
\n
\n"; + break; + case 'final': + // Final Settings + echo ''; + echo "\n\n
"; + echo "
"; + echo _('Please select page:'); + echo "\n"; + echo "\n
"; + echo "\n
"; + echo "\n
"; + echo "scriptPath)) echo " disabled "; + echo "value=\""; echo _('Quota'); echo "\">\n
"; + echo "\n
"; + echo "
"; + echo "\n\n
"; + echo "\n
"; + echo _("Save profile"); + echo "\n\n\n\n\n
"; + echo ''; + echo ''._('Help'); + echo "
\n
\n
\n"; + echo "
"; + if ($_SESSION['account_old']) echo _('Modify'); + else echo _('Create'); + echo "\n"; + echo "'; + StatusMessage ('INFO', _('UID-number has changed. You have to run the following command as root in order to change existing file-permissions:'), + 'find / -gid ' . $_SESSION['account_old' ]->general_uidNumber . ' -exec chown ' . $_SESSION['account']->general_uidNumber . ' {} \;'); + echo ''."\n"; + } + if (($_SESSION['account_old']) && ($_SESSION['account']->general_homedir != $_SESSION['account_old']->general_homedir)) { + echo ''; + StatusMessage ('INFO', _('Home Directory has changed. You have to run the following command as root in order to change the existing homedirectory:'), + 'mv ' . $_SESSION['account_old' ]->general_homedir . ' ' . $_SESSION['account']->general_homedir); + echo ''."\n"; + } + if (isset($_SESSION['account_old']->general_objectClass)) { + if (!in_array('posixAccount', $_SESSION['account_old']->general_objectClass)) { + echo ''; + StatusMessage('WARN', _('ObjectClass posixAccount not found.'), _('Have to recreate entry.')); + echo "\n"; + } + if (!in_array('shadowAccount', $_SESSION['account_old']->general_objectClass)) { + echo ''; + StatusMessage('WARN', _('ObjectClass shadowAccount.'), _('Have to recreate entry.')); + echo "\n"; + } + if (!in_array('inetOrgPerson', $_SESSION['account_old']->general_objectClass)) { + echo ''; + StatusMessage('WARN', _('ObjectClass inetOrgPerson not found.'), _('Have to recreate entry.')); + echo "\n"; + } + if ($_SESSION['config']->samba3 == 'yes') { + if (!in_array('sambaSamAccount', $_SESSION['account_old']->general_objectClass)) { + echo ''; + StatusMessage('WARN', _('ObjectClass sambaSamAccount not found.'), _('Have to recreate entry.')); + echo "\n"; + }} + else + if (!in_array('sambaAccount', $_SESSION['account_old']->general_objectClass)) { + echo ''; + StatusMessage('WARN', _('ObjectClass sambaAccount not found.'), _('Have to recreate entry.')); + echo "\n"; + } + } + echo ''."\n"; + echo "
"; + if (($_SESSION['account_old']) && ($_SESSION['account']->general_uidNumber != $_SESSION['account_old']->general_uidNumber)) { + echo '
\n
\n
"; + break; + case 'finish': + // Final Settings + echo ''; + echo "
"._('Success')."\n"; + echo "'."\n".''."\n".''."\n".'
"; + echo '
'; + echo _('User '); + echo $_SESSION['account']->general_username; + if ($_SESSION['account_old']) echo ' '._('has been modified').'.'; + else echo ' '._('has been created').'.'; + echo '
'; + if (!$_SESSION['account_old']) + { echo ''; } + echo ''. + ''. + ''. + ''. + '
'; + echo _('Please press here if meta-refresh didn\'t work.'); + echo "