From 61ce7a0a0c0566689aedcc7b119b119fc47f779c Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Mon, 16 Feb 2004 16:13:06 +0000 Subject: [PATCH] fixed problem with groups that have no Samba group mapping --- lam-0.4/lib/account.inc | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lam-0.4/lib/account.inc b/lam-0.4/lib/account.inc index 6ba4aa26..d80fcb59 100644 --- a/lam-0.4/lib/account.inc +++ b/lam-0.4/lib/account.inc @@ -1370,10 +1370,11 @@ function createuser($values, $uselamdaemon=true) { // Generate SID $attr['sambaSID'] = $values->smb_domain->SID . "-" . (2 * $values->general_uidNumber + $values->smb_domain->RIDbase); // sambaAccount_may - //if ($values->smb_mapgroup!='') $attr['sambaPrimaryGroupSID'] = $values->smb_mapgroup; // sambaAccount_req ldapreload('group'); foreach ($_SESSION['groupDN'] as $groupname) { - if ($groupname['cn'] == $values->general_group) $attr['sambaPrimaryGroupSID'] = $groupname['sambaSID']; + if ($groupname['cn'] == $values->general_group) { + if ($groupname['sambaSID']) $attr['sambaPrimaryGroupSID'] = $groupname['sambaSID']; + } } if ($values->smb_pwdcanchange!='') $attr['sambaPwdCanChange'] = $values->smb_pwdcanchange; // sambaAccount_may else $attr['sambaPwdCanChange'] = time(); // sambaAccount_may @@ -1520,7 +1521,14 @@ function modifyuser($values,$values_old,$uselamdaemon=true) { // Will modify the // Change SID only if we don't use a well known SID ldapreload('group'); foreach ($_SESSION['groupDN'] as $groupname) { - if ($groupname['cn'] == $values->general_group) $attr['sambaPrimaryGroupSID'] = $groupname['sambaSID']; + if ($groupname['cn'] == $values->general_group) { + if ($groupname['sambaSID']) $attr['sambaPrimaryGroupSID'] = $groupname['sambaSID']; + else { + // remove primaryGroupSID if new group has no SID + $attr['sambaPrimaryGroupSID'] = $values_old->smb_mapgroup; + $attr_rem['sambaPrimaryGroupSID'] = $values_old->smb_mapgroup; + } + } } } else {