From a3af8306599ba0fedd888bea687bbb9c93bce041 Mon Sep 17 00:00:00 2001 From: Roland Gruber Date: Sun, 19 Sep 2004 08:33:37 +0000 Subject: [PATCH] start of building upload accounts --- lam/lib/modules/posixGroup.inc | 50 +++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/lam/lib/modules/posixGroup.inc b/lam/lib/modules/posixGroup.inc index 837edb94..feaade3d 100644 --- a/lam/lib/modules/posixGroup.inc +++ b/lam/lib/modules/posixGroup.inc @@ -323,7 +323,7 @@ class posixGroup extends baseModule { $DNs = array_keys($result); for ($i=0; $isearch_domains($_SESSION['config']->get_domainSuffix()); + $sambaDomains = search_domains($_SESSION['config']->get_domainSuffix()); // Get Domain-SID from group SID $domainSID = substr($result[$DNs[$i]], 0, strrpos($result[$DNs[$i]], "-")); for ($i=0; $i array('' . _('Description') . '' . $this->attributes['description'][0] . '')); } + /** + * In this function the LDAP account is built up. + * + * @param array $rawAccounts list of hash arrays (name => value) from user input + * @param array $partialAccounts list of hash arrays (name => value) which are later added to LDAP + * @param array $ids list of IDs for column position (e.g. "posixAccount_uid" => 5) + * @return array list of error messages if any + */ + function build_uploadAccounts($rawAccounts, $ids, &$partialAccounts) { + $errors = array(); + for ($i = 0; $i < sizeof($rawAccounts); $i++) { + if (!in_array("posixGroup", $partialAccounts[$i]['objectClasses'])) $partialAccounts[$i]['objectClasses'][] = "posixGroup"; + if (eregi(".*", $rawAccounts[$i][$ids['posixGroup_cn']])) { // TODO use real regex for group name + $partialAccounts[$i]['cn'] = $rawAccounts[$i][$ids['posixGroup_cn']]; + } + if ($rawAccounts[$i][$ids['posixGroup_gid']] == "") { + // TODO autoGID + $partialAccounts[$i]['gidNumber'] = 42; + } + elseif (eregi(".*", $rawAccounts[$i][$ids['posixGroup_gid']])) { // TODO use real regex for group name + $partialAccounts[$i]['gidNumber'] = $rawAccounts[$i][$ids['posixGroup_gid']]; + } + if ($rawAccounts[$i][$ids['posixGroup_description']] == "") { + $partialAccounts[$i]['description'] = $partialAccounts[$i]['cn']; + } + elseif (eregi(".*", $rawAccounts[$i][$ids['posixGroup_description']])) { // TODO use real regex for group name + $partialAccounts[$i]['description'] = $rawAccounts[$i][$ids['posixGroup_description']]; + } + if ($rawAccounts[$i][$ids['posixGroup_members']] != "") { + if (eregi(".*", $rawAccounts[$i][$ids['posixGroup_members']])) { // TODO use real regex for group name + $partialAccounts[$i]['memberUid'] = explode(",", $rawAccounts[$i][$ids['posixGroup_members']]); + } + else { + $errors[] = array(); // TODO error message + } + } + if ($rawAccounts[$i][$ids['posixGroup_password']] != "") { + if (eregi(".*", $rawAccounts[$i][$ids['posixGroup_password']])) { // TODO use real regex for group name + $partialAccounts[$i]['password'] = pwd_hash($rawAccounts[$i][$ids['posixGroup_password']], true, $this->moduleSettings['posixAccount_pwdHash'][0]); + } + else { + $errors[] = array(); // TODO error message + } + } + } + return $errors; + } + } ?>