function get_admins() { global $error, $ds, $cached_admins; global $ldap_admin_group_name, $ldap_admin_group_attr, $ldap_admin_group_type; if (!empty($cached_admins)) { return $cached_admins; } $cached_admins = array(); if ($r = connect_and_bind()) { $search_filter = "({$ldap_admin_group_attr}=*)"; $sr = @ldap_search($ds, $ldap_admin_group_name, $search_filter, array($ldap_admin_group_attr)); if (!$sr) { $error = 'Error searching LDAP server: ' . ldap_error($ds); } else { $admins = ldap_get_entries($ds, $sr); for ($x = 0; $x < $admins[0][$ldap_admin_group_attr]['count']; $x++) { if ($ldap_admin_group_type != 'posixgroup') { $cached_admins[] = stripdn($admins[0][$ldap_admin_group_attr][$x]); } else { $cached_admins[] = $admins[0][$ldap_admin_group_attr][$x]; } } @ldap_free_result($sr); } @ldap_close($ds); } return $cached_admins; }
} //-p port if (isset($options['p'])) { $connectionOptions['port'] = $options['p']; } //-P password file if (isset($options['P'])) { $passwordFile = $options['P']; $passwordFileData = file_get_contents($passwordFile); if ($passwordFileData === false) { echo "Error opening password file '{$passwordFile}'\n"; exit; } $connectionOptions['password'] = trim($passwordFileData); } $ldapConnection = connect_and_bind($connectionOptions); $hostGroups = get_machines_and_services(); if (isset($options['list'])) { display_services(); exit; } if (isset($options['add-service'])) { if (!(isset($options['s']) and isset($options['m']))) { echo "Error - service name and machine name must be specified!\n"; exit; } $force = isset($options['force']) ? true : false; $add_service_result = add_service($options['s'], $options['m'], $force); if ($add_service_result !== false) { echo "dn: cn=" . $options['s'] . ",ou=" . $options['m'] . ",ou=machines,dc=netsoc,dc=dit,dc=ie"; echo "\nPassword: {$add_service_result}\n";