fixed problem with ID generation. I hope it's working now
Fixed new problem with additaional groups Added Group and Host PDF Support
This commit is contained in:
parent
2a192da7d3
commit
379a43252e
|
@ -217,7 +217,7 @@ $helpArray = array (
|
|||
"435" => array ("ext" => "FALSE", "Headline" => _("Profile path"),
|
||||
"Text" => _("Path of the userprofile. Can be a local absolute path or a UNC-path (\\\\server\\share). \$user and \$group are replaced with user- and groupname."). ' '. _("Can be left empty.")),
|
||||
"436" => array ("ext" => "FALSE", "Headline" => _("Samba workstations"),
|
||||
"Text" => _("Comma separated list of samba workstations the user is allowed to login. Empty means every workstation."). ' '. _("Can be left empty.")),
|
||||
"Text" => _("List of samba workstations the user is allowed to login. Empty means every workstation."). ' '. _("Can be left empty.")),
|
||||
"437" => array ("ext" => "FALSE", "Headline" => _("Home path"),
|
||||
"Text" => _("UNC-path (\\\\server\\share) of homedirectory. \$user and \$group are replaced with user- and groupname."). ' '. _("Can be left empty.")),
|
||||
"438" => array ("ext" => "FALSE", "Headline" => _("Domain"),
|
||||
|
|
|
@ -111,7 +111,7 @@ function replace_umlaut($text) { // This function will replace umlates with ascc
|
|||
|
||||
function array_delete($values, $array) { // This function will return all values from $array without values of $values
|
||||
foreach ($array as $array_value)
|
||||
if (!in_array($array_value, $values))
|
||||
if (!@in_array($array_value, $values))
|
||||
$return[] = $array_value;
|
||||
return $return;
|
||||
}
|
||||
|
@ -180,7 +180,7 @@ function getquotas($type,$user='+') { // Whis function will return the quotas fr
|
|||
$towrite = $ldap_q[0].' '.$ldap_q[1].' '.$user.' quota get ';
|
||||
if ($type=='user') $towrite = $towrite.'u';
|
||||
else $towrite = $towrite.'g';
|
||||
exec("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite, $vals, $status);
|
||||
exec(escapeshellarg("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite), $vals, $status);
|
||||
$vals = explode(':', $vals[0]);
|
||||
for ($i=0; $i<sizeof($vals); $i++) {
|
||||
$vals2 = explode(',', $vals[$i]);
|
||||
|
@ -212,7 +212,7 @@ function setquotas($values,$type,$values_old=false) { // Whis function will set
|
|||
}
|
||||
$i++;
|
||||
}
|
||||
if ($i!=0) exec("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite, $vals);
|
||||
if ($i!=0) exec(escapeshellarg("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite), $vals);
|
||||
}
|
||||
|
||||
function remquotas($user, $type) { // Whis function will remove the quotas from the specified user.
|
||||
|
@ -223,7 +223,7 @@ function remquotas($user, $type) { // Whis function will remove the quotas from
|
|||
if ($type=='user') $towrite = $towrite.'u ';
|
||||
else $towrite = $towrite.'g ';
|
||||
|
||||
exec("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite, $vals);
|
||||
exec(escapeshellarg("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite), $vals);
|
||||
}
|
||||
|
||||
|
||||
|
@ -232,7 +232,7 @@ function addhomedir($user) { // Create Homedirectory
|
|||
// all other needed vars are taken from remotesystem getusrnam
|
||||
$ldap_q = $_SESSION['ldap']->decrypt();
|
||||
$towrite = $ldap_q[0].' '.$ldap_q[1].' '.$user.' home add';
|
||||
exec("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite, $vals);
|
||||
exec(escapeshellarg("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite), $vals);
|
||||
}
|
||||
|
||||
function remhomedir($user) { // Remove Homedirectory
|
||||
|
@ -240,7 +240,7 @@ function remhomedir($user) { // Remove Homedirectory
|
|||
// all other needed vars are taken from remotesystem getusrnam
|
||||
$ldap_q = $_SESSION['ldap']->decrypt();
|
||||
$towrite = $ldap_q[0].' '.$ldap_q[1].' '.$user.' home rem';
|
||||
exec("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite, $vals);
|
||||
exec(escapeshellarg("perl ".$_SESSION['lampath']."lib/lamdaemon.pl ".$_SESSION['config']->scriptServer ." ".$_SESSION['config']->scriptPath." ".$towrite), $vals);
|
||||
}
|
||||
|
||||
function ldapreload($type) { // This function will load an array th cache ldap-requests
|
||||
|
@ -445,14 +445,10 @@ function checkid($values, $type, $values_old=false) { // if value is empty will
|
|||
if ($id < $maxID) return intval($id);
|
||||
}
|
||||
}
|
||||
|
||||
$id=$minID;
|
||||
while ($values->general_uidNumber=='') {
|
||||
if ($keys3[$id]>$maxID) return _('No free ID-Number!');
|
||||
// if !=1, we've found an unused id
|
||||
if ($keys3[$id+1]-$keys3[$id]!=1) return intval($keys3[$id]+1);
|
||||
$id++;
|
||||
}
|
||||
$i = intval($minID);
|
||||
while (in_array($i, $keys3)) $i++;
|
||||
if ($i>$maxID) return _('No free ID-Number!');
|
||||
else return $i;
|
||||
}
|
||||
else $useID = $minID;
|
||||
return intval($useID);
|
||||
|
@ -554,10 +550,11 @@ function loaduser($dn) { // Will load all needed values from an existing account
|
|||
if (isset($attr['postalCode'][0])) $return->personal_postalCode = utf8_decode($attr['postalCode'][0]);
|
||||
if (isset($attr['postalAddress'][0])) $return->personal_postalAddress = utf8_decode($attr['postalAddress'][0]);
|
||||
if (isset($attr['employeeType'][0])) $return->personal_employeeType = utf8_decode($attr['employeeType'][0]);
|
||||
if ( ereg('^[{]([A-Z]|[a-z]|[0-9])+[}][!]', $attr['userPassword'][0])) $return->unix_deactivated=true;
|
||||
|
||||
if (isset($attr['userPassword'][0])) $return->unix_password = $attr['userPassword'][0];
|
||||
|
||||
if (isset($attr['userPassword'][0])) {
|
||||
$return->unix_password = $attr['userPassword'][0];
|
||||
$return->unix_deactivated=$_SESSION['ldap']->pwd_is_enabled($attr['userPassword'][0]);
|
||||
}
|
||||
if (isset($attr['displayName'][0])) $return->smb_displayName = utf8_decode($attr['displayName'][0]);
|
||||
|
||||
if (in_array('sambaSamAccount', $attr['objectClass'])) {
|
||||
|
@ -647,7 +644,10 @@ function loadhost($dn) { // Will load all needed values from an existing account
|
|||
if (isset($attr['uidNumber'][0])) $return->general_uidNumber = $attr['uidNumber'][0];
|
||||
if (isset($attr['gecos'][0])) $return->general_gecos = utf8_decode($attr['gecos'][0]);
|
||||
if (isset($attr['displayName'][0])) $return->smb_displayName = utf8_decode($attr['displayName'][0]);
|
||||
if (isset($attr['userPassword'][0])) $return->unix_password = $attr['userPassword'][0];
|
||||
if (isset($attr['userPassword'][0])) {
|
||||
$return->unix_password = $attr['userPassword'][0];
|
||||
$return->unix_deactivated=$_SESSION['ldap']->pwd_is_enabled($attr['userPassword'][0]);
|
||||
}
|
||||
|
||||
// Get Groupname
|
||||
if (isset($attr['gidNumber'][0])) {
|
||||
|
@ -784,8 +784,8 @@ function createuser($values) { // Will create the LDAP-Account
|
|||
}
|
||||
else {
|
||||
if (file_exists($_SESSION['lampath'].'lib/createntlm.pl')) { // masscreate.php is at a different relative path
|
||||
$attr['sambaNTPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password);
|
||||
$attr['sambaLMPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password);
|
||||
$attr['sambaNTPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password));
|
||||
$attr['sambaLMPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password));
|
||||
}
|
||||
$attr['sambaPwdLastSet'] = time(); // sambaAccount_may
|
||||
}
|
||||
|
@ -812,8 +812,8 @@ function createuser($values) { // Will create the LDAP-Account
|
|||
$attr['pwdLastSet'] = time(); // sambaAccount_may
|
||||
}
|
||||
else {
|
||||
$attr['ntPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password);
|
||||
$attr['lmPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password);
|
||||
$attr['ntPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password));
|
||||
$attr['lmPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password));
|
||||
$attr['pwdLastSet'] = time(); // sambaAccount_may
|
||||
}
|
||||
$attr['rid'] = (2 * $values->general_uidNumber + 1000); // sambaAccount_may
|
||||
|
@ -993,8 +993,8 @@ function modifyuser($values,$values_old) { // Will modify the LDAP-Account
|
|||
}
|
||||
else
|
||||
if ($values->smb_password!='') {
|
||||
$attr['sambaNTPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password);
|
||||
$attr['sambaLMPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password);
|
||||
$attr['sambaNTPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password));
|
||||
$attr['sambaLMPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password));
|
||||
$attr['sambaPwdLastSet'] = time(); // sambaAccount_may
|
||||
}
|
||||
if ($values->smb_pwdcanchange != $values_old->smb_pwdcanchange) $attr['sambaPwdCanChange'] = $values->smb_pwdcanchange; // sambaAccount_may
|
||||
|
@ -1024,8 +1024,8 @@ function modifyuser($values,$values_old) { // Will modify the LDAP-Account
|
|||
}
|
||||
else
|
||||
if ($values->smb_password!='') {
|
||||
$attr['ntPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password);
|
||||
$attr['lmPassword'] = exec($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password);
|
||||
$attr['ntPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl nt ' . $values->smb_password));
|
||||
$attr['lmPassword'] = exec(escapeshellarg($_SESSION['lampath'].'lib/createntlm.pl lm ' . $values->smb_password));
|
||||
$attr['pwdLastSet'] = time(); // sambaAccount_may
|
||||
}
|
||||
if ($values->smb_pwdcanchange != $values_old->smb_pwdcanchange) $attr['pwdCanChange'] = $values->smb_pwdcanchange; // sambaAccount_may
|
||||
|
@ -1265,8 +1265,8 @@ function modifyuser($values,$values_old) { // Will modify the LDAP-Account
|
|||
unset($attr_old[$keys[$i]]['count']);
|
||||
$success = ldap_add($_SESSION['ldap']->server(),$values->general_dn, $attr_old);
|
||||
if ($success) $success = ldap_delete($_SESSION['ldap']->server(),$values_old->general_dn);
|
||||
if (!$success) return 5;
|
||||
}
|
||||
if (!$success) return 5;
|
||||
// Write Groupmemberchips
|
||||
$result = ldap_search($_SESSION['ldap']->server(), $_SESSION['config']->get_GroupSuffix(), 'objectClass=PosixGroup', array('memberUid', 'cn'));
|
||||
$entry = ldap_first_entry($_SESSION['ldap']->server(), $result);
|
||||
|
@ -1282,7 +1282,7 @@ function modifyuser($values,$values_old) { // Will modify the LDAP-Account
|
|||
if (!$success) return 5;
|
||||
}
|
||||
}
|
||||
if (!in_array($values->general_username, $attr2['memberUid']) && in_array($attr2['cn'][0], $values->general_groupadd) && ($attr2['cn'][0]!=$values->general_group)) {
|
||||
if (!@in_array($values->general_username, $attr2['memberUid']) && @in_array($attr2['cn'][0], $values->general_groupadd) && ($attr2['cn'][0]!=$values->general_group)) {
|
||||
$toadd['memberUid'] = $attr2['memberUid'];
|
||||
$toadd['memberUid'][] = $values->general_username;
|
||||
$success = ldap_mod_replace($_SESSION['ldap']->server(), ldap_get_dn($_SESSION['ldap']->server(), $entry), $toadd);
|
||||
|
|
|
@ -252,6 +252,25 @@ switch ($select) { // Select which part of page should be loaded and check value
|
|||
if ($_POST['f_final_changegids']) $final_changegids = $_POST['f_final_changegids'] ;
|
||||
break;
|
||||
|
||||
case 'finish':
|
||||
// Check if pdf-file should be created
|
||||
if ($_POST['outputpdf']) {
|
||||
// Quota Settings
|
||||
if ($config_intern->scriptServer && !isset($account_new->quota[0])) { // load quotas
|
||||
$values = getquotas('group', $account_old->general_username);
|
||||
if (is_object($values)) {
|
||||
while (list($key, $val) = each($values)) // Set only defined values
|
||||
if (isset($val)) $account_new->$key = $val;
|
||||
}
|
||||
if (is_object($values) && isset($account_old)) {
|
||||
while (list($key, $val) = each($values)) // Set only defined values
|
||||
if (isset($val)) $account_old->$key = $val;
|
||||
}
|
||||
}
|
||||
createGroupPDF(array($account_new));
|
||||
die;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
|
@ -430,7 +449,7 @@ switch ($select_local) { // Select which part of page will be loaded
|
|||
echo "\">\n";
|
||||
}
|
||||
echo "</fieldset></td></tr></table></td>\n<td>";
|
||||
echo "<table border=0><tr><td><fieldset class=\"groupedit-bright\"><legend class=\"groupedit-bright\"><b>". _('Additional group members') . "</b></legend>\n";
|
||||
echo "<table border=0 width=\"100%\"><tr><td><fieldset class=\"groupedit-bright\"><legend class=\"groupedit-bright\"><b>". _('Additional group members') . "</b></legend>\n";
|
||||
echo "<table border=0 width=\"100%\">\n";
|
||||
echo "<tr><td valign=\"top\"><fieldset class=\"groupedit-middle\"><legend class=\"groupedit-bright\">";
|
||||
echo _('Group members');
|
||||
|
@ -812,7 +831,9 @@ switch ($select_local) { // Select which part of page will be loaded
|
|||
echo '</td></tr>'."\n".'<tr><td>';
|
||||
if (!$account_old)
|
||||
{ echo' <input name="createagain" type="submit" value="'; echo _('Create another group'); echo '">'; }
|
||||
echo '</td><td></td><td>'.
|
||||
echo '</td>'."\n".'<td>'.
|
||||
'<input name="outputpdf" type="submit" value="'; echo _('Create PDF file'); echo '">'.
|
||||
'</td>'."\n".'<td>'.
|
||||
'<input name="backmain" type="submit" value="'; echo _('Back to group list'); echo '">'.
|
||||
'</td></tr></table></fieldset'."\n";
|
||||
break;
|
||||
|
|
|
@ -189,6 +189,15 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch
|
|||
case 'final':
|
||||
$select_local = 'final';
|
||||
break;
|
||||
|
||||
case 'finish':
|
||||
// Check if pdf-file should be created
|
||||
if ($_POST['outputpdf']) {
|
||||
createHostPDF(array($account_new));
|
||||
die;
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -513,9 +522,12 @@ switch ($select_local) { // Select which part of page will be loaded
|
|||
echo '</td></tr>'."\n".'<tr><td>';
|
||||
if (!$account_old)
|
||||
{ echo '<input name="createagain" type="submit" value="'; echo _('Create another host'); echo '">'; }
|
||||
echo '</td><td>'."\n".'</td><td>'.
|
||||
echo '</td>'."\n".'<td>'.
|
||||
'<input name="outputpdf" type="submit" value="'; echo _('Create PDF file'); echo '">'.
|
||||
'</td>'."\n".'<td>'.
|
||||
'<input name="backmain" type="submit" value="'; echo _('Back to host list'); echo '">'.
|
||||
'</td></tr></table></fieldset'."\n";
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -127,14 +127,13 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch
|
|||
do { // X-Or, only one if() can be true
|
||||
if (isset($_POST['allgroups']) && isset($_POST['add'])) { // Add users to list
|
||||
// Add new user
|
||||
$account_new->general_groupadd = array_merge($account_new->general_groupadd, $_POST['allgroups']);
|
||||
$account_new->general_groupadd = @array_merge($account_new->general_groupadd, $_POST['allgroups']);
|
||||
// remove doubles
|
||||
$account_new->general_groupadd = array_flip($account_new->general_groupadd);
|
||||
$account_new->general_groupadd = @array_flip($account_new->general_groupadd);
|
||||
array_unique($account_new->general_groupadd);
|
||||
$account_new->general_groupadd = array_flip($account_new->general_groupadd);
|
||||
$account_new->general_groupadd = @array_flip($account_new->general_groupadd);
|
||||
// sort user
|
||||
sort($account_new->general_groupadd);
|
||||
// display groupmembers page
|
||||
break;
|
||||
}
|
||||
if (isset($_POST['selectedgroups']) && isset($_POST['remove'])) { // remove users fromlist
|
||||
|
@ -195,8 +194,6 @@ switch ($_POST['select']) { // Select which part of page should be loaded and ch
|
|||
$account_new->general_givenname = $_POST['f_general_givenname'];
|
||||
$account_new->general_uidNumber = $_POST['f_general_uidNumber'];
|
||||
$account_new->general_group = $_POST['f_general_group'];
|
||||
if (isset($_POST['f_general_groupadd'])) $account_new->general_groupadd = $_POST['f_general_groupadd'];
|
||||
else $account_new->general_groupadd = array('');
|
||||
$account_new->general_homedir = $_POST['f_general_homedir'];
|
||||
$account_new->general_shell = $_POST['f_general_shell'];
|
||||
$account_new->general_gecos = $_POST['f_general_gecos'];
|
||||
|
@ -723,7 +720,7 @@ switch ($select_local) { // Select which part of page will be loaded
|
|||
echo "<td align=\"center\" width=\"10%\"><input type=\"submit\" name=\"add\" value=\"<=\">";
|
||||
echo " ";
|
||||
echo "<input type=\"submit\" name=\"remove\" value=\"=>\"><br><br>";
|
||||
echo "<a href=\""."../help.php?HelpNumber=XXX\" target=\"lamhelp\">"._('Help-XX')."</a></td>\n";
|
||||
echo "<a href=\""."../help.php?HelpNumber=436\" target=\"lamhelp\">"._('Help')."</a></td>\n";
|
||||
echo "<td valign=\"top\"><fieldset class=\"useredit-bright\"><legend class=\"useredit-bright\">";
|
||||
echo _('Available workstations');
|
||||
echo "</legend>\n";
|
||||
|
@ -744,6 +741,9 @@ switch ($select_local) { // Select which part of page will be loaded
|
|||
foreach ($temp2 as $temp) $groups[] = $temp['cn'];
|
||||
sort($groups, SORT_STRING);
|
||||
$groups = array_delete($account_new->general_groupadd, $groups);
|
||||
$groups = array_flip($groups);
|
||||
unset ($groups[$account_new->general_group]);
|
||||
$groups = array_flip($groups);
|
||||
|
||||
echo '<input name="select" type="hidden" value="groups">';
|
||||
echo "<table border=0 width=\"100%\">\n<tr><td valign=\"top\" width=\"15%\" >";
|
||||
|
@ -783,7 +783,7 @@ switch ($select_local) { // Select which part of page will be loaded
|
|||
echo "<td align=\"center\" width=\"10%\"><input type=\"submit\" name=\"add\" value=\"<=\">";
|
||||
echo " ";
|
||||
echo "<input type=\"submit\" name=\"remove\" value=\"=>\"><br><br>";
|
||||
echo "<a href=\""."../help.php?HelpNumber=XXX\" target=\"lamhelp\">"._('Help-XX')."</a></td>\n";
|
||||
echo "<a href=\""."../help.php?HelpNumber=402\" target=\"lamhelp\">"._('Help')."</a></td>\n";
|
||||
echo "<td valign=\"top\"><fieldset class=\"useredit-bright\"><legend class=\"useredit-bright\">";
|
||||
echo _('Available groups');
|
||||
echo "</legend>\n";
|
||||
|
|
Loading…
Reference in New Issue