upload should be work again.

There's still a small bug in autogernerating usernames
This commit is contained in:
katagia 2003-09-20 07:59:19 +00:00
parent a2ba576f8d
commit 1011546425
5 changed files with 162 additions and 135 deletions

View File

@ -736,7 +736,6 @@ function createuser($values) { // Will create the LDAP-Account
// 2 == Account already exists at different location // 2 == Account already exists at different location
// 1 == Account has been created // 1 == Account has been created
// 4 == Error while creating Account // 4 == Error while creating Account
// values stored in shadowExpire, days since 1.1.1970 // values stored in shadowExpire, days since 1.1.1970
if ($values->unix_pwdexpire) { if ($values->unix_pwdexpire) {
$date = $values->unix_pwdexpire / 86400 ; $date = $values->unix_pwdexpire / 86400 ;
@ -769,13 +768,18 @@ function createuser($values) { // Will create the LDAP-Account
$attr['sambaPwdLastSet'] = time(); // sambaAccount_may $attr['sambaPwdLastSet'] = time(); // sambaAccount_may
} }
else { else {
$attr['sambaNTPassword'] = exec('../../lib/createntlm.pl nt ' . $values->smb_password); if (file_exists('../../lib/createntlm.pl')) { // masscreate.php is at a different relative path
$attr['sambaLMPassword'] = exec('../../lib/createntlm.pl lm ' . $values->smb_password); $attr['sambaNTPassword'] = exec('../../lib/createntlm.pl nt ' . $values->smb_password);
$attr['sambaLMPassword'] = exec('../../lib/createntlm.pl lm ' . $values->smb_password);
}
else {
$attr['sambaNTPassword'] = exec('../lib/createntlm.pl nt ' . $values->smb_password);
$attr['sambaLMPassword'] = exec('../lib/createntlm.pl lm ' . $values->smb_password);
}
$attr['sambaPwdLastSet'] = time(); // sambaAccount_may $attr['sambaPwdLastSet'] = time(); // sambaAccount_may
} }
$attr['sambaSID'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase); // sambaAccount_may $attr['sambaSID'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase); // sambaAccount_may
$attr['sambaPrimaryGroupSID'] = $values->smb_mapgroup; // sambaAccount_req if ($values->smb_mapgroup!='') $attr['sambaPrimaryGroupSID'] = $values->smb_mapgroup; // sambaAccount_req
if ($values->smb_pwdcanchange!='') $attr['sambaPwdCanChange'] = $values->smb_pwdcanchange; // sambaAccount_may if ($values->smb_pwdcanchange!='') $attr['sambaPwdCanChange'] = $values->smb_pwdcanchange; // sambaAccount_may
else $attr['sambaPwdCanChange'] = time(); // sambaAccount_may else $attr['sambaPwdCanChange'] = time(); // sambaAccount_may
if ($values->smb_pwdmustchange!='') $attr['sambaPwdMustChange'] = $values->smb_pwdmustchange; // sambaAccount_may if ($values->smb_pwdmustchange!='') $attr['sambaPwdMustChange'] = $values->smb_pwdmustchange; // sambaAccount_may

View File

@ -583,6 +583,12 @@ switch ($select_local) { // Select which part of page will be loaded
case 'final': case 'final':
// Final Settings // Final Settings
$disabled = "";
if ($_SESSION['config']->samba3 == 'yes') {
if (!isset($_SESSION['account']->smb_domain)) { // Samba page nit viewd; can not create group because if missing options
$disabled = "disabled";
}
}
echo '<input name="select" type="hidden" value="final">'; echo '<input name="select" type="hidden" value="final">';
echo "<input name=\"select\" type=\"hidden\" value=\"final\">\n"; echo "<input name=\"select\" type=\"hidden\" value=\"final\">\n";
echo "<table border=0 width=\"100%\">\n<tr><td valign=\"top\" width=\"15%\" >"; echo "<table border=0 width=\"100%\">\n<tr><td valign=\"top\" width=\"15%\" >";
@ -603,7 +609,7 @@ switch ($select_local) { // Select which part of page will be loaded
echo _("Save profile"); echo _("Save profile");
echo "</b></legend>\n<table border=0 width=\"100%\">\n<tr>\n<td>"; echo "</b></legend>\n<table border=0 width=\"100%\">\n<tr>\n<td>";
echo '<input name="f_finish_safeProfile" type="text" size="30" maxlength="50">'; echo '<input name="f_finish_safeProfile" type="text" size="30" maxlength="50">';
echo '</td><td><input name="save" type="submit" value="'; echo "</td><td><input name=\"save\" type=\"submit\" $disabled value=\"";
echo _('Save profile'); echo _('Save profile');
echo '"></td><td><a href="../help.php?HelpNumber=457" target="lamhelp">'._('Help'); echo '"></td><td><a href="../help.php?HelpNumber=457" target="lamhelp">'._('Help');
echo "</a></td>\n</tr>\n</table>\n</fieldset>\n</td></tr>\n<tr><td>\n"; echo "</a></td>\n</tr>\n</table>\n</fieldset>\n</td></tr>\n<tr><td>\n";
@ -624,9 +630,7 @@ switch ($select_local) { // Select which part of page will be loaded
echo _('Change GID-Number of all users in group to new value'); echo _('Change GID-Number of all users in group to new value');
echo '</td></tr>'."\n"; echo '</td></tr>'."\n";
} }
$disabled = ""; if ($disabled == "disabled") { // Samba page nit viewd; can not create group because if missing options
if ((!isset($_SESSION['account']->smb_domain)) && ($_SESSION['config']->samba3 == 'yes')) { // Samba page nit viewd; can not create group because if missing options
$disabled = "disabled";
echo "<tr>"; echo "<tr>";
StatusMessage("ERROR", _("Samba Options not set!"), _("Please check settings on samba page.")); StatusMessage("ERROR", _("Samba Options not set!"), _("Please check settings on samba page."));
echo "</tr>"; echo "</tr>";

View File

@ -612,7 +612,8 @@ switch ($select_local) { // Select which part of page will be loaded
foreach ($profilelist as $profile) echo " <option>$profile</option>\n"; foreach ($profilelist as $profile) echo " <option>$profile</option>\n";
echo "</select>\n". echo "</select>\n".
"<input name=\"load\" type=\"submit\" value=\""; echo _('Load Profile'); "<input name=\"load\" type=\"submit\" value=\""; echo _('Load Profile');
echo "\"></td>\n</tr>\n</table>\n</fieldset>\n"; echo "\"></td><td><a href=\"../help.php?HelpNumber=421\" target=\"lamhelp\">";
echo _('Help')."</a></td>\n</tr>\n</table>\n</fieldset>\n";
} }
echo "</td></tr>\n</table>\n</td></tr></table>\n"; echo "</td></tr>\n</table>\n</td></tr></table>\n";
@ -1057,6 +1058,12 @@ switch ($select_local) { // Select which part of page will be loaded
break; break;
case 'final': case 'final':
// Final Settings // Final Settings
$disabled = "";
if ($_SESSION['config']->samba3 == 'yes') {
if (!isset($_SESSION['account']->smb_domain)) { // Samba page nit viewd; can not create group because if missing options
$disabled = "disabled";
}
}
echo '<input name="select" type="hidden" value="final">'; echo '<input name="select" type="hidden" value="final">';
echo "<table border=0 width=\"100%\">\n<tr><td valign=\"top\" width=\"15%\" >"; echo "<table border=0 width=\"100%\">\n<tr><td valign=\"top\" width=\"15%\" >";
echo "<table><tr><td><fieldset class=\"useredit-dark\"><legend class=\"useredit-bright\"><b>"; echo "<table><tr><td><fieldset class=\"useredit-dark\"><legend class=\"useredit-bright\"><b>";
@ -1075,7 +1082,7 @@ switch ($select_local) { // Select which part of page will be loaded
echo _("Save profile"); echo _("Save profile");
echo "</b></legend>\n<table border=0 width=\"100%\">\n<tr>\n<td>"; echo "</b></legend>\n<table border=0 width=\"100%\">\n<tr>\n<td>";
echo '<input name="f_finish_safeProfile" type="text" size="30" maxlength="50">'; echo '<input name="f_finish_safeProfile" type="text" size="30" maxlength="50">';
echo '</td><td><input name="save" type="submit" value="'; echo "</td><td><input name=\"save\" type=\"submit\" $disabled value=\"";
echo _('Save profile'); echo _('Save profile');
echo '"></td><td><a href="../help.php?HelpNumber=457" target="lamhelp">'._('Help'); echo '"></td><td><a href="../help.php?HelpNumber=457" target="lamhelp">'._('Help');
echo "</a></td>\n</tr>\n</table>\n</fieldset>\n</td></tr>\n<tr><td>\n"; echo "</a></td>\n</tr>\n</table>\n</fieldset>\n</td></tr>\n<tr><td>\n";
@ -1097,15 +1104,12 @@ switch ($select_local) { // Select which part of page will be loaded
echo '</tr>'."\n"; echo '</tr>'."\n";
} }
$disabled = ""; if ($disabled=='disabled') { // Samba page nit viewd; can not create group because if missing options
if ($_SESSION['config']->samba3 == 'yes') { echo "<tr>";
if (!isset($_SESSION['account']->smb_domain)) { // Samba page nit viewd; can not create group because if missing options StatusMessage("ERROR", _("Samba Options not set!"), _("Please check settings on samba page."));
$disabled = "disabled"; echo "</tr>";
echo "<tr>";
StatusMessage("ERROR", _("Samba Options not set!"), _("Please check settings on samba page."));
echo "</tr>";
}
} }
else { else {
$found = false; $found = false;
if (strstr($_SESSION['account']->smb_scriptPath, '$group')) $found = true; if (strstr($_SESSION['account']->smb_scriptPath, '$group')) $found = true;

View File

@ -69,8 +69,9 @@ if ($select!='pdf') {
echo '<meta http-equiv="refresh" content="1; URL=lists/listusers.php">'."\n". echo '<meta http-equiv="refresh" content="1; URL=lists/listusers.php">'."\n".
'</head><body>'."\n". '</head><body>'."\n".
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". '<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n".
'<table class="masscreate" width="100%">'. '<a href="lists/listusers.php">';
'<tr><td></td></tr>'."\n"; echo _('Please press here if meta-refresh didn\'t work.');
echo "</a>\n";
break; break;
case 'create': case 'create':
if ($_SESSION['pointer'] < sizeof($_SESSION['accounts'])) { if ($_SESSION['pointer'] < sizeof($_SESSION['accounts'])) {
@ -79,11 +80,9 @@ if ($select!='pdf') {
} }
echo '</head><body>'."\n". echo '</head><body>'."\n".
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". '<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n".
'<table class="masscreate" width="100%">'. "<fieldset class=\"useredit-bright\"><legend class=\"useredit-bright\"><b>";
'<tr><td></td></tr>'."\n"; echo _('Creating users. Please stand by ....');
echo '<tr><td>'; echo "</b></legend>\n<table border=0 width=\"100%\">\n";
echo _('Creating users. Please stand by.');
echo '</td></tr>'."\n";
$stay=true; $stay=true;
while (($_SESSION['pointer'] < sizeof($_SESSION['accounts'])) && $stay) { while (($_SESSION['pointer'] < sizeof($_SESSION['accounts'])) && $stay) {
if ($_SESSION['accounts'][$_SESSION['pointer']]->general_username!='') { if ($_SESSION['accounts'][$_SESSION['pointer']]->general_username!='') {
@ -123,7 +122,8 @@ if ($select!='pdf') {
echo _('Please press here if meta-refresh didn\'t work.'); echo _('Please press here if meta-refresh didn\'t work.');
echo '</a></td></tr>'."\n"; echo '</a></td></tr>'."\n";
echo '<tr><td><input name="cancel" type="submit" value="'; echo _('Cancel'); echo '<tr><td><input name="cancel" type="submit" value="'; echo _('Cancel');
echo '"></td></tr>'; echo '"></td></tr></table>';
echo "</fieldset>\n";
} }
else { else {
echo '<tr><td>'; echo '<tr><td>';
@ -131,7 +131,7 @@ if ($select!='pdf') {
echo '</td></tr>'."\n".'<tr><td>'; echo '</td></tr>'."\n".'<tr><td>';
echo '<tr><td><input name="cancel" type="submit" value="'; echo _('User list'); echo '">'; echo '<tr><td><input name="cancel" type="submit" value="'; echo _('User list'); echo '">';
echo '</td><td></td><td><input name="pdf" type="submit" value="'; echo _('Create PDF file'); echo '">'; echo '</td><td></td><td><input name="pdf" type="submit" value="'; echo _('Create PDF file'); echo '">';
echo '</td></tr>'."\n"; echo '</td></tr></table>'."\n</fieldset>\n";
if ( isset($_SESSION['pointer'])) unset($_SESSION['pointer']); if ( isset($_SESSION['pointer'])) unset($_SESSION['pointer']);
if ( isset($_SESSION['errors'])) unset($_SESSION['errors']); if ( isset($_SESSION['errors'])) unset($_SESSION['errors']);
} }
@ -143,10 +143,9 @@ if ($select!='pdf') {
echo '<meta http-equiv="refresh" content="2; URL=masscreate.php?list2">'."\n". echo '<meta http-equiv="refresh" content="2; URL=masscreate.php?list2">'."\n".
'</head><body>'."\n". '</head><body>'."\n".
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". '<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n".
'<table class="masscreate" width="100%">'. '<a href="masscreate.php?list2">';
'<tr><td><a href="masscreate.php?list2">';
echo _('Please press here if meta-refresh didn\'t work.'); echo _('Please press here if meta-refresh didn\'t work.');
echo "</a></td></tr>\n"; echo "</a>\n";
} }
else { else {
//echo '<meta http-equiv="refresh" content="2; URL=masscreate.php?list2">'."\n". //echo '<meta http-equiv="refresh" content="2; URL=masscreate.php?list2">'."\n".
@ -160,21 +159,21 @@ if ($select!='pdf') {
echo _('Cancel'); echo _('Cancel');
echo '</a></td><td><a href="masscreate.php?list2">'; echo '</a></td><td><a href="masscreate.php?list2">';
echo _('Contiune'); echo _('Contiune');
echo "</a></td></tr>\n"; echo "</a></td></tr></table>\n";
} }
break; break;
case 'list2': case 'list2':
echo '</head><body>'."\n". echo '</head><body>'."\n".
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". '<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n".
'<table class="masscreate" width="100%">'. '<table border=0 width="100%">';
'<tr><td></td></tr>'."\n". for ($i=0; $i<sizeof($groups); $i++)
'<tr><td>'; if ($_SESSION['accounts'][$i]->general_group!='')
StatusMessage('INFO', _('Group').' '.
$_SESSION['accounts'][$i]->general_group.' '._('not found!'), _('It will be created.'));
echo "</table>\n".
"<fieldset class=\"useredit-bright\"><legend class=\"useredit-bright\"><b>";
echo _('Confirm List'); echo _('Confirm List');
echo '</td></tr>'."\n"; echo "</b></legend>\n<table border=0 width=\"100%\">\n";
for ($i=0; $i<sizeof($groups); $i++)
if ($_SESSION['accounts'][$i]->general_group!='')
StatusMessage('INFO', _('Group').' '.
$_SESSION['accounts'][$i]->general_group.' '._('not found!'), _('It will be created.'));
echo '<tr><td>'._('row').'</td>'."\n".'<td>'. _('Surname'). '</td>'."\n".'<td>'. _('Given name'). '</td>'."\n".'<td>'. _('User name'). '</td>'."\n".'<td>'. _('Primary group'). '</td>'."\n".'<td>'. echo '<tr><td>'._('row').'</td>'."\n".'<td>'. _('Surname'). '</td>'."\n".'<td>'. _('Given name'). '</td>'."\n".'<td>'. _('User name'). '</td>'."\n".'<td>'. _('Primary group'). '</td>'."\n".'<td>'.
_('Details'). '</td>'."\n".'<td>' . _('Infos'). '</td>'."\n".'<td>' . _('Warnings'). '</td>'."\n".'<td>' . _('Errors') . '</td>'."\n".'</tr>'."\n"; _('Details'). '</td>'."\n".'<td>' . _('Infos'). '</td>'."\n".'<td>' . _('Warnings'). '</td>'."\n".'<td>' . _('Errors') . '</td>'."\n".'</tr>'."\n";
if (!isset($_SESSION['rowstart'])) $_SESSION['rowstart'] = 0; if (!isset($_SESSION['rowstart'])) $_SESSION['rowstart'] = 0;
@ -215,12 +214,15 @@ if ($select!='pdf') {
echo '<br>'; echo '<br>';
if (!$noerrors) { echo '<tr><td>'. _('There are some errors.') . '</td></tr>'."\n"; } if (!$noerrors) { echo '<tr><td>'. _('There are some errors.') . '</td></tr>'."\n"; }
if (!$nowarn) { echo '<tr><td>'. _('There are some warnings.') . '</td></tr>'."\n"; } if (!$nowarn) { echo '<tr><td>'. _('There are some warnings.') . '</td></tr>'."\n"; }
echo '</table><br><table class="masscreate" width="100%">'. echo '</table></fieldset>';
echo "<fieldset class=\"useredit-bright\"><legend class=\"useredit-bright\"><b>";
echo _('Please select page');
echo "</b></legend>\n<table border=0 width=\"100%\">\n".
'<tr><td><input name="back" type="submit" value="'; echo _('Back'); '<tr><td><input name="back" type="submit" value="'; echo _('Back');
echo '"></td><td><input name="cancel" type="submit" value="'; echo _('Cancel'); echo '"></td><td><input name="cancel" type="submit" value="'; echo _('Cancel');
echo '"></td><td><input name="list2" type="submit" value="'; echo _('Refresh'); echo '">'; echo '"></td><td><input name="list2" type="submit" value="'; echo _('Refresh'); echo '">';
if ($noerrors) { echo '</td><td><input name="create" type="submit" value="'; echo _('Create'); echo '">'; } if ($noerrors) { echo '</td><td><input name="create" type="submit" value="'; echo _('Create'); echo '">'; }
echo '</td></tr>'."\n"; echo '</td></tr>'."\n"."</table>\n</fieldset>";
break; break;
case 'main': case 'main':
if ( isset($_SESSION['accounts'])) unset($_SESSION['accounts']); if ( isset($_SESSION['accounts'])) unset($_SESSION['accounts']);
@ -230,15 +232,12 @@ if ($select!='pdf') {
$profilelist = getUserProfiles(); $profilelist = getUserProfiles();
echo '</head><body>'."\n". echo '</head><body>'."\n".
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". '<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n".
'<table class="masscreate" width="100%">'. "<fieldset class=\"useredit-bright\"><legend class=\"useredit-bright\"><b>";
'<tr><td></td></tr>'."\n".
'<tr><td><input name="select" type="hidden" value="main">';
echo _('Mass Creation'); echo _('Mass Creation');
echo '</td></tr><tr><td>'."\n"; echo "</b></legend>\n<table border=0 width=\"100%\">\n<tr>\n<td>";
echo _('Please provide a csv-file with the following syntax. Values with * are required:'); echo _('Please provide a csv-file with the following syntax. Values with * are required:');
echo '</td></tr></table>'. echo '</td></tr></table>'.
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". '<table class="masscreate" width="100%" border=1>'.
'<table class="masscreate" width="100%">'.
'<tr><td>'."\n"; '<tr><td>'."\n";
echo _('Surname').'*,'; echo _('Surname').'*,';
echo '</td>'."\n".'<td>'; echo '</td>'."\n".'<td>';
@ -263,24 +262,25 @@ if ($select!='pdf') {
echo _('Postal code').','; echo _('Postal code').',';
echo '</td>'."\n".'<td>'; echo '</td>'."\n".'<td>';
echo _('Postal address').','; echo _('Postal address').',';
echo '</td></tr>'."\n".'<tr><td>'; echo '</td>'."\n".'<td>';
echo _('Employee type').' &lt;CR&gt;'; echo _('Employee type');
echo '</td></tr></table>'. echo '</td><td>&lt;CR&gt;';
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". echo '</td></tr></table>';
'<table class="masscreate" width="100%">'. echo "<br>";
'<tr><td>'."\n";
echo _('If Primary group is not given it\'ll used from profile.'); echo _('If Primary group is not given it\'ll used from profile.');
echo '</td></tr><tr><td>'."\n"; echo "<br>";
echo _('If PrimaryGroup does not exist it will be created.'); echo _('If Primary group does not exist it will be created.');
echo '</td></tr></table>'. echo "</fieldset>\n";
'<form enctype="multipart/form-data" action="masscreate.php" method="post">'."\n". echo "<fieldset class=\"useredit-bright\"><legend class=\"useredit-bright\"><b>";
'<table class="masscreate" width="100%">'. echo _('Select settings');
echo "</b></legend>\n<table class=\"masscreate\" width=\"100%\">".
'<tr><td>'."\n"; '<tr><td>'."\n";
echo _('Select Profile:'); echo _('Select Profile:');
echo '</td><td><select name="f_selectprofile">'."\n"; echo '</td><td><select name="f_selectprofile">'."\n";
foreach ($profilelist as $profile) echo '<option>' . $profile; foreach ($profilelist as $profile) echo '<option>' . $profile;
echo '</select>'. echo '</select>';
'</td></tr>'."\n".'<tr><td>'; echo "</td>\n<td><a href=\"help.php?HelpNumber=421\" target=\"lamhelp\">";
echo _('Help')."</a></td>\n</tr>\n<tr><td>";
echo _('Suffix'); echo '</td><td><select name="f_general_suffix">'; echo _('Suffix'); echo '</td><td><select name="f_general_suffix">';
foreach ($_SESSION['ldap']->search_units($_SESSION['config']->get_UserSuffix()) as $suffix) foreach ($_SESSION['ldap']->search_units($_SESSION['config']->get_UserSuffix()) as $suffix)
echo '<option>' . $suffix. '</option>'; echo '<option>' . $suffix. '</option>';
@ -289,11 +289,11 @@ if ($select!='pdf') {
'<input type="hidden" name="MAX_FILE_SIZE" value="100000">'; '<input type="hidden" name="MAX_FILE_SIZE" value="100000">';
echo _('Select file:'); echo _('Select file:');
echo '</td><td><input name="userfile" type="file"></td></tr>'."\n". echo '</td><td><input name="userfile" type="file"></td></tr>'."\n".
'<tr><td><input name="tolist" type="submit" value="'; echo _('Commit'); echo '">'."\n". '<tr><td></td><td><input name="tolist" type="submit" value="'; echo _('Next'); echo '">'."\n".
'</td></tr>'."\n"; '</td><td></td></tr>'."\n"."</table>\n</fieldset>\n";
break; break;
} }
echo '</table></form></body></html>'; echo '</form></body></html>';
} }
@ -325,11 +325,15 @@ function loadfile() {
$_SESSION['accounts'][$row]->smb_password=$_SESSION['accounts'][$row]->unix_password; $_SESSION['accounts'][$row]->smb_password=$_SESSION['accounts'][$row]->unix_password;
} }
} }
for ($row2=0; $row2<sizeof($_SESSION['accounts']); $row2++) { // loops for every row for ($row2=0; $row2<sizeof($_SESSION['accounts']); $row2++) { // loops for every row
// Check for double entries in $_SESSION['accounts'] // Check for double entries in $_SESSION['accounts']
print $row2."<br>";
if ($row2<401) { if ($row2<401) {
for ($i=$row2+1; $i<sizeof($_SESSION['accounts']); $i++ ) { for ($i=$row2+1; $i<sizeof($_SESSION['accounts']); $i++ ) {
if ($_SESSION['accounts'][$row2]->general_username == $_SESSION['accounts'][$i]->general_username) { // Found user with same name if ($_SESSION['accounts'][$row2]->general_username == $_SESSION['accounts'][$i]->general_username) { // Found user with same name
print $row2."-".$i."<br>";
print $_SESSION['accounts'][$row2]->general_username ."-". $_SESSION['accounts'][$i]->general_username ."<br>"; // Found user with same name
// get last character of username // get last character of username
if (!is_numeric($_SESSION['accounts'][$i]->general_username{strlen($_SESSION['accounts'][$i]->general_username)-1})) if (!is_numeric($_SESSION['accounts'][$i]->general_username{strlen($_SESSION['accounts'][$i]->general_username)-1}))
$_SESSION['accounts'][$i]->general_username = $_SESSION['accounts'][$i]->general_username . '2'; $_SESSION['accounts'][$i]->general_username = $_SESSION['accounts'][$i]->general_username . '2';
@ -352,117 +356,122 @@ function loadfile() {
$_SESSION['accounts'][$i]->general_username = $first . $second; $_SESSION['accounts'][$i]->general_username = $first . $second;
} }
} }
print $_SESSION['accounts'][$row2]->general_username ."-". $_SESSION['accounts'][$i]->general_username ."<br>"; // Found user with same name
} }
if ($values->general_username != $return->general_username) $error[] = array('WARN', _('Username'), _('Username in use. Selected next free username.')); if ($values->general_username != $return->general_username) $error[] = array('WARN', _('Username'), _('Username in use. Selected next free username.'));
$_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $error); $_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $error);
// Check if Homedir is valid // Check if Homedir is valid
$_SESSION['account'][$row2]->general_homedir = str_replace('$group', $_SESSION['account'][$row2]->general_group, $_SESSION['account'][$row2]->general_homedir); $_SESSION['accounts'][$row2]->general_homedir = str_replace('$group', $_SESSION['accounts'][$row2]->general_group, $_SESSION['accounts'][$row2]->general_homedir);
if ($_SESSION['account'][$row2]->general_username != '') if ($_SESSION['accounts'][$row2]->general_username != '')
$_SESSION['account'][$row2]->general_homedir = str_replace('$user', $_SESSION['account'][$row2]->general_username, $_SESSION['account'][$row2]->general_homedir); $_SESSION['accounts'][$row2]->general_homedir = str_replace('$user', $_SESSION['accounts'][$row2]->general_username, $_SESSION['accounts'][$row2]->general_homedir);
if ( !ereg('^[/]([a-z]|[A-Z])([a-z]|[A-Z]|[0-9]|[.]|[-]|[_])*([/]([a-z]|[A-Z])([a-z]|[A-Z]|[0-9]|[.]|[-]|[_])*)*$', $_SESSION['account'][$row2]->general_homedir )) if ( !ereg('^[/]([a-z]|[A-Z])([a-z]|[A-Z]|[0-9]|[.]|[-]|[_])*([/]([a-z]|[A-Z])([a-z]|[A-Z]|[0-9]|[.]|[-]|[_])*)*$', $_SESSION['accounts'][$row2]->general_homedir ))
$errors[] = array('ERROR', _('Home directory'), _('Homedirectory contains invalid characters.')); $errors[] = array('ERROR', _('Home directory'), _('Homedirectory contains invalid characters.'));
// Check if givenname is valid // Check if givenname is valid
if ( !ereg('^([a-z]|[A-Z]|[-]|[ ]|[ä]|[Ä]|[ö]|[Ö]|[ü]|[Ü]|[ß])+$', $_SESSION['account'][$row2]->general_givenname)) $errors[] = array('ERROR', _('Given name'), _('Given name contains invalid characters')); if ( !ereg('^([a-z]|[A-Z]|[-]|[ ]|[ä]|[Ä]|[ö]|[Ö]|[ü]|[Ü]|[ß])+$', $_SESSION['accounts'][$row2]->general_givenname)) $errors[] = array('ERROR', _('Given name'), _('Given name contains invalid characters'));
// Check if surname is valid // Check if surname is valid
if ( !ereg('^([a-z]|[A-Z]|[-]|[ ]|[ä]|[Ä]|[ö]|[Ö]|[ü]|[Ü]|[ß])+$', $_SESSION['account'][$row2]->general_surname)) $errors[] = array('ERROR', _('Surname'), _('Surname contains invalid characters')); if ( !ereg('^([a-z]|[A-Z]|[-]|[ ]|[ä]|[Ä]|[ö]|[Ö]|[ü]|[Ü]|[ß])+$', $_SESSION['accounts'][$row2]->general_surname)) $errors[] = array('ERROR', _('Surname'), _('Surname contains invalid characters'));
if ( ($_SESSION['account'][$row2]->general_gecos=='') || ($_SESSION['account'][$row2]->general_gecos==' ')) { if ( ($_SESSION['accounts'][$row2]->general_gecos=='') || ($_SESSION['accounts'][$row2]->general_gecos==' ')) {
$_SESSION['account'][$row2]->general_gecos = $_SESSION['account'][$row2]->general_givenname . " " . $_SESSION['account'][$row2]->general_surname ; $_SESSION['accounts'][$row2]->general_gecos = $_SESSION['accounts'][$row2]->general_givenname . " " . $_SESSION['accounts'][$row2]->general_surname ;
$errors[] = array('INFO', _('Gecos'), _('Inserted sur- and given name in gecos-field.')); $errors[] = array('INFO', _('Gecos'), _('Inserted sur- and given name in gecos-field.'));
} }
if ($_SESSION['account'][$row2]->general_group=='') $errors[] = array('ERROR', _('Primary group'), _('No primary group defined!')); if ($_SESSION['accounts'][$row2]->general_group=='') $errors[] = array('ERROR', _('Primary group'), _('No primary group defined!'));
// Check if Username contains only valid characters // Check if Username contains only valid characters
if ( !ereg('^([a-z]|[0-9]|[.]|[-]|[_])*$', $_SESSION['account'][$row2]->general_username)) if ( !ereg('^([a-z]|[0-9]|[.]|[-]|[_])*$', $_SESSION['accounts'][$row2]->general_username))
$errors[] = array('ERROR', _('Username'), _('Username contains invalid characters. Valid characters are: a-z, 0-9 and .-_ !')); $errors[] = array('ERROR', _('Username'), _('Username contains invalid characters. Valid characters are: a-z, 0-9 and .-_ !'));
// Check if user already exists // Check if user already exists
if (isset($_SESSION['account'][$row2]->general_groupadd) && in_array($_SESSION['account'][$row2]->general_group, $_SESSION['account'][$row2]->general_groupadd)) { if (isset($_SESSION['accounts'][$row2]->general_groupadd) && in_array($_SESSION['accounts'][$row2]->general_group, $_SESSION['accounts'][$row2]->general_groupadd)) {
for ($i=0; $i<count($_SESSION['account'][$row2]->general_groupadd); $i++ ) for ($i=0; $i<count($_SESSION['accounts'][$row2]->general_groupadd); $i++ )
if ($_SESSION['account'][$row2]->general_groupadd[$i] == $_SESSION['account'][$row2]->general_group) { if ($_SESSION['accounts'][$row2]->general_groupadd[$i] == $_SESSION['accounts'][$row2]->general_group) {
unset ($_SESSION['account'][$row2]->general_groupadd[$i]); unset ($_SESSION['accounts'][$row2]->general_groupadd[$i]);
$_SESSION['account'][$row2]->general_groupadd = array_values($_SESSION['account'][$row2]->general_groupadd); $_SESSION['accounts'][$row2]->general_groupadd = array_values($_SESSION['accounts'][$row2]->general_groupadd);
} }
} }
// Create automatic useraccount with number if original user already exists // Create automatic useraccount with number if original user already exists
// Reset name to original name if new name is in use // Reset name to original name if new name is in use
while ($temp = ldapexists($_SESSION['account'][$row2], 'user')) { while ($temp = ldapexists($_SESSION['accounts'][$row2], 'user')) {
// get last character of username // get last character of username
$lastchar = substr($_SESSION['account'][$row2]->general_username, strlen($_SESSION['account'][$row2]->general_username)-1, 1); $lastchar = substr($_SESSION['accounts'][$row2]->general_username, strlen($_SESSION['accounts'][$row2]->general_username)-1, 1);
// Last character is no number // Last character is no number
if ( !ereg('^([0-9])+$', $lastchar)) if ( !ereg('^([0-9])+$', $lastchar))
$_SESSION['account'][$row2]->general_username = $_SESSION['account'][$row2]->general_username . '2'; $_SESSION['accounts'][$row2]->general_username = $_SESSION['accounts'][$row2]->general_username . '2';
else { else {
$i=strlen($_SESSION['account'][$row2]->general_username)-1; $i=strlen($_SESSION['accounts'][$row2]->general_username)-1;
$mark = false; $mark = false;
while (!$mark) { while (!$mark) {
if (ereg('^([0-9])+$',substr($_SESSION['account'][$row2]->general_username, $i, strlen($_SESSION['account'][$row2]->general_username)-$i))) $i--; if (ereg('^([0-9])+$',substr($_SESSION['accounts'][$row2]->general_username, $i, strlen($_SESSION['accounts'][$row2]->general_username)-$i))) $i--;
else $mark=true; else $mark=true;
} }
// increase last number with one // increase last number with one
$firstchars = substr($_SESSION['account'][$row2]->general_username, 0, $i+1); $firstchars = substr($_SESSION['accounts'][$row2]->general_username, 0, $i+1);
$lastchars = substr($_SESSION['account'][$row2]->general_username, $i+1, strlen($_SESSION['account'][$row2]->general_username)-$i); $lastchars = substr($_SESSION['accounts'][$row2]->general_username, $i+1, strlen($_SESSION['accounts'][$row2]->general_username)-$i);
$_SESSION['account'][$row2]->general_username = $firstchars . (intval($lastchars)+1); $_SESSION['accounts'][$row2]->general_username = $firstchars . (intval($lastchars)+1);
} }
} }
// Check if UID is valid. If none value was entered, the next useable value will be inserted // Check if UID is valid. If none value was entered, the next useable value will be inserted
$_SESSION['account'][$row2]->general_uidNumber = checkid($_SESSION['account'][$row2], 'user'); //$_SESSION['accounts'][$row2]->general_uidNumber = '';
if (is_string($_SESSION['account'][$row2]->general_uidNumber)) { // true if checkid has returned an error if (is_object($_SESSION['accounts'][$row2-1])) $_SESSION['accounts'][$row2]->general_uidNumber = $_SESSION['accounts'][$row2-1]->general_uidNumber+1;
$errors[] = array('ERROR', _('ID-Number'), $_SESSION['account'][$row2]->general_uidNumber); $_SESSION['accounts'][$row2]->general_uidNumber = checkid($_SESSION['accounts'][$row2], 'user');
unset($_SESSION['account'][$row2]->general_uidNumber); while (is_string($_SESSION['accounts'][$row2]->general_uidNumber)) { // true if checkid has returned an error
$_SESSION['accounts'][$row2]->general_uidNumber = $_SESSION['accounts'][$row2]->general_uidNumber+1;
unset($_SESSION['accounts'][$row2]->general_uidNumber);
$_SESSION['accounts'][$row2]->general_uidNumber = checkid($_SESSION['accounts'][$row2], 'user');
} }
// Check if Name-length is OK. minLength=3, maxLength=20 // Check if Name-length is OK. minLength=3, maxLength=20
if ( !ereg('.{3,20}', $_SESSION['account'][$row2]->general_username)) $errors[] = array('ERROR', _('Name'), _('Name must contain between 3 and 20 characters.')); if ( !ereg('.{3,20}', $_SESSION['accounts'][$row2]->general_username)) $errors[] = array('ERROR', _('Name'), _('Name must contain between 3 and 20 characters.'));
// Check if Name starts with letter // Check if Name starts with letter
if ( !ereg('^([a-z]|[A-Z]).*$', $_SESSION['account'][$row2]->general_username)) if ( !ereg('^([a-z]|[A-Z]).*$', $_SESSION['accounts'][$row2]->general_username))
$errors[] = array('ERROR', _('Name'), _('Name contains invalid characters. First character must be a letter')); $errors[] = array('ERROR', _('Name'), _('Name contains invalid characters. First character must be a letter'));
$_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors); $_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors);
if (isset($errors)) unset ($errors); if (isset($errors)) unset ($errors);
if ($_SESSION['account'][$row2]->unix_password != '') { if ($_SESSION['accounts'][$row2]->unix_password != '') {
$iv = base64_decode($_COOKIE["IV"]); $iv = base64_decode($_COOKIE["IV"]);
$key = base64_decode($_COOKIE["Key"]); $key = base64_decode($_COOKIE["Key"]);
$password = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($_SESSION['account'][$row2]->unix_password), MCRYPT_MODE_ECB, $iv); $password = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, base64_decode($_SESSION['accounts'][$row2]->unix_password), MCRYPT_MODE_ECB, $iv);
$password = str_replace(chr(00), '', $password); $password = str_replace(chr(00), '', $password);
} }
if (!ereg('^([a-z]|[A-Z]|[0-9]|[\|]|[\#]|[\*]|[\,]|[\.]|[\;]|[\:]|[\_]|[\-]|[\+]|[\!]|[\%]|[\&]|[\/]|[\?]|[\{]|[\[]|[\(]|[\)]|[\]]|[\}])*$', $password)) if (!ereg('^([a-z]|[A-Z]|[0-9]|[\|]|[\#]|[\*]|[\,]|[\.]|[\;]|[\:]|[\_]|[\-]|[\+]|[\!]|[\%]|[\&]|[\/]|[\?]|[\{]|[\[]|[\(]|[\)]|[\]]|[\}])*$', $password))
$errors[] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !')); $errors[] = array('ERROR', _('Password'), _('Password contains invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !'));
if ( !ereg('^([0-9])*$', $_SESSION['account'][$row2]->unix_pwdminage)) $errors[] = array('ERROR', _('Password minage'), _('Password minage must be are natural number.')); if ( !ereg('^([0-9])*$', $_SESSION['accounts'][$row2]->unix_pwdminage)) $errors[] = array('ERROR', _('Password minage'), _('Password minage must be are natural number.'));
if ( $_SESSION['account'][$row2]->unix_pwdminage > $_SESSION['account'][$row2]->unix_pwdmaxage ) $errors[] = array('ERROR', _('Password maxage'), _('Password maxage must bigger as Password Minage.')); if ( $_SESSION['accounts'][$row2]->unix_pwdminage > $_SESSION['accounts'][$row2]->unix_pwdmaxage ) $errors[] = array('ERROR', _('Password maxage'), _('Password maxage must bigger as Password Minage.'));
if ( !ereg('^([0-9]*)$', $_SESSION['account'][$row2]->unix_pwdmaxage)) $errors[] = array('ERROR', _('Password maxage'), _('Password maxage must be are natural number.')); if ( !ereg('^([0-9]*)$', $_SESSION['accounts'][$row2]->unix_pwdmaxage)) $errors[] = array('ERROR', _('Password maxage'), _('Password maxage must be are natural number.'));
if ( !ereg('^(([-][1])|([0-9]*))$', $_SESSION['account'][$row2]->unix_pwdallowlogin)) if ( !ereg('^(([-][1])|([0-9]*))$', $_SESSION['accounts'][$row2]->unix_pwdallowlogin))
$errors[] = array('ERROR', _('Password Expire'), _('Password expire must be are natural number or -1.')); $errors[] = array('ERROR', _('Password Expire'), _('Password expire must be are natural number or -1.'));
if ( !ereg('^([0-9]*)$', $_SESSION['account'][$row2]->unix_pwdwarn)) $errors[] = array('ERROR', _('Password warn'), _('Password warn must be are natural number.')); if ( !ereg('^([0-9]*)$', $_SESSION['accounts'][$row2]->unix_pwdwarn)) $errors[] = array('ERROR', _('Password warn'), _('Password warn must be are natural number.'));
if ((!$_SESSION['account'][$row2]->unix_host=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[.]|[-])+(([,])+([ ])*([a-z]|[A-Z]|[0-9]|[.]|[-])+)*$', $_SESSION['account']->unix_host)) if ((!$_SESSION['accounts'][$row2]->unix_host=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[.]|[-])+(([,])+([ ])*([a-z]|[A-Z]|[0-9]|[.]|[-])+)*$', $_SESSION['accounts']->unix_host))
$errors[] = array('ERROR', _('Unix workstations'), _('Unix workstations is invalid.')); $errors[] = array('ERROR', _('Unix workstations'), _('Unix workstations is invalid.'));
$_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors); $_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors);
if (isset($errors)) unset ($errors); if (isset($errors)) unset ($errors);
$_SESSION['account'][$row2]->smb_displayName = $_SESSION['account'][$row2]->general_gecos; $_SESSION['accounts'][$row2]->smb_displayName = $_SESSION['accounts'][$row2]->general_gecos;
$i=0; $i=0;
while ($_SESSION['account'][$row2]->quota[$i][0]) { while ($_SESSION['accounts'][$row2]->quota[$i][0]) {
// Check if values are OK and set automatic values. if not error-variable will be set // Check if values are OK and set automatic values. if not error-variable will be set
if (!ereg('^([0-9])*$', $_SESSION['account'][$row2]->quota[$i][2])) if (!ereg('^([0-9])*$', $_SESSION['accounts'][$row2]->quota[$i][2]))
$errors[] = array('ERROR', _('Block soft quota'), _('Block soft quota contains invalid characters. Only natural numbers are allowed')); $errors[] = array('ERROR', _('Block soft quota'), _('Block soft quota contains invalid characters. Only natural numbers are allowed'));
if (!ereg('^([0-9])*$', $_SESSION['account'][$row2]->quota[$i][3])) if (!ereg('^([0-9])*$', $_SESSION['accounts'][$row2]->quota[$i][3]))
$errors[] = array('ERROR', _('Block hard quota'), _('Block hard quota contains invalid characters. Only natural numbers are allowed')); $errors[] = array('ERROR', _('Block hard quota'), _('Block hard quota contains invalid characters. Only natural numbers are allowed'));
if (!ereg('^([0-9])*$', $_SESSION['account'][$row2]->quota[$i][6])) if (!ereg('^([0-9])*$', $_SESSION['accounts'][$row2]->quota[$i][6]))
$errors[] = array('ERROR', _('Inode soft quota'), _('Inode soft quota contains invalid characters. Only natural numbers are allowed')); $errors[] = array('ERROR', _('Inode soft quota'), _('Inode soft quota contains invalid characters. Only natural numbers are allowed'));
if (!ereg('^([0-9])*$', $_SESSION['account'][$row2]->quota[$i][7])) if (!ereg('^([0-9])*$', $_SESSION['accounts'][$row2]->quota[$i][7]))
$errors[] = array('ERROR', _('Inode hard quota'), _('Inode hard quota contains invalid characters. Only natural numbers are allowed')); $errors[] = array('ERROR', _('Inode hard quota'), _('Inode hard quota contains invalid characters. Only natural numbers are allowed'));
$i++; $i++;
} }
$_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors); $_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors);
if (isset($errors)) unset ($errors); if (isset($errors)) unset ($errors);
if ( !ereg('^(\+)*([0-9]|[ ]|[.]|[(]|[)]|[/])*$', $_SESSION['account'][$row2]->personal_telephoneNumber)) $errors[] = array('ERROR', _('Telephone number'), _('Please enter a valid telephone number!')); if ( !ereg('^(\+)*([0-9]|[ ]|[.]|[(]|[)]|[/])*$', $_SESSION['accounts'][$row2]->personal_telephoneNumber)) $errors[] = array('ERROR', _('Telephone number'), _('Please enter a valid telephone number!'));
if ( !ereg('^(\+)*([0-9]|[ ]|[.]|[(]|[)]|[/])*$', $_SESSION['account'][$row2]->personal_mobileTelephoneNumber)) $errors[] = array('ERROR', _('Mobile number'), _('Please enter a valid mobile number!')); if ( !ereg('^(\+)*([0-9]|[ ]|[.]|[(]|[)]|[/])*$', $_SESSION['accounts'][$row2]->personal_mobileTelephoneNumber)) $errors[] = array('ERROR', _('Mobile number'), _('Please enter a valid mobile number!'));
if ( !ereg('^(\+)*([0-9]|[ ]|[.]|[(]|[)]|[/])*$', $_SESSION['account'][$row2]->personal_facsimileTelephoneNumber)) $errors[] = array('ERROR', _('Fax number'), _('Please enter a valid fax number!')); if ( !ereg('^(\+)*([0-9]|[ ]|[.]|[(]|[)]|[/])*$', $_SESSION['accounts'][$row2]->personal_facsimileTelephoneNumber)) $errors[] = array('ERROR', _('Fax number'), _('Please enter a valid fax number!'));
if ( !ereg('^(([0-9]|[A-Z]|[a-z]|[.]|[-]|[_])+[@]([0-9]|[A-Z]|[a-z]|[-])+([.]([0-9]|[A-Z]|[a-z]|[-])+)*)*$', $_SESSION['account'][$row2]->personal_mail)) $errors[] = array('ERROR', _('eMail address'), _('Please enter a valid eMail address!')); if ( !ereg('^(([0-9]|[A-Z]|[a-z]|[.]|[-]|[_])+[@]([0-9]|[A-Z]|[a-z]|[-])+([.]([0-9]|[A-Z]|[a-z]|[-])+)*)*$', $_SESSION['accounts'][$row2]->personal_mail)) $errors[] = array('ERROR', _('eMail address'), _('Please enter a valid eMail address!'));
if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['account'][$row2]->personal_street)) $errors[] = array('ERROR', _('Street'), _('Please enter a valid street name!')); if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['accounts'][$row2]->personal_street)) $errors[] = array('ERROR', _('Street'), _('Please enter a valid street name!'));
if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['account'][$row2]->personal_postalAddress)) $errors[] = array('ERROR', _('Postal address'), _('Please enter a valid postal address!')); if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['accounts'][$row2]->personal_postalAddress)) $errors[] = array('ERROR', _('Postal address'), _('Please enter a valid postal address!'));
if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['account'][$row2]->personal_title)) $errors[] = array('ERROR', _('Title'), _('Please enter a valid title!')); if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['accounts'][$row2]->personal_title)) $errors[] = array('ERROR', _('Title'), _('Please enter a valid title!'));
if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['account'][$row2]->personal_employeeType)) $errors[] = array('ERROR', _('Employee type'), _('Please enter a valid employee type!')); if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_SESSION['accounts'][$row2]->personal_employeeType)) $errors[] = array('ERROR', _('Employee type'), _('Please enter a valid employee type!'));
if ( !ereg('^([0-9]|[A-Z]|[a-z])*$', $_SESSION['account']->personal_postalCode)) $errors[] = array('ERROR', _('Postal code'), _('Please enter a valid postal code!')); if ( !ereg('^([0-9]|[A-Z]|[a-z])*$', $_SESSION['accounts']->personal_postalCode)) $errors[] = array('ERROR', _('Postal code'), _('Please enter a valid postal code!'));
$_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors); $_SESSION['errors'][$row2] = array_merge($_SESSION['errors'][$row2], $errors);
if (isset($errors)) unset ($errors); if (isset($errors)) unset ($errors);

View File

@ -23,8 +23,12 @@ $Id$
LDAP Account Manager displays table for creating or modifying accounts in LDAP LDAP Account Manager displays table for creating or modifying accounts in LDAP
*/ */
include_once('../lib/account.inc'); // File with custom functions include_once('../lib/account.inc'); // File with all account-funtions
include_once('../lib/config.inc'); // File with configure-functions include_once('../lib/config.inc'); // File with configure-functions
include_once('../lib/profiles.inc'); // functions to load and save profiles
include_once('../lib/status.inc'); // Return error-message
include_once('../lib/pdf.inc'); // Return a pdf-file
include_once('../lib/ldap.inc'); // LDAP-functions
session_save_path('../sess'); session_save_path('../sess');
@session_start(); @session_start();
@ -60,43 +64,45 @@ if ($_POST['apply']) {
// Check if username is valid // Check if username is valid
if ( !ereg('^([a-z]|[0-9]|[.]|[-]|[_])*$', $_POST['f_general_username'])) if ( !ereg('^([a-z]|[0-9]|[.]|[-]|[_])*$', $_POST['f_general_username']))
$errors[] = array('ERROR', _('Username'), _('Username contains invalid characters. Valid characters are: a-z, 0-9 and .-_ !')); $errors[] = array('ERROR', _('Username'), _('Username contains invalid characters. Valid characters are: a-z, 0-9 and .-_ !'));
else if ( !ereg('^([a-z]|[A-Z]).*$', $_POST['f_general_username']))
$errors[] = array('ERROR', _('Name'), _('Name contains invalid characters. First character must be a letter'));
else { else {
$_SESSION['accounts'][$row]->general_username = $_POST['f_general_username']; $_SESSION['accounts'][$row]->general_username = $_POST['f_general_username'];
// Check if user already exists // Check if user already exists
if (isset($_SESSION['account'][$row]->general_groupadd) && in_array($_SESSION['account'][$row]->general_group, $_SESSION['account'][$row]->general_groupadd)) { if (isset($_SESSION['accounts'][$row]->general_groupadd) && in_array($_SESSION['accounts'][$row]->general_group, $_SESSION['accounts'][$row]->general_groupadd)) {
for ($i=0; $i<count($_SESSION['account'][$row]->general_groupadd); $i++ ) for ($i=0; $i<count($_SESSION['accounts'][$row]->general_groupadd); $i++ )
if ($_SESSION['account'][$row]->general_groupadd[$i] == $_SESSION['account'][$row]->general_group) { if ($_SESSION['accounts'][$row]->general_groupadd[$i] == $_SESSION['accounts'][$row]->general_group) {
unset ($_SESSION['account'][$row]->general_groupadd[$i]); unset ($_SESSION['accounts'][$row]->general_groupadd[$i]);
$_SESSION['account'][$row]->general_groupadd = array_values($_SESSION['account'][$row]->general_groupadd); $_SESSION['accounts'][$row]->general_groupadd = array_values($_SESSION['accounts'][$row]->general_groupadd);
} }
} }
// Create automatic useraccount with number if original user already exists // Create automatic useraccount with number if original user already exists
// Reset name to original name if new name is in use // Reset name to original name if new name is in use
while ($temp = ldapexists($_SESSION['account'][$row], 'user')) { while ($temp = ldapexists($_SESSION['accounts'][$row], 'user')) {
// get last character of username // get last character of username
$lastchar = substr($_SESSION['account'][$row]->general_username, strlen($_SESSION['account'][$row]->general_username)-1, 1); $lastchar = substr($_SESSION['accounts'][$row]->general_username, strlen($_SESSION['accounts'][$row]->general_username)-1, 1);
// Last character is no number // Last character is no number
if ( !ereg('^([0-9])+$', $lastchar)) if ( !ereg('^([0-9])+$', $lastchar))
$_SESSION['account'][$row]->general_username = $_SESSION['account'][$row]->general_username . '2'; $_SESSION['accounts'][$row]->general_username = $_SESSION['accounts'][$row]->general_username . '2';
else { else {
$i=strlen($_SESSION['account'][$row]->general_username)-1; $i=strlen($_SESSION['accounts'][$row]->general_username)-1;
$mark = false; $mark = false;
while (!$mark) { while (!$mark) {
if (ereg('^([0-9])+$',substr($_SESSION['account'][$row]->general_username, $i, strlen($_SESSION['account'][$row]->general_username)-$i))) $i--; if (ereg('^([0-9])+$',substr($_SESSION['accounts'][$row]->general_username, $i, strlen($_SESSION['accounts'][$row]->general_username)-$i))) $i--;
else $mark=true; else $mark=true;
} }
// increase last number with one // increase last number with one
$firstchars = substr($_SESSION['account'][$row]->general_username, 0, $i+1); $firstchars = substr($_SESSION['accounts'][$row]->general_username, 0, $i+1);
$lastchars = substr($_SESSION['account'][$row]->general_username, $i+1, strlen($_SESSION['account'][$row]->general_username)-$i); $lastchars = substr($_SESSION['accounts'][$row]->general_username, $i+1, strlen($_SESSION['accounts'][$row]->general_username)-$i);
$_SESSION['account'][$row]->general_username = $firstchars . (intval($lastchars)+1); $_SESSION['accounts'][$row]->general_username = $firstchars . (intval($lastchars)+1);
} }
} }
} }
// check if group is valid // check if group is valid
if ($_POST['f_general_group']!='') $_SESSION['accounts'][$row]->general_group = $_POST['f_general_group']; if ($_POST['f_general_group']!='') $_SESSION['accounts'][$row]->general_group = $_POST['f_general_group'];
else $errors[] = array('Error', _('Primary group'), _('No primary group defined.')); else $errors[] = array('ERROR', _('Primary group'), _('No primary group defined.'));
if (in_array($_POST['f_general_group'], findgroups)) $_SESSION['accounts'][$row]->general_group = $_POST['f_general_group']; if (in_array($_POST['f_general_group'], findgroups())) $_SESSION['accounts'][$row]->general_group = $_POST['f_general_group'];
else $errors[] = array('Warning', _('Primary group'), _('Primary group does not exist. Will create group automaticly.')); else $errors[] = array('WARN', _('Primary group'), _('Primary group does not exist. Will create group automaticly.'));
if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_POST['f_personal_title'])) $errors[] = array('ERROR', _('Title'), _('Please enter a valid title!')); if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_POST['f_personal_title'])) $errors[] = array('ERROR', _('Title'), _('Please enter a valid title!'));
else $_SESSION['accounts'][$row]->personal_title = $_POST['f_personal_title']; else $_SESSION['accounts'][$row]->personal_title = $_POST['f_personal_title'];
if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_POST['f_personal_employeeType'])) $errors[] = array('ERROR', _('Employee type'), _('Please enter a valid employee type!')); if ( !ereg('^([0-9]|[A-Z]|[a-z]|[ ]|[.]|[Ä]|[ä]|[Ö]|[ö]|[Ü]|[ü]|[ß])*$', $_POST['f_personal_employeeType'])) $errors[] = array('ERROR', _('Employee type'), _('Please enter a valid employee type!'));
@ -177,7 +183,7 @@ switch ($select) {
echo _('Title'); echo _('Title');
echo '</td>'."\n".'<td>'. echo '</td>'."\n".'<td>'.
'<input name="f_personal_title" type="text" size="10" maxlength="10" value="' . $_SESSION['accounts'][$row]->personal_title . '"> '; '<input name="f_personal_title" type="text" size="10" maxlength="10" value="' . $_SESSION['accounts'][$row]->personal_title . '"> ';
echo $_SESSION['account']->general_surname . ' ' . $_SESSION['account']->general_givenname . '</td><td>'. echo $_SESSION['accounts']->general_surname . ' ' . $_SESSION['accounts']->general_givenname . '</td><td>'.
'<a href="help.php?HelpNumber=448" target="lamhelp">'._('Help').'</a>'. '<a href="help.php?HelpNumber=448" target="lamhelp">'._('Help').'</a>'.
'</td></tr>'."\n".'<tr><td>'; '</td></tr>'."\n".'<tr><td>';
echo _('Employee type'); echo _('Employee type');