diff --git a/lam/templates/account/groupedit.php b/lam/templates/account/groupedit.php index 36ea9cb9..6203d9ff 100644 --- a/lam/templates/account/groupedit.php +++ b/lam/templates/account/groupedit.php @@ -36,17 +36,18 @@ setlanguage(); if (isset($_GET['DN'])) { if ($_GET['DN']!='') { if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); - $DN = str_replace("\'", '',$DN); + $DN = str_replace("\'", '',$_GET['DN']); $_SESSION['account'] = loadgroup($DN); + $_SESSION['account'] ->type = 'group'; $_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'] = loadGroupProfile('default'); + $_SESSION['account'] ->type = 'group'; if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); } - $_SESSION['account'] ->type = 'group'; $values = getquotas($type); if (is_object($values)) { while (list($key, $val) = each($values)) // Set only defined values @@ -197,7 +198,8 @@ do { // X-Or, only one if() can be true if ($_POST['createagain']) { $select_local='general'; unset($_SESSION['account']); - $_SESSION['account'] = loadUserProfile('default'); + $_SESSION['account'] = loadGroupProfile('default'); + $_SESSION['account'] ->type = 'group'; break; } if ($_POST['backmain']) { @@ -207,7 +209,11 @@ do { // X-Or, only one if() can be true } if ($_POST['load']) { // load profile - if ($_POST['f_general_selectprofile']!='') $_SESSION['account'] = loadGroupProfile($_POST['f_general_selectprofile']); + if ($_POST['f_general_selectprofile']!='') $values = loadGroupProfile($_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; diff --git a/lam/templates/account/hostedit.php b/lam/templates/account/hostedit.php new file mode 100644 index 00000000..99daf291 --- /dev/null +++ b/lam/templates/account/hostedit.php @@ -0,0 +1,425 @@ +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 "
"; + 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"; + 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\n
"; + echo "
"; + echo _('Please select page:'); + echo "\n"; + echo "\n
"; + echo "\n
"; + echo "
"; + 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 ''; +?>