-
Andrew Hoffmann authored
It may not be clear to the developer that `&&` takes precedence over `||`. This change was recommended by a code quality scan.
Andrew Hoffmann authoredIt may not be clear to the developer that `&&` takes precedence over `||`. This change was recommended by a code quality scan.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
PreauthUserDetailsProvider.php 2.39 KiB
<?php
namespace edu\wisc\doit\uwphps\preauth;
use edu\wisc\doit\uwphps\UserDetailsProvider;
use edu\wisc\doit\uwphps\UWUserDetails;
/**
* PreauthUserDetailsProvider is an implementation of {@link UserDetailsProvider} for loading users authenticated
* with UW-Madison login.
*
* {@see FederatedPreauthUserDetailsProvider} for loading users authenticated through UW-System Federated login.
*/
class PreauthUserDetailsProvider extends UserDetailsProvider
{
// Constants defining common header values
const PVI = 'wiscEduPVI';
const FULL_NAME = 'cn';
const EMAIL = 'mail';
const UDDS = 'wiscEduUDDS';
const ISIS_EMPLID = 'wiscEduIsisEmplid';
const FIRST_NAME = 'givenName';
const LAST_NAME = 'sn';
/**
* {@inheritdoc}
*/
public function loadUser()
{
// Return null if no Shib session is found
if (($this->httpHeaders && !getenv(static::SHIB_SESSION_ID_HTTP)) ||
(!$this->httpHeaders && !getenv(static::SHIB_SESSION_ID))) {
return null;
}
if ($this->httpHeaders) {
$userDetails = new UWUserDetails(
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::EPPN)),
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::PVI)),
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::FULL_NAME)),
explode(static::DELIMITER, getenv(UserDetailsProvider::httpHeaderFromAttribute(static::UDDS))),
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::EMAIL)),
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::SOURCE)),
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::ISIS_EMPLID)),
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::FIRST_NAME)),
getenv(UserDetailsProvider::httpHeaderFromAttribute(static::LAST_NAME))
);
} else {
$userDetails = new UWUserDetails(
getenv(static::EPPN),
getenv(static::PVI),
getenv(static::FULL_NAME),
getenv(static::UDDS),
getenv(static::EMAIL),
getenv(static::SOURCE),
getenv(static::ISIS_EMPLID),
getenv(static::FIRST_NAME),
getenv(static::LAST_NAME)
);
}
return $userDetails;
}
}