Several smaller bugfixes.

Changed DN for users from cn=.... to uid=....
This commit is contained in:
katagia 2003-05-16 20:00:45 +00:00
parent 065ca2a0d7
commit 8866f817bb
4 changed files with 36 additions and 25 deletions

View File

@ -13,7 +13,7 @@
<tr><td>Username: <?=$_SESSION['account']->general_username?></td><td>UID-Number: <?=$_SESSION['account']->general_uidNumber?></td></tr> <tr><td>Username: <?=$_SESSION['account']->general_username?></td><td>UID-Number: <?=$_SESSION['account']->general_uidNumber?></td></tr>
<tr><td>Unix-Password: <?=$_SESSION['account']->unix_password?></td></tr> <tr><td>Unix-Password: <?=$_SESSION['account']->unix_password?></td></tr>
<tr><td>Groupname: <?=$_SESSION['account']->general_group?></td><td>GID-Number: </td></tr> <tr><td>Groupname: <?=$_SESSION['account']->general_group?></td><td>GID-Number: </td></tr>
<tr><td>User is also member of groups: <?=;foreach ($_SESSION['account']->general_groupadd as $group) echo $group.' ';?> <tr><td>User is also member of groups: <?=$_SESSION['account']->general_groupadd?>
</td></tr> </td></tr>
<tr><td>Homedirectory: <?=$_SESSION['account']->general_homedir?></td><td>Shell: <?=$_SESSION['account']->general_shell?></td></tr> <tr><td>Homedirectory: <?=$_SESSION['account']->general_homedir?></td><td>Shell: <?=$_SESSION['account']->general_shell?></td></tr>
<tr><td><br></td></tr> <tr><td><br></td></tr>

View File

