type = 'host'; $_SESSION['account_old'] = $_SESSION['account']; $_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'; 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_uidNumber = $_POST['f_general_uidNumber']; $_SESSION['account']->general_group = $_POST['f_general_group']; $_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 (isset($_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; } // Check which part Site should be displayed next $select_local = 'general'; } break; case 'samba': // Write all general values into $_SESSION['account'] if (isset($_POST['f_smb_flagsD'])) $_SESSION['account']->smb_flagsD = true; else $_SESSION['account']->smb_flagsD = 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 { $_SESSION['account']->smb_domain = $_POST['f_smb_domain']; } // 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; } // Check which part Site should be displayed next if ($_POST['respass']) { $_SESSION['account']->unix_password_no=true; $_SESSION['account']->smb_password_no=true; } $select_local = 'samba'; break; case 'final': $select_local = 'final'; break; } // Write HTML-Header and part of Table 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 (!isset($errors)) $select_local='general'; break; } if ($_POST['next_samba']) { if (!isset($errors)) $select_local='samba'; break; } if ($_POST['next_final']) { if (!isset($errors)) $select_local='final'; break; } if ( $_POST['create'] ) { // Create-Button was pressed // Create or modify an account if ($_SESSION['account_old']) $result = modifyhost($_SESSION['account'],$_SESSION['account_old']); else $result = createhost($_SESSION['account']); // account.inc if ( $result==1 || $result==3 ) $select_local = 'finish'; else $select_local = 'final'; } if ($_POST['createagain']) { $select_local='general'; unset($_SESSION['account']); $_SESSION['account'] = loadHostProfile('default'); $_SESSION['account'] ->type = 'host'; break; } if ($_POST['load']) { // load profile if ($_POST['f_general_selectprofile']!='') $values = loadHostProfile($_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 saveHostProfile($_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); echo "\n"; echo "
\n"; if (is_array($errors)) { echo "\n"; for ($i=0; $i"; } // print_r($_SESSION['account']); 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(); // load list of profiles $profilelist = getHostProfiles(); // Show page info echo ''; echo "
\n\n\n
"; echo "
"; echo _('Please select page:'); echo "\n"; echo "\n
"; echo "\n
"; echo "
"; echo "\n\n
"; echo "
"; echo _("General properties"); echo "\n\n\n'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n".'\n\n
"; echo _('Host name').'*'; echo ''. ''. ''. ''._('Help').''. '
'; echo _('UID number'); echo ''. ''. ''. ''._('Help').''. '
'; echo _('Primary group').'*'; echo ''. ''._('Help').''. '
'; echo _('Gecos'); 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". ""; echo _('Help-XX')."
\n
\n"; } echo "
\n
\n"; break; 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\n
"; echo "
"; echo _('Please select page:'); echo "\n"; echo "\n
"; echo "\n
"; echo "
"; echo "
"._('Samba properties')."\n"; echo "'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".''."\n"; echo "
"; echo _('Password'); echo ''; if (isset($_SESSION['account_old'])) { echo ''; } echo '
'; echo _('Account is deactivated'); echo 'smb_flagsD) echo ' checked '; echo '>'. ''._('Help').''. '
'; echo '
'; echo _('Domain'); if ($_SESSION['config']->samba3 == 'yes') { echo ''; } else { echo ''; } 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 "
"; echo "\n\n\n
"; echo "
"; 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 (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 not found.'), _('Have to recreate entry.')); echo "\n"; } if (!in_array('account', $_SESSION['account_old']->general_objectClass)) { echo ''; StatusMessage('WARN', _('ObjectClass account 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"; echo ''."\n".'
"; echo '
'; echo _('Success'); echo '
'; echo _('Host'); 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 ''."\n".''. ''. '
'; echo _('Please press here if meta-refresh didn\'t work.'); echo "\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 echo ''; ?>