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

:sparkles: feat(sudo): Support mixed-groups when plugin is installed

Sudo plugin needs to support having mixed-groups with posix tab added in
 sudo roles.

closes #5706
Showing with 4 additions and 3 deletions
+4 -3
...@@ -25,7 +25,7 @@ class SudoUsersGroupsAttribute extends DialogAttribute ...@@ -25,7 +25,7 @@ class SudoUsersGroupsAttribute extends DialogAttribute
function addValue ($dn, $entry) function addValue ($dn, $entry)
{ {
if (in_array("posixGroup", $entry['objectClass'])) { if (in_array('posixGroup', $entry['objectClass']) || in_array('groupOfNames', $entry['objectClass'])) {
$name = trim("%".$entry['cn'][0]); $name = trim("%".$entry['cn'][0]);
} elseif (isset($entry['uid'][0])) { } elseif (isset($entry['uid'][0])) {
$name = trim($entry['uid'][0]); $name = trim($entry['uid'][0]);
...@@ -135,6 +135,7 @@ class sudo extends simplePlugin ...@@ -135,6 +135,7 @@ class sudo extends simplePlugin
'sudoUser' => array( 'sudoUser' => array(
array('user', 'uid', '(sudoUser=%oldvalue%)'), array('user', 'uid', '(sudoUser=%oldvalue%)'),
array('posixGroup', 'cn', '(sudoUser=%|%%oldvalue%)'), array('posixGroup', 'cn', '(sudoUser=%|%%oldvalue%)'),
array('mixedGroup', 'cn', '(sudoUser=%|%%oldvalue%)'),
), ),
'sudoHost' => array( 'sudoHost' => array(
array('serverGeneric', 'cn'), array('serverGeneric', 'cn'),
...@@ -257,7 +258,7 @@ class sudo extends simplePlugin ...@@ -257,7 +258,7 @@ class sudo extends simplePlugin
function foreignKeyCheck ($field, $fieldvalue, $source) function foreignKeyCheck ($field, $fieldvalue, $source)
{ {
if (($field == 'sudoUser') && ($source['CLASS'] == 'posixGroup')) { if (($field == 'sudoUser') && (($source['CLASS'] == 'posixGroup') || ($source['CLASS'] == 'mixedGroup'))) {
return parent::foreignKeyCheck($field, '%'.$fieldvalue, $source); return parent::foreignKeyCheck($field, '%'.$fieldvalue, $source);
} else { } else {
return parent::foreignKeyCheck($field, $fieldvalue, $source); return parent::foreignKeyCheck($field, $fieldvalue, $source);
...@@ -266,7 +267,7 @@ class sudo extends simplePlugin ...@@ -266,7 +267,7 @@ class sudo extends simplePlugin
function foreignKeyUpdate($field, $oldvalue, $newvalue, $source) function foreignKeyUpdate($field, $oldvalue, $newvalue, $source)
{ {
if (($field == 'sudoUser') && ($source['CLASS'] == 'posixGroup')) { if (($field == 'sudoUser') && (($source['CLASS'] == 'posixGroup') || ($source['CLASS'] == 'mixedGroup'))) {
return parent::foreignKeyUpdate($field, '%'.$oldvalue, '%'.$newvalue, $source); return parent::foreignKeyUpdate($field, '%'.$oldvalue, '%'.$newvalue, $source);
} else { } else {
return parent::foreignKeyUpdate($field, $oldvalue, $newvalue, $source); return parent::foreignKeyUpdate($field, $oldvalue, $newvalue, $source);
......
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