@ -96,10 +96,11 @@ function getshells() { // Return a list of all shells listed in /etc/shells
$shells = file('../config/shells'); $shells = file('../config/shells');
$i=0; $i=0;
while ($shells[$i]) { while ($shells[$i]) {
// ******** Fixme remove everthing starting from # and every empty line
chop($shells[$i]); chop($shells[$i]);
trim($shells[$i]); trim($shells[$i]);
$i++; $shells[$i] = substr($shells[$i], 0, strpos($shells[$i], '#'));
if ($shells[$i]=='') unset ($shells[$i]);
else $i++;
} }
return $shells; return $shells;
} }
@ -197,17 +198,17 @@ function checkunix() { // This function checks all unix account paramters
if ($_SESSION['account_temp']->unix_pwdwarn=='') $error = _('No value for Password Warn.'); if ($_SESSION['account_temp']->unix_pwdwarn=='') $error = _('No value for Password Warn.');
break; break;
case 'host' : case 'host' :
// Sonderzeichen |#*,.;:_-+!$%&/|?{[()]} ****************************************************
if ( !ereg('^([a-z]|[A-Z]|[0-9])*$', $_SESSION['account_temp']->unix_password)) $error = _('Password contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !');
if ($_SESSION['account_temp']->unix_pwdwarn=='') $error = _('No value for Password Warn.');
if ( !ereg('^([1-9]+)([0-9]*)$', $_SESSION['account_temp']->unix_pwdwarn)) $error = _('Password Warn must be are natural number.');
if ($_SESSION['account_temp']->unix_pwdallowlogin=='') $error = _('No value for Password Expire.');
if ( !ereg('^(([-][1])|([0-9]*))$', $_SESSION['account_temp']->unix_pwdallowlogin)) $error = _('Password Expire must be are natural number or -1.');
if ($_SESSION['account_temp']->unix_pwdmaxage=='') $error = _('No value for Password Maxage.');
if ( !ereg('^([1-9]+)([0-9]*)$', $_SESSION['account_temp']->unix_pwdmaxage)) $error = _('Password Maxage must be are natural number.');
if ($_SESSION['account_temp']->unix_pwdminage=='') $error = _('No value for Password Minage.');
if ( !ereg('^([0-9]*)$', $_SESSION['account_temp']->unix_pwdminage)) $error = _('Password Minage must be are natural number.'); if ( !ereg('^([0-9]*)$', $_SESSION['account_temp']->unix_pwdminage)) $error = _('Password Minage must be are natural number.');
if ( $_SESSION['account_temp']->unix_pwdminage > $_SESSION['account_temp']->unix_pwdmaxage ) $error = _('Password Maxage must bigger as Password Minage.'); if ( $_SESSION['account_temp']->unix_pwdminage > $_SESSION['account_temp']->unix_pwdmaxage ) $error = _('Password Maxage must bigger as Password Minage.');
if ( !ereg('^([1-9]+)([0-9]*)$', $_SESSION['account_temp']->unix_pwdmaxage)) $error = _('Password Maxage must be are natural number.');
if ($_SESSION['account_temp']->unix_pwdminage=='') $error = _('No value for Password Minage.');
if ( !ereg('^(([-][1])|([0-9]*))$', $_SESSION['account_temp']->unix_pwdallowlogin)) $error = _('Password Expire must be are natural number or -1.');
if ($_SESSION['account_temp']->unix_pwdmaxage=='') $error = _('No value for Password Maxage.');
if ( !ereg('^([1-9]+)([0-9]*)$', $_SESSION['account_temp']->unix_pwdwarn)) $error = _('Password Warn must be are natural number.');
if ($_SESSION['account_temp']->unix_pwdallowlogin=='') $error = _('No value for Password Expire.');
if ( !ereg('^([a-z]|[A-Z]|[0-9]|[\|]|[\#]|[\*]|[\,]|[\.]|[\;]|[\:]|[\_]|[\-]|[\+]|[\!]|[\%]|[\&]|[\/]|[\?]|[\{]|[\[]|[\(]|[\)]|[\]]|[\}])*$',
$_SESSION['account_temp']->unix_password)) $error = _('Password contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !');
if ($_SESSION['account_temp']->unix_pwdwarn=='') $error = _('No value for Password Warn.');
break; break;
} }
// Write Values from Webpage to Session-Variables // Write Values from Webpage to Session-Variables
@ -245,9 +246,9 @@ function checksamba() { // This function checks all samba account paramters
$_SESSION['account_temp']->smb_flagsW = 0; $_SESSION['account_temp']->smb_flagsW = 0;
break; break;
case 'host' : case 'host' :
// Sonderzeichen |#*,.;:_-+!$%&/|?{[()]} ****************************************************
if ( !ereg('^([a-z]|[A-Z]|[0-9])*$', $_SESSION['account_temp']->smb_password)) $error = _('Password contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !');
if ( (!$_SESSION['account_temp']->smb_domain=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[-])+$', $_SESSION['account_temp']->smb_domain)) $error = _('Domain Name contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and -.'); if ( (!$_SESSION['account_temp']->smb_domain=='') && !ereg('^([a-z]|[A-Z]|[0-9]|[-])+$', $_SESSION['account_temp']->smb_domain)) $error = _('Domain Name contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and -.');
if ( !ereg('^([a-z]|[A-Z]|[0-9]|[\|]|[\#]|[\*]|[\,]|[\.]|[\;]|[\:]|[\_]|[\-]|[\+]|[\!]|[\%]|[\&]|[\/]|[\?]|[\{]|[\[]|[\(]|[\)]|[\]]|[\}])*$',
$_SESSION['account_temp']->smb_password)) $error = _('Password contents invalid characters. Valid characters are: a-z, A-Z, 0-9 and #*,.;:_-+!$%&/|?{[()]}= !');
$_SESSION['account_temp']->smb_flagsW = 1; $_SESSION['account_temp']->smb_flagsW = 1;
break; break;
} }
@ -423,11 +424,20 @@ function remhomedir($user) { // Remove Homedirectory
function ldapexists() { // This function will search if the DN already exists function ldapexists() { // This function will search if the DN already exists
switch ($_SESSION['type2']) { switch ($_SESSION['type2']) {
case 'user': $searchbase = $_SESSION['config']->get_UserSuffix(); break; case 'user':
case 'group': $searchbase = $_SESSION['config']->get_GroupSuffix(); break; $searchbase = $_SESSION['config']->get_UserSuffix();
case 'host': $searchbase = $_SESSION['config']->get_HostSuffix(); break; $search = "uid=".$_SESSION['account_temp']->general_username;
break;
case 'group':
$searchbase = $_SESSION['config']->get_GroupSuffix();
$search = "cn=".$_SESSION['account_temp']->general_username;
break;
case 'host':
$searchbase = $_SESSION['config']->get_HostSuffix();
$search = "uid=".$_SESSION['account_temp']->general_username;
break;
} }
$result = ldap_search($_SESSION['ldap']->server(), $searchbase, 'cn=' . $_SESSION['account_temp']->general_username, array(''), 1); $result = ldap_search($_SESSION['ldap']->server(), $searchbase, $search , array(''), 1);
$entry = ldap_first_entry($_SESSION['ldap']->server(), $result); $entry = ldap_first_entry($_SESSION['ldap']->server(), $result);
if ($entry) $dn = (ldap_get_dn($_SESSION['ldap']->server(), $entry)); if ($entry) $dn = (ldap_get_dn($_SESSION['ldap']->server(), $entry));
if ($dn) { if ($dn) {
@ -526,6 +536,7 @@ function smbflag() { // Creates te attribute attrFlags
if ($_SESSION['account']->smb_flagsW) $flag = $flag . "W"; else $flag = $flag . "U"; if ($_SESSION['account']->smb_flagsW) $flag = $flag . "W"; else $flag = $flag . "U";
if ($_SESSION['account']->smb_flagsD) $flag = $flag . "D"; if ($_SESSION['account']->smb_flagsD) $flag = $flag . "D";
if ($_SESSION['account']->smb_flagsX) $flag = $flag . "X"; if ($_SESSION['account']->smb_flagsX) $flag = $flag . "X";
str_pad($flag, 12);
$flag = $flag. "]"; $flag = $flag. "]";
return $flag; return $flag;
} }
@ -681,7 +692,7 @@ function createuser() { // Will create the LDAP-Account
// Value stored in shadowExpire, days since 1.1.1970 // Value stored in shadowExpire, days since 1.1.1970
$date = mktime(10,0,0, $_SESSION['account']->unix_pwdexpire_mon, $_SESSION['account']->unix_pwdexpire_day, $_SESSION['account']->unix_pwdexpire_yea) / 86400 ; $date = mktime(10,0,0, $_SESSION['account']->unix_pwdexpire_mon, $_SESSION['account']->unix_pwdexpire_day, $_SESSION['account']->unix_pwdexpire_yea) / 86400 ;
settype($date, 'integer'); settype($date, 'integer');
$_SESSION['account']->general_dn = 'cn=' . $_SESSION['account']->general_username . ',' . $_SESSION['config']->get_UserSuffix(); $_SESSION['account']->general_dn = 'uid=' . $_SESSION['account']->general_username . ',' . $_SESSION['config']->get_UserSuffix();
// All Values need for an user-account // All Values need for an user-account
// General Objectclasses // General Objectclasses
@ -852,7 +863,7 @@ function createhost() { // Will create the LDAP-Host
// Value stored in shadowExpire, days since 1.1.1970 // Value stored in shadowExpire, days since 1.1.1970
$date = mktime(10,0,0, $_SESSION['account']->unix_pwdexpire_mon, $_SESSION['account']->unix_pwdexpire_day, $_SESSION['account']->unix_pwdexpire_yea) / 86400 ; $date = mktime(10,0,0, $_SESSION['account']->unix_pwdexpire_mon, $_SESSION['account']->unix_pwdexpire_day, $_SESSION['account']->unix_pwdexpire_yea) / 86400 ;
settype($date, 'integer'); settype($date, 'integer');
$_SESSION['account']->general_dn = 'cn=' . $_SESSION['account']->general_username . ',' . $_SESSION['config']->get_HostSuffix(); $_SESSION['account']->general_dn = 'uid=' . $_SESSION['account']->general_username . ',' . $_SESSION['config']->get_HostSuffix();
// All Values needed for an user-account // All Values needed for an user-account
// General Objectclasses // General Objectclasses

View File

@ -269,6 +269,7 @@ if ($_POST['load']) $select_local='load';
if ($_POST['save']) $select_local='save'; if ($_POST['save']) $select_local='save';
switch ($select_local) { switch ($select_local) {
case 'general': case 'general':
// General Account Settings // General Account Settings
@ -618,7 +619,7 @@ switch ($select_local) {
echo _('User Workstations'); echo _('User Workstations');
echo '</td><td><input name="f_smb_smbuserworkstations" type="text" size="20" maxlength="20" value="' . $_SESSION['account']->smb_smbuserworkstations . '"> echo '</td><td><input name="f_smb_smbuserworkstations" type="text" size="20" maxlength="20" value="' . $_SESSION['account']->smb_smbuserworkstations . '">
</td><td>'; </td><td>';
echo _('Workstations the user is allowed to login. * means every workstation. Can be left empty.'); echo _('Komma-separated list of workstations the user is allowed to login. Empty means every workstation. Can be left empty.');
echo '</td></tr><tr><td>'; echo '</td></tr><tr><td>';
echo _('smb Home'); echo _('smb Home');
echo '</td><td><input name="f_smb_smbhome" type="text" size="20" maxlength="20" value="' . $_SESSION['account']->smb_smbhome . '"> echo '</td><td><input name="f_smb_smbhome" type="text" size="20" maxlength="20" value="' . $_SESSION['account']->smb_smbhome . '">

View File

@ -70,7 +70,7 @@ if ($_POST['delete_yes']) {
switch ($_POST['type5']) { switch ($_POST['type5']) {
case 'user': case 'user':
$temp=explode(',', $dn); $temp=explode(',', $dn);
$username = str_replace('cn=', '', $temp[0]); $username = str_replace('uid=', '', $temp[0]);
if ($_SESSION['config']->scriptServer) { if ($_SESSION['config']->scriptServer) {
remhomedir($username); remhomedir($username);
remquotas($username, $_POST['type5']); remquotas($username, $_POST['type5']);
@ -99,16 +99,15 @@ if ($_POST['delete_yes']) {
break; break;
case 'group': case 'group':
$temp=explode(',', $dn); $temp=explode(',', $dn);
$username = str_replace('cn=', '', $temp[0]); $groupname = str_replace('cn=', '', $temp[0]);
$result = ldap_search($_SESSION['ldap']->server(), $dn, 'objectClass=*'); $result = ldap_search($_SESSION['ldap']->server(), $dn, 'objectClass=*');
if (!$result) $error = _('Could not delete group: ').$dn; if (!$result) $error = _('Could not delete group: ').$dn;
$entry = ldap_first_entry($_SESSION['ldap']->server(), $result); $entry = ldap_first_entry($_SESSION['ldap']->server(), $result);
$attr = ldap_get_attributes($_SESSION['ldap']->server(), $entry); $attr = ldap_get_attributes($_SESSION['ldap']->server(), $entry);
if ($attr['memberUid']) $error = _('Could not delete group. Still users in group: ').$dn; if ($attr['memberUid']) $error = _('Could not delete group. Still users in group: ').$dn;
else { else {
if ($_SESSION['config']->scriptServer) remquotas($username, $_POST['type5']); if ($_SESSION['config']->scriptServer) remquotas($groupname, $_POST['type5']);
$success = ldap_delete($_SESSION['ldap']->server(), $dn); $success = ldap_delete($_SESSION['ldap']->server(), $dn);
if (!$success) $error = _('Could not delete user: ').$dn;
} }
break; break;
} }