Esempio n. 1
0
/**
 * Load all results
 * 
 * @param array $ldapConfig
 * @return array
 * @access public
 * @since 7/30/09
 */
function loadAllResults(array $ldapConfig)
{
    $results = array();
    foreach ($ldapConfig as $connectorConfig) {
        $connector = new LdapConnector($connectorConfig);
        $connector->connect();
        $error = '';
        try {
            switch ($_GET['action']) {
                case 'search_groups':
                    try {
                        $results = array_merge($results, $connector->searchGroups($_GET));
                    } catch (InvalidArgumentException $e) {
                        $error = $e->getMessage();
                    }
                    break;
                case 'search_groups_by_attributes':
                    try {
                        $results = array_merge($results, $connector->searchGroupsByAttributes($_GET));
                    } catch (NullArgumentException $e) {
                        $error = $e->getMessage();
                    }
                    break;
                case 'search_users':
                    $results = array_merge($results, $connector->searchUsers($_GET));
                    break;
                case 'search_users_by_attributes':
                    try {
                        $results = array_merge($results, $connector->searchUsersByAttributes($_GET));
                    } catch (NullArgumentException $e) {
                        $error = $e->getMessage();
                    }
                    break;
                case 'get_group':
                    try {
                        $results = array_merge($results, array($connector->getGroup($_GET)));
                    } catch (UnknownIdException $e) {
                        $error = $e->getMessage();
                    }
                    break;
                case 'get_user':
                    try {
                        $results = array_merge($results, array($connector->getUser($_GET)));
                    } catch (UnknownIdException $e) {
                        $error = $e->getMessage();
                    }
                    break;
                case 'get_group_members':
                    try {
                        $results = array_merge($results, $connector->getGroupMembers($_GET));
                    } catch (UnknownIdException $e) {
                        $error = $e->getMessage();
                    }
                    break;
                case 'get_all_users':
                    $results = array_merge($results, $connector->getAllUsers($_GET));
                    break;
                default:
                    throw new UnknownActionException('action, \'' . $_GET['action'] . '\' is not one of [search_users, search_groups, get_user, get_group].');
            }
        } catch (LDAPException $e) {
            if ($e->getCode() != 10) {
                // 10 = LDAP_REFERRAL
                throw $e;
            }
        }
        $connector->disconnect();
    }
    switch ($_GET['action']) {
        case 'get_group':
        case 'get_user':
            if (empty($results)) {
                throw new UnknownIdException($error);
            }
            break;
        case 'search_users_by_attributes':
            break;
    }
    return $results;
}
Esempio n. 2
0
if (!defined('DISPLAY_ERROR_BACKTRACE')) {
    define('DISPLAY_ERROR_BACKTRACE', false);
}
require_once MYDIR . '/lib/phpcas/source/CAS.php';
if (!isset($getUserDisplayName)) {
    $getUserDisplayName = create_function('', 'return phpCAS::getUser();');
}
// initialize phpCAS
phpCAS::client(CAS_VERSION_2_0, CAS_HOST, CAS_PORT, CAS_PATH, false);
// no SSL validation for the CAS server
phpCAS::setNoCasServerValidation();
// force CAS authentication
phpCAS::forceAuthentication();
// var_dump($_SESSION);
$ldap = new LdapConnector($ldapConfig);
$ldap->connect();
try {
    // Check authorization
    if (!empty($authorizedUserAttributes)) {
        if (!is_array($authorizedUserAttributes)) {
            throw new Exception('Configuration Error: $authorizedUserAttributes must be an array');
        }
        $isAuthorized = false;
        $attributes = phpCAS::getAttributes();
        foreach ($authorizedUserAttributes as $attr => $authorized_values) {
            if (!is_array($authorized_values)) {
                $authorized_values = array($authorized_values);
            }
            foreach ($authorized_values as $authorized_value) {
                if (!empty($attributes[$attr])) {
                    if (is_array($attributes[$attr])) {