diff --git a/lam/lib/account.inc b/lam/lib/account.inc index 97df04da..0b9b290b 100644 --- a/lam/lib/account.inc +++ b/lam/lib/account.inc @@ -531,15 +531,6 @@ function loaduser($dn) { // Will load all needed values from an existing account if (substr(str_replace('{CRYPT}', '',$attr['userPassword'][0]),0,1) == '!' ) $return->unix_deactivated=true; if (isset($attr['userPassword'][0])) $return->unix_password = $attr['userPassword'][0]; - // load quotas - if ($_SESSION['config']->scriptServer) { - $values = getquotas('user',$return->general_username); - if (is_object($values)) { - while (list($key, $val) = each($values)) // Set only defined values - if ($val) $return->$key = $val; - } - } - if (isset($attr['displayName'][0])) $return->smb_displayName = utf8_decode($attr['displayName'][0]); @@ -574,7 +565,7 @@ function loaduser($dn) { // Will load all needed values from an existing account else $return->smb_mapgroup = 2*$attr['gidNumber'][0]+1001; } // return value to prevent loaded values to be overwritten from old samba 2.2 attributes - if ($_SESSION['config']->samba3 == 'yes') return $return; + if ($_SESSION['config']->is_samba3()) return $return; } if (in_array('sambaAccount', $attr['objectClass'])) { @@ -662,7 +653,7 @@ function loadhost($dn) { // Will load all needed values from an existing account else $return->smb_mapgroup = 2*$attr['gidNumber'][0]+1001; } // return value to prevent loaded values to be overwritten from old samba 2.2 attributes - if ($_SESSION['config']->samba3 == 'yes') return $return; + if ($_SESSION['config']->is_samba3()) return $return; } // load samba 2.2 attributes if (in_array('sambaAccount', $attr['objectClass'])) { @@ -719,14 +710,6 @@ function loadgroup($dn) { // Will load all needed values from an existing group for ($i=0; $iSID) $return->smb_domain = $samba3domains[$i]; } - // load quotas - if ($_SESSION['config']->scriptServer) { - $values = getquotas('group',$return->general_username); - if (is_object($values)) { - while (list($key, $val) = each($values)) // Set only defined values - if ($val) $return->$key = $val; - } - } $return->type='group'; return $return; } @@ -760,7 +743,7 @@ function createuser($values) { // Will create the LDAP-Account // General Objectclasses $attr['objectClass'][0] = 'posixAccount'; $attr['objectClass'][1] = 'shadowAccount'; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { $attr['objectClass'][2] = 'sambaSamAccount'; if ($values->smb_password_no) { $attr['sambaNTPassword'] = 'NO PASSWORD*****'; @@ -926,13 +909,13 @@ function modifyuser($values,$values_old) { // Will modify the LDAP-Account } if ($values->general_uidNumber != $values_old->general_uidNumber) { $attr['uidNumber'] = $values->general_uidNumber; // posixAccount_req - if ($_SESSION['config']->samba3 == 'yes') $attr['sambaSid'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase); // sambaAccount_may + if ($_SESSION['config']->is_samba3()) $attr['sambaSid'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase); // sambaAccount_may else $attr['rid'] = (2 * $values->general_uidNumber + 1000); // sambaAccount_may } if ($values->general_group != $values_old->general_group) { $attr['gidNumber'] = getgid($values->general_group); // posixAccount_req $change = false; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { if ($values->smb_mapgroup==$_SESSION['account']->smb_domain->SID . '-512') $found=true; if ($values->smb_mapgroup==$_SESSION['account']->smb_domain->SID . '-513') $found=true; if ($values->smb_mapgroup==$_SESSION['account']->smb_domain->SID . '-514') $found=true; @@ -966,7 +949,7 @@ function modifyuser($values,$values_old) { // Will modify the LDAP-Account $attr['shadowLastChange'] = getdays(); // shadowAccount_may } - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { if ($values->smb_password_no) { $attr['sambaNTPassword'] = 'NO PASSWORD*****'; $attr['sambaLMPassword'] = 'NO PASSWORD*****'; @@ -1118,7 +1101,7 @@ function modifyuser($values,$values_old) { // Will modify the LDAP-Account // Add or convert samba attributes & object to samba 3 - if (($_SESSION['config']->samba3 == 'yes') && (!in_array('sambaSamAccount', $values->general_objectClass))) { + if (($_SESSION['config']->is_samba3()) && (!in_array('sambaSamAccount', $values->general_objectClass))) { if (!isset($attr['objectClass'])) $attr['objectClass'] = $values->general_objectClass; $attr['objectClass'][] = 'sambaSamAccount'; // unset old sambaAccount objectClass @@ -1307,7 +1290,7 @@ function createhost($values) { // Will create the LDAP-Account $attr['objectClass'][0] = 'posixAccount'; $attr['objectClass'][1] = 'shadowAccount'; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { $attr['objectClass'][2] = 'sambaSamAccount'; $attr['sambaNTPassword'] = 'NO PASSWORD*****'; $attr['sambaLMPassword'] = 'NO PASSWORD*****'; @@ -1369,13 +1352,13 @@ function modifyhost($values,$values_old) { // Will modify the LDAP-Account } if ($values->general_uidNumber != $values_old->general_uidNumber) { $attr['uidNumber'] = $values->general_uidNumber; // posixAccount_req - if ($_SESSION['config']->samba3 == 'yes') $attr['sambaSid'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase); // sambaAccount_may + if ($_SESSION['config']->is_samba3()) $attr['sambaSid'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase); // sambaAccount_may else $attr['rid'] = (2 * $values->general_uidNumber + 1000); // sambaAccount_may } if ($values->general_group != $values_old->general_group) { $attr['gidNumber'] = getgid($values->general_group); // posixAccount_req $change = false; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { if ($values->smb_mapgroup==$_SESSION['account']->smb_domain->SID . '-512') $found=true; if ($values->smb_mapgroup==$_SESSION['account']->smb_domain->SID . '-513') $found=true; if ($values->smb_mapgroup==$_SESSION['account']->smb_domain->SID . '-514') $found=true; @@ -1414,7 +1397,7 @@ function modifyhost($values,$values_old) { // Will modify the LDAP-Account $attr['displayName'] = utf8_encode($values->smb_displayName); // Add or convert samba attributes & object to samba 3 - if (($_SESSION['config']->samba3 == 'yes') && (!in_array('sambaSamAccount', $values->general_objectClass))) { + if (($_SESSION['config']->is_samba3()) && (!in_array('sambaSamAccount', $values->general_objectClass))) { if (!isset($attr['objectClass'])) $attr['objectClass'] = $values->general_objectClass; $attr['objectClass'][] = 'sambaSamAccount'; // unset old sambaAccount objectClass @@ -1520,7 +1503,7 @@ function modifyhost($values,$values_old) { // Will modify the LDAP-Account if (isset($attr_old['sambaSID'][0])) $attr_rem['sambaSID'] = $attr_old['sambaSID'][0]; } - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { // Reset password if ($values->smb_password_no) { $attr['sambaNTPassword'] = 'NO PASSWORD*****'; @@ -1627,7 +1610,7 @@ function modifygroup($values,$values_old) { // Will modify the LDAP-Group // Set correct SID if UID was changed if ($values->general_uidNumber != $values_old->general_uidNumber) { $attr['uidNumber'] = $values->general_uidNumber; // posixAccount_req - if ($_SESSION['config']->samba3 == 'yes') $attr['sambaSid'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase +1); // sambaAccount_may + if ($_SESSION['config']->is_samba3()) $attr['sambaSid'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase +1); // sambaAccount_may else $attr['rid'] = (2 * $values->general_uidNumber + 1001); // sambaAccount_may } @@ -1652,7 +1635,7 @@ function modifygroup($values,$values_old) { // Will modify the LDAP-Group $attr['objectClass'] = $values->general_objectClass; $attr['objectClass'][] = 'posixGroup'; } - if (($_SESSION['config']->samba3 == 'yes') && (!in_array('sambaGroupMapping', $values->general_objectClass))) { + if (($_SESSION['config']->is_samba3()) && (!in_array('sambaGroupMapping', $values->general_objectClass))) { if (!isset($attr['objectClass'])) $attr['objectClass'] = $values->general_objectClass; $attr['objectClass'][] = 'sambaGroupMapping'; $attr['sambaGroupType'] = '2'; diff --git a/lam/lib/lamdaemon.pl b/lam/lib/lamdaemon.pl index de145cc0..bdbec0c5 100755 --- a/lam/lib/lamdaemon.pl +++ b/lam/lib/lamdaemon.pl @@ -130,7 +130,9 @@ if ($found==true) { system 'mkdir', '-m 755', $user[7]; # Create himdir itself system "cp -a /etc/skel/* /etc/skel/.[^.]* $user[7]"; # Copy /etc/sekl into homedir system 'chown', '-R', "$user[2]:$user[3]" , $user[7]; # Change owner to new user - system '/usr/sbin/useradd.local', $user[0]; # run useradd-script + if (-e '/usr/sbin/useradd.local') { + system '/usr/sbin/useradd.local', $user[0]; # run useradd-script + } } ($<, $>) = ($>, $<); # Give up root previleges last switch2; diff --git a/lam/templates/account/groupedit.php b/lam/templates/account/groupedit.php index 2e3eefbf..076d8481 100644 --- a/lam/templates/account/groupedit.php +++ b/lam/templates/account/groupedit.php @@ -47,11 +47,6 @@ if (isset($_GET['DN'])) { $_SESSION['account'] ->type = 'group'; if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); $_SESSION['account_old'] = false; - $values = getquotas('group'); - if (is_object($values)) { - while (list($key, $val) = each($values)) // Set only defined values - if (isset($val)) $_SESSION['account']->$key = $val; - } } } else if (count($_POST)==0) { // Startcondition. groupedit.php was called from outside @@ -81,15 +76,14 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch // sort user sort($_SESSION['account']->unix_memberUid); // display groupmembers page - $select_local = 'groupmembers'; break; } if (isset($_POST['members']) && isset($_POST['remove'])) { // remove users fromlist $_SESSION['account']->unix_memberUid = array_delete($_POST['members'], $_SESSION['account']->unix_memberUid); - $select_local = 'groupmembers'; break; } } while(0); + $select_local = 'groupmembers'; break; case 'general': @@ -157,7 +151,7 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch $_SESSION['account']->smb_domain = $domain; $_SESSION['account']->smb_displayName = $_POST['f_smb_displayName']; - if ($_SESSION['config']->samba3 == 'yes') + if ($_SESSION['config']->is_samba3()) 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; @@ -248,6 +242,15 @@ do { // X-Or, only one if() can be true else $select_local=$_POST['select']; break; } + if ($_POST['next_reset']) { + $_SESSION['account'] = $_SESSION['account_old']; + $_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); + $select_local = $_POST['select']; + break; + } if ( $_POST['create'] ) { // Create-Button was pressed if ($_SESSION['account_old']) $result = modifygroup($_SESSION['account'],$_SESSION['account_old']); else $result = creategroup($_SESSION['account']); // account.inc @@ -269,6 +272,10 @@ do { // X-Or, only one if() can be true break; } 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_gecos = $_POST['f_general_gecos']; // load profile if ($_POST['f_general_selectprofile']!='') $values = loadGroupProfile($_POST['f_general_selectprofile']); if (is_object($values)) { @@ -323,13 +330,21 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n"; echo "\n
"; echo "\n
"; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { echo "\n
"; } echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "\n"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "\n"; echo "\n
". _('Additional group members') . "\n"; echo "\n"; echo "
"; @@ -372,13 +387,21 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n"; echo "\n
"; echo "\n
"; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { echo "\n
"; } echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
\n"; echo "\n\n
"; echo "
"; echo _("General properties"); @@ -436,7 +459,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "
\n"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "\n"; echo "\n\n\n\n
"._('Samba properties')."\n"; echo "\n\n\n
"; echo _("Display name"); @@ -541,6 +572,19 @@ switch ($select_local) { // Select which part of page will be loaded case 'quota': // Quota Settings + + if (!isset($_SESSION['account']->quota)) { // load quotas + $values = getquotas('group', $_SESSION['account']->general_username); + if (is_object($values)) { + while (list($key, $val) = each($values)) // Set only defined values + if (isset($val)) $_SESSION['account']->$key = $val; + } + if (is_object($values) && isset($_SESSION['account_old'])) { + while (list($key, $val) = each($values)) // Set only defined values + if (isset($val)) $_SESSION['account_old']->$key = $val; + } + } + echo "\n"; echo "\n\n
"; echo "
"; @@ -548,12 +592,20 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n"; echo "\n
"; echo "\n
"; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { echo "\n
"; } echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo ''; echo "\n
"._('Quota properties')."\n"; echo "
"; @@ -584,7 +636,7 @@ switch ($select_local) { // Select which part of page will be loaded case 'final': // Final Settings $disabled = ""; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { if (!isset($_SESSION['account']->smb_domain)) { // Samba page nit viewd; can not create group because if missing options $disabled = "disabled"; } @@ -597,13 +649,21 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n"; echo "\n
"; echo "\n
"; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { echo "\n
"; } echo "scriptPath)) echo " disabled "; echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo "\n\n"; } if (isset($_SESSION['account_old']->general_objectClass)) { - if (($_SESSION['config']->samba3 == 'yes') && (!in_array('sambaGroupMapping', $_SESSION['account_old']->general_objectClass))) { + if (($_SESSION['config']->is_samba3()) && (!in_array('sambaGroupMapping', $_SESSION['account_old']->general_objectClass))) { echo ''; StatusMessage('WARN', _('ObjectClass sambaGroupMapping not found.'), _('Have to add objectClass sambaGroupMapping.')); echo "\n"; diff --git a/lam/templates/account/hostedit.php b/lam/templates/account/hostedit.php index b01cdaa5..b5a4e3bc 100644 --- a/lam/templates/account/hostedit.php +++ b/lam/templates/account/hostedit.php @@ -148,7 +148,7 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch if (isset($_POST['f_smb_flagsD'])) $_SESSION['account']->smb_flagsD = true; else $_SESSION['account']->smb_flagsD = false; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); for ($i=0; $iname) { @@ -203,6 +203,15 @@ do { // X-Or, only one if() can be true else $select_local=$_POST['select']; break; } + if ($_POST['next_reset']) { + $_SESSION['account'] = $_SESSION['account_old']; + $_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); + $select_local = $_POST['select']; + break; + } if ( $_POST['create'] ) { // Create-Button was pressed // Create or modify an account if ($_SESSION['account_old']) $result = modifyhost($_SESSION['account'],$_SESSION['account_old']); @@ -218,6 +227,11 @@ do { // X-Or, only one if() can be true break; } 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']; // load profile if ($_POST['f_general_selectprofile']!='') $values = loadHostProfile($_POST['f_general_selectprofile']); if (is_object($values)) { @@ -280,7 +294,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n
"; echo "\n
"; echo "
"; echo "
"; echo _("Save profile"); @@ -636,7 +696,7 @@ switch ($select_local) { // Select which part of page will be loaded echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo "\n\n\n
"; echo "
"; echo _("General properties"); @@ -340,7 +362,7 @@ 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()); + if ($_SESSION['config']->is_samba3()) $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); if ($_SESSION['account']->smb_password_no) echo ''; echo ''; echo "\n
"; @@ -350,7 +372,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n
"; echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo "\n
"._('Samba properties')."\n"; echo "'."\n".''."\n".'
"; echo _("Display name"); @@ -372,7 +402,7 @@ switch ($select_local) { // Select which part of page will be loaded '
'; echo '
'; echo _('Domain'); - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { echo '\n
"; echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo "\n\n
"; echo "\n"; } - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { if (!in_array('sambaSamAccount', $_SESSION['account_old']->general_objectClass)) { echo ''; StatusMessage('WARN', _('ObjectClass sambaSamAccount not found.'), _('Have to add objectClass sambaSamAccount. Host with sambaAccount will be updated.')); diff --git a/lam/templates/account/useredit.php b/lam/templates/account/useredit.php index 11fea916..e46b8718 100644 --- a/lam/templates/account/useredit.php +++ b/lam/templates/account/useredit.php @@ -53,11 +53,6 @@ if (isset($_GET['DN'])) { $_SESSION['account']->smb_flagsW = 0; if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); $_SESSION['account_old'] = false; - $values = getquotas('user'); - if (is_object($values)) { - while (list($key, $val) = each($values)) // Set only defined values - if (isset($val)) $_SESSION['account']->$key = $val; - } } } else if (count($_POST)==0) { // Startcondition. useredit.php was called from outside @@ -66,11 +61,6 @@ else if (count($_POST)==0) { // Startcondition. useredit.php was called from out $_SESSION['account']->smb_flagsW = 0; if (isset($_SESSION['account_old'])) unset($_SESSION['account_old']); $_SESSION['account_old'] = false; - $values = getquotas('user'); - if (is_object($values)) { - while (list($key, $val) = each($values)) // Set only defined values - if (isset($val)) $_SESSION['account']->$key = $val; - } } @@ -83,6 +73,48 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch // 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 'workstations': + do { // X-Or, only one if() can be true + if (isset($_POST['hosts']) && isset($_POST['add'])) { // Add users to list + $temp = str_replace(' ', '', $_SESSION['account']->smb_smbuserworkstations); + $workstations = explode (',', $temp); + for ($i=0; $ismb_smbuserworkstations = $workstations[0]; + for ($i=1; $ismb_smbuserworkstations = $_SESSION['account']->smb_smbuserworkstations . ", " . $workstations[$i]; + } + // display groupmembers page + break; + } + if (isset($_POST['members']) && isset($_POST['remove'])) { // remove users fromlist + $temp = str_replace(' ', '', $_SESSION['account']->smb_smbuserworkstations); + $workstations = explode (',', $temp); + for ($i=0; $ismb_smbuserworkstations = $workstations[0]; + for ($i=1; $ismb_smbuserworkstations = $_SESSION['account']->smb_smbuserworkstations . ", " . $workstations[$i]; + } + break; + } + } while(0); + $select_local = 'workstations'; + break; + + case 'general': // Write all general values into $_SESSION['account'] if no profile should be loaded if (!$_POST['load']) { @@ -225,7 +257,6 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch 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']); $_SESSION['account']->smb_displayName = $_POST['f_smb_displayName']; @@ -236,7 +267,7 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch if ($_POST['f_smb_flagsX']) $_SESSION['account']->smb_flagsX = true; else $_SESSION['account']->smb_flagsX = false; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); for ($i=0; $iname) { @@ -248,7 +279,7 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch else $_SESSION['account']->smb_domain = ''; } - if ($_SESSION['config']->samba3 == 'yes') + if ($_SESSION['config']->is_samba3()) 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; @@ -301,8 +332,6 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch if ( (!$_SESSION['account']->smb_profilePath=='') && (!ereg('^[/][a-z]([a-z]|[0-9]|[.]|[-]|[_]|[%])*([/][a-z]([a-z]|[0-9]|[.]|[-]|[_]|[%])*)*$', $_SESSION['account']->smb_profilePath)) && (!ereg('^[\][\]([a-z]|[A-Z]|[0-9]|[.]|[-]|[%])+([\]([a-z]|[A-Z]|[0-9]|[.]|[-]|[%])+)+$', $_SESSION['account']->smb_profilePath))) $errors[] = array('ERROR', _('Profile path'), _('Profile path is invalid!')); - if ((!$_SESSION['account']->smb_smbuserworkstations=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[.]|[-])+(([,])+([a-z]|[A-Z]|[0-9]|[.]|[-])+)*$', $_SESSION['account']->smb_smbuserworkstations)) - $errors[] = array('ERROR', _('Samba workstations'), _('Samba workstations are invalid!')); if ((!$_SESSION['account']->smb_domain=='') && (!is_object($_SESSION['account']->smb_domain)) && !ereg('^([a-z]|[A-Z]|[0-9]|[-])+$', $_SESSION['account']->smb_domain)) $errors[] = array('ERROR', _('Domain name'), _('Domain name contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and -.')); if ($_SESSION['account']->smb_useunixpwd) $_SESSION['account']->smb_useunixpwd = 1; else $_SESSION['account']->smb_useunixpwd = 0; @@ -420,6 +449,20 @@ do { // X-Or, only one if() can be true else $select_local=$_POST['select']; break; } + if ($_POST['next_workstations']) { + if (!is_array($errors)) $select_local='workstations'; + else $select_local=$_POST['select']; + break; + } + if ($_POST['next_reset']) { + $_SESSION['account'] = $_SESSION['account_old']; + $_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); + $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']); @@ -437,6 +480,17 @@ do { // X-Or, only one if() can be true } if ($_POST['load']) { // load profile + $_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']; 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 @@ -501,6 +555,70 @@ switch ($select_local) { // Select which part of page will be loaded // 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 'workstations': + ldapreload('host'); + // get workstation array + $temp = str_replace(' ', '', $_SESSION['account']->smb_smbuserworkstations); + $workstations = explode (',', $temp); + + echo ''; + echo "
"; echo _("Save profile"); @@ -427,7 +465,7 @@ switch ($select_local) { // Select which part of page will be loaded StatusMessage('WARN', _('ObjectClass shadowAccount not found.'), _('Have to add objectClass shadowAccount.')); 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 ""; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; + echo "\n\n
"; + echo "
"; + echo _("Select workstations"); + echo "\n\n\n\n"; + echo "\n"; + echo "\n\n
"; + echo "
"; + echo _("Allowed workstations"); + echo "\n"; + if (count($workstations)!=0) { + echo "\n"; + } + echo "
"; + echo " "; + echo "\">

"; + echo ""._('Help-XX')."
"; + echo _('Available workstations'); + echo "\n"; + if (count($_SESSION['hostDN'])!=0) { + echo "\n"; + } + echo "
\n"; + echo "\n"; + echo "
\n
\n"; + break; + + case 'general': // General Account Settings // load list of all groups @@ -520,7 +638,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
\n"; echo "\n\n
"; echo "
"; echo _("General properties"); @@ -641,7 +767,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "\n
"; echo "
\n"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "\n"; echo "\n
"._('Unix properties')."\n"; echo "
"; echo _('Password'); @@ -720,7 +854,7 @@ switch ($select_local) { // Select which part of page will be loaded $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()); + if ($_SESSION['config']->is_samba3()) $samba3domains = $_SESSION['ldap']->search_domains($_SESSION[config]->get_domainSuffix()); $canchangedate = getdate($_SESSION['account']->smb_pwdcanchange); $mustchangedate = getdate($_SESSION['account']->smb_pwdmustchange); @@ -742,7 +876,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
\n"; echo "\n\n'."\n".''."\n".''."\n".''."\n".''."\n".''."\n".'\n\n\n
"; echo "
"; echo _("Samba properties"); @@ -839,7 +981,7 @@ switch ($select_local) { // Select which part of page will be loaded ''._('Help').''. '
'; echo _('Samba workstations'); - echo ''. + echo ''. ''. ''._('Help').''. '
'; @@ -926,7 +1068,7 @@ switch ($select_local) { // Select which part of page will be loaded ''._('Help').''. '
'; echo _('Domain'); - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { echo '\n"; echo "\n\n
"; echo "
"; @@ -957,7 +1111,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "\n
"; echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo "\n
"._('Quota properties')."\n"; echo "'."\n".''."\n".'
"; echo _('Mountpoint'); echo ''; echo _('Used blocks'); echo ''; @@ -998,7 +1160,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo "\n
"._('Personal properties')."\n"; echo "
"; echo _('Title'); @@ -1059,7 +1229,7 @@ switch ($select_local) { // Select which part of page will be loaded case 'final': // Final Settings $disabled = ""; - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { if (!isset($_SESSION['account']->smb_domain)) { // Samba page nit viewd; can not create group because if missing options $disabled = "disabled"; } @@ -1076,7 +1246,15 @@ switch ($select_local) { // Select which part of page will be loaded echo "value=\""; echo _('Quota'); echo "\">\n
"; echo "\n
"; echo "
"; + echo "\">"; + if (isset($_SESSION['account_old'])) { + echo "

"; + echo _("Reset all changes."); + echo "
"; + echo "\n"; + } + echo "
"; echo "\n\n
"; echo "\n"; } - if ($_SESSION['config']->samba3 == 'yes') { + if ($_SESSION['config']->is_samba3()) { if (!in_array('sambaSamAccount', $_SESSION['account_old']->general_objectClass)) { echo ''; StatusMessage('WARN', _('ObjectClass sambaSamAccount not found.'), _('Have to add objectClass sambaSamAccount. USer with sambaAccount will be updated.'));
"; echo _("Save profile"); @@ -1137,7 +1315,7 @@ switch ($select_local) { // Select which part of page will be loaded StatusMessage('WARN', _('ObjectClass shadowAccount.'), _('Have to add objectClass shadowAccount.')); echo "