Skip to content
Snippets Groups Projects
Commit 370af8bd authored by Andy Summers's avatar Andy Summers
Browse files

Assume multiple UDDS values are delimited by ;

parent f7885783
No related branches found
No related tags found
1 merge request!8Add UDDS attribute and refactor
...@@ -14,7 +14,7 @@ class UWUserDetails implements UserDetails ...@@ -14,7 +14,7 @@ class UWUserDetails implements UserDetails
private $pvi; private $pvi;
/** @var string */ /** @var string */
private $fullName; private $fullName;
/** @var string[] */ /** @var array */
private $udds; private $udds;
/** @var string */ /** @var string */
private $emailAddress; private $emailAddress;
...@@ -32,7 +32,7 @@ class UWUserDetails implements UserDetails ...@@ -32,7 +32,7 @@ class UWUserDetails implements UserDetails
* @param string $eppn * @param string $eppn
* @param string $pvi * @param string $pvi
* @param string $fullName * @param string $fullName
* @param string[] $udds * @param array $udds
* @param string $emailAddress * @param string $emailAddress
* @param string $source * @param string $source
* @param string $isisEmplid * @param string $isisEmplid
......
...@@ -34,7 +34,7 @@ interface UserDetails ...@@ -34,7 +34,7 @@ interface UserDetails
/** /**
* A never null, but possibly empty, array of strings each representing the UDDS IDs of the group this user is a member of. * A never null, but possibly empty, array of strings each representing the UDDS IDs of the group this user is a member of.
* *
* @return string[] * @return array
*/ */
public function getUddsMembership(); public function getUddsMembership();
......
...@@ -20,6 +20,9 @@ abstract class UserDetailsProvider ...@@ -20,6 +20,9 @@ abstract class UserDetailsProvider
const SOURCE = "source"; const SOURCE = "source";
const ISIS_EMPLID = "isisEmplid"; const ISIS_EMPLID = "isisEmplid";
// Delimiter used by multi-valued headers
const DELIMITER = ';';
/** /**
* UserDetailsProvider constructor. * UserDetailsProvider constructor.
* @param $http * @param $http
......
...@@ -41,7 +41,7 @@ class LocalUserDetailsProvider extends PreauthUserDetailsProvider ...@@ -41,7 +41,7 @@ class LocalUserDetailsProvider extends PreauthUserDetailsProvider
$attributes[static::EPPN], $attributes[static::EPPN],
$attributes[static::PVI], $attributes[static::PVI],
$attributes[static::FULL_NAME], $attributes[static::FULL_NAME],
$attributes[static::UDDS], explode(static::DELIMITER, $attributes[static::UDDS]),
$attributes[static::EMAIL], $attributes[static::EMAIL],
$attributes[static::SOURCE], $attributes[static::SOURCE],
$attributes[static::ISIS_EMPLID], $attributes[static::ISIS_EMPLID],
......
...@@ -37,7 +37,7 @@ class FederatedPreauthUserDetailsProvider extends UserDetailsProvider ...@@ -37,7 +37,7 @@ class FederatedPreauthUserDetailsProvider extends UserDetailsProvider
getenv($this->mapAttribute(static::EPPN)), getenv($this->mapAttribute(static::EPPN)),
getenv($this->mapAttribute(static::SPVI)), getenv($this->mapAttribute(static::SPVI)),
getenv($this->mapAttribute(static::FULL_NAME)), getenv($this->mapAttribute(static::FULL_NAME)),
getenv($this->mapAttribute(static::UDDS)), explode(static::DELIMITER, getenv($this->mapAttribute(static::UDDS))),
getenv($this->mapAttribute(static::EMAIL)), getenv($this->mapAttribute(static::EMAIL)),
getenv($this->mapAttribute(static::SOURCE)), getenv($this->mapAttribute(static::SOURCE)),
getenv($this->mapAttribute(static::ISIS_EMPLID)), getenv($this->mapAttribute(static::ISIS_EMPLID)),
......
...@@ -39,7 +39,7 @@ class PreauthUserDetailsProvider extends UserDetailsProvider ...@@ -39,7 +39,7 @@ class PreauthUserDetailsProvider extends UserDetailsProvider
getenv($this->mapAttribute(static::EPPN)), getenv($this->mapAttribute(static::EPPN)),
getenv($this->mapAttribute(static::PVI)), getenv($this->mapAttribute(static::PVI)),
getenv($this->mapAttribute(static::FULL_NAME)), getenv($this->mapAttribute(static::FULL_NAME)),
getenv($this->mapAttribute(static::UDDS)), explode(static::DELIMITER, getenv($this->mapAttribute(static::UDDS))),
getenv($this->mapAttribute(static::EPPN)), getenv($this->mapAttribute(static::EPPN)),
getenv($this->mapAttribute(static::SOURCE)), getenv($this->mapAttribute(static::SOURCE)),
getenv($this->mapAttribute(static::ISIS_EMPLID)), getenv($this->mapAttribute(static::ISIS_EMPLID)),
......
...@@ -5,10 +5,7 @@ ...@@ -5,10 +5,7 @@
"cn": "BUCKINGHAM BADGER", "cn": "BUCKINGHAM BADGER",
"givenName": "BUCKINGHAM", "givenName": "BUCKINGHAM",
"sn": "BADGER", "sn": "BADGER",
"wiscEduUDDS": [ "wiscEduUDDS": "A061234;A072345",
"UW123A456",
"UW234A567"
],
"mail": "bucky.badger@wisc.edu", "mail": "bucky.badger@wisc.edu",
"source": "a_source", "source": "a_source",
"isisEmplid": "123456789" "isisEmplid": "123456789"
......
...@@ -33,7 +33,7 @@ class HTTPFederatedPreauthUserDetailsProviderTest extends \PHPUnit_Framework_Tes ...@@ -33,7 +33,7 @@ class HTTPFederatedPreauthUserDetailsProviderTest extends \PHPUnit_Framework_Tes
putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::FULL_NAME) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::FULL_NAME)]); putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::FULL_NAME) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::FULL_NAME)]);
putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::FIRST_NAME) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::FIRST_NAME)]); putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::FIRST_NAME) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::FIRST_NAME)]);
putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::LAST_NAME) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::LAST_NAME)]); putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::LAST_NAME) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::LAST_NAME)]);
putenv($this->mapAttribute(UserDetailsProvider::UDDS) . '=' . implode(",", $this->attributes[$this->mapAttribute(UserDetailsProvider::UDDS)])); putenv($this->mapAttribute(UserDetailsProvider::UDDS) . '=' . $this->attributes[$this->mapAttribute(UserDetailsProvider::UDDS)]);
putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::EMAIL) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::EMAIL)]); putenv($this->mapAttribute(FederatedPreauthUserDetailsProvider::EMAIL) . '=' . $this->attributes[$this->mapAttribute(FederatedPreauthUserDetailsProvider::EMAIL)]);
putenv($this->mapAttribute(UserDetailsProvider::SOURCE) . '=' . $this->attributes[$this->mapAttribute(UserDetailsProvider::SOURCE)]); putenv($this->mapAttribute(UserDetailsProvider::SOURCE) . '=' . $this->attributes[$this->mapAttribute(UserDetailsProvider::SOURCE)]);
putenv($this->mapAttribute(UserDetailsProvider::ISIS_EMPLID) . '=' . $this->attributes[$this->mapAttribute(UserDetailsProvider::ISIS_EMPLID)]); putenv($this->mapAttribute(UserDetailsProvider::ISIS_EMPLID) . '=' . $this->attributes[$this->mapAttribute(UserDetailsProvider::ISIS_EMPLID)]);
...@@ -55,6 +55,7 @@ class HTTPFederatedPreauthUserDetailsProviderTest extends \PHPUnit_Framework_Tes ...@@ -55,6 +55,7 @@ class HTTPFederatedPreauthUserDetailsProviderTest extends \PHPUnit_Framework_Tes
$this->assertEquals("123456789", $user->getIsisEmplid()); $this->assertEquals("123456789", $user->getIsisEmplid());
$this->assertEquals("BUCKINGHAM", $user->getFirstName()); $this->assertEquals("BUCKINGHAM", $user->getFirstName());
$this->assertEquals("BADGER", $user->getLastName()); $this->assertEquals("BADGER", $user->getLastName());
$this->assertEquals(["A061234", "A072345"], $user->getUddsMembership());
} }
/** /**
......
...@@ -5,10 +5,7 @@ ...@@ -5,10 +5,7 @@
"cn": "BUCKINGHAM BADGER", "cn": "BUCKINGHAM BADGER",
"givenName": "BUCKINGHAM", "givenName": "BUCKINGHAM",
"sn": "BADGER", "sn": "BADGER",
"wiscEduUDDS": [ "wiscEduUDDS": "A061234;A072345",
"UW123A456",
"UW234A567"
],
"mail": "bucky.badger@wisc.edu", "mail": "bucky.badger@wisc.edu",
"source": "a_source", "source": "a_source",
"wiscEduIsisEmplid": "123456789" "wiscEduIsisEmplid": "123456789"
......
...@@ -5,10 +5,7 @@ ...@@ -5,10 +5,7 @@
"HTTP_EDUWISCONSINCOMMONNAME": "BUCKINGHAM BADGER", "HTTP_EDUWISCONSINCOMMONNAME": "BUCKINGHAM BADGER",
"HTTP_EDUWISCONSINGIVENNAME": "BUCKINGHAM", "HTTP_EDUWISCONSINGIVENNAME": "BUCKINGHAM",
"HTTP_EDUWISCONSINSURNAME": "BADGER", "HTTP_EDUWISCONSINSURNAME": "BADGER",
"HTTP_UDDS": [ "HTTP_UDDS": "A061234;A072345",
"UW123A456",
"UW234A567"
],
"HTTP_EDUWISCONSINEMAILADDRESS": "bucky.badger@wisc.edu", "HTTP_EDUWISCONSINEMAILADDRESS": "bucky.badger@wisc.edu",
"HTTP_SOURCE": "a_source", "HTTP_SOURCE": "a_source",
"HTTP_ISISEMPLID": "123456789", "HTTP_ISISEMPLID": "123456789",
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment