Example #1
0
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";