Commit a9c4f05e authored by Côme Chilliet's avatar Côme Chilliet
Browse files

Fixes #4452 Fixed errors in group handling from outside the ogroup class

Showing with 19 additions and 6 deletions
+19 -6
......@@ -215,7 +215,13 @@ class group extends simplePlugin
function addUser($dn, $uid)
{
$this->attributesAccess['memberUid']->addValue($dn, array('uid' => array($uid), 'cn' => array($uid)));
$this->attributesAccess['memberUid']->addValue($dn,
array(
'dn' => $dn,
'uid' => array($uid),
'cn' => array($uid)
)
);
}
function removeUser($uid)
......
......@@ -55,12 +55,12 @@ class ObjectsAttribute extends GenericDialogAttribute
}
}
if (!isset($this->displays[$i])) {
trigger_error('Unkown type for "'.$attrs['dn'].'"');
$this->displays[$i] = sprintf(_("Unknown type : %s"), LDAP::fix($attrs['dn']));
trigger_error('Unkown type for "'.$this->value[$i].'"');
$this->displays[$i] = sprintf(_('Unknown type : %s'), LDAP::fix($this->value[$i]));
$this->types[$i] = 'I';
}
} else {
$this->displays[$i] = sprintf(_("Non existing dn: %s"), LDAP::fix($this->value[$i]));
$this->displays[$i] = sprintf(_('Non existing dn: %s'), LDAP::fix($this->value[$i]));
$this->types[$i] = 'I';
}
}
......
......@@ -187,12 +187,19 @@ class userRoles extends simplePlugin
parent::ldap_save($cleanup);
if (!$this->is_template) {
/* We need to give an array which looks like an ldap fetch and match user filter */
$fake_attrs = array(
'objectClass' => array('inetOrgPerson','organizationalPerson','person'),
'cn' => array($this->dn),
'dn' => $this->dn
);
/* Take care about groupsMembership values: add to groups */
$groupsMembership = $this->attributesAccess['groupsMembership']->getValue();
foreach ($groupsMembership as $ogroupdn) {
if (!in_array($ogroupdn, $this->savedGroupsMembership)) {
$g = objects::open($ogroupdn, 'ogroup');
$g->getBaseObject()->attributesAccess['member']->addValue($this->dn, array('cn' => 'user'));
$g->getBaseObject()->attributesAccess['member']->addValue($this->dn, $fake_attrs);
$g->save();
}
}
......@@ -211,7 +218,7 @@ class userRoles extends simplePlugin
foreach ($rolesMembership as $roledn) {
if (!in_array($roledn, $this->savedRolesMembership)) {
$r = objects::open($roledn, 'role');
$r->getBaseObject()->attributesAccess['roleOccupant']->addValue($this->dn, array('cn' => 'user'));
$r->getBaseObject()->attributesAccess['roleOccupant']->addValue($this->dn, $fake_attrs);
$r->save();
}
}
......
  • bmortier @bmortier

    mentioned in issue #1413

    By Côme Chilliet on 2017-09-02T15:25:51 (imported from GitLab)

    ·

    mentioned in issue #1413

    By Côme Chilliet on 2017-09-02T15:25:51 (imported from GitLab)

    Toggle commit list
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment