support uid change
This commit is contained in:
parent
07863e5c9a
commit
ed90fc0c03
|
@ -41,6 +41,8 @@ class nisNetGroupUser extends baseModule {
|
||||||
private $groupsOrig = array();
|
private $groupsOrig = array();
|
||||||
/** group cache (array(array(cn => '', dn => '', nisnetgrouptriple => array()))) */
|
/** group cache (array(array(cn => '', dn => '', nisnetgrouptriple => array()))) */
|
||||||
private $groupCache = null;
|
private $groupCache = null;
|
||||||
|
/** original uid */
|
||||||
|
private $uidOrig = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if this module can manage accounts of the current type, otherwise false.
|
* Returns true if this module can manage accounts of the current type, otherwise false.
|
||||||
|
@ -116,6 +118,7 @@ class nisNetGroupUser extends baseModule {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
$uid = $attr['uid'][0];
|
$uid = $attr['uid'][0];
|
||||||
|
$this->uidOrig = $uid;
|
||||||
$types = array('netgroup');
|
$types = array('netgroup');
|
||||||
$typeSettings = $_SESSION['config']->get_typeSettings();
|
$typeSettings = $_SESSION['config']->get_typeSettings();
|
||||||
$groupList = array();
|
$groupList = array();
|
||||||
|
@ -294,8 +297,14 @@ class nisNetGroupUser extends baseModule {
|
||||||
if (($group_orig['dn'] == $group['dn'])
|
if (($group_orig['dn'] == $group['dn'])
|
||||||
&& ($group_orig['domain'] == $group['domain'])
|
&& ($group_orig['domain'] == $group['domain'])
|
||||||
&& ($group_orig['host'] == $group['host'])) {
|
&& ($group_orig['host'] == $group['host'])) {
|
||||||
|
if (!empty($this->uidOrig) && ($this->uidOrig != $uid)) {
|
||||||
|
// uid changed, simply update uid in all net groups
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// do not touch existing memberships
|
||||||
unset($toRem[$i]);
|
unset($toRem[$i]);
|
||||||
unset($toAdd[$k]);
|
unset($toAdd[$k]);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -306,7 +315,8 @@ class nisNetGroupUser extends baseModule {
|
||||||
$changes[$add['dn']]['add'][] = '(' . $add['host'] . ',' . $uid . ',' . $add['domain'] . ')';
|
$changes[$add['dn']]['add'][] = '(' . $add['host'] . ',' . $uid . ',' . $add['domain'] . ')';
|
||||||
}
|
}
|
||||||
foreach ($toRem as $del) {
|
foreach ($toRem as $del) {
|
||||||
$changes[$del['dn']]['del'][] = '(' . $del['host'] . ',' . $uid . ',' . $del['domain'] . ')';
|
$delUid = empty($this->uidOrig) ? $uid : $this->uidOrig;
|
||||||
|
$changes[$del['dn']]['del'][] = '(' . $del['host'] . ',' . $delUid . ',' . $del['domain'] . ')';
|
||||||
}
|
}
|
||||||
// update groups
|
// update groups
|
||||||
foreach ($changes as $dn => $changeSet) {
|
foreach ($changes as $dn => $changeSet) {
|
||||||
|
|
Loading…
Reference in New Issue