";
- echo "";
+ echo " \n";
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";
- echo "";
+ echo " \n";
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";
- echo "";
+ echo " \n";
+ echo ""._('Samba properties')." \n";
echo "\n \n \n
\n";
+ echo "
\n \n
\n
\n";
break;
case 'final':
// Final Settings
echo ' ';
echo "\n";
- echo "";
+ echo " \n";
echo "\n\n";
- echo "";
+ echo "";
echo _("Save profile");
echo " \n \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 "