Loading src/UnicaenAuthentification/Entity/Shibboleth/ShibUser.php +65 −61 Original line number Diff line number Diff line Loading @@ -17,63 +17,6 @@ class ShibUser implements UserInterface protected ?string $civilite = null; protected int $state = 1; /** * Teste si une chaîne ressemble à un EPPN. */ static public function isEppn(string $string): bool { if (($pos = strpos($string, '@')) === false) { return false; } $domain = substr($string, $pos + 1); if (filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false) { return false; } return true; } /** * Extrait le domaine de l'EPPN spécifié. */ static public function extractDomainFromEppn(string $eppn): string { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $parts = explode('@', $eppn); return $parts[1]; } /** * Retourne la partie domaine DNS de l'EPPN. * Retourne par exemple "unicaen.fr" lorsque l'EPPN est "tartempion@unicaen.fr" */ public function getEppnDomain(): string { return static::extractDomainFromEppn($this->getEppn()); } /** * Retourne l'eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function getEppn(): string { return $this->getUsername(); } /** * Spécifie l'eduPersonPrincipalName (EPPN). * * @param string $eppn eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function setEppn(string $eppn): void { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $this->setUsername($eppn); } /** * Retourne l'identifiant unique de cet utilisateur. Loading Loading @@ -123,22 +66,22 @@ class ShibUser implements UserInterface $this->displayName = $displayName; } public function getNom(): string public function getNom(): ?string { return $this->nom; } public function setNom(string $nom): void public function setNom(?string $nom): void { $this->nom = $nom; } public function getPrenom(): string public function getPrenom(): ?string { return $this->prenom; } public function setPrenom(string $prenom): void public function setPrenom(?string $prenom): void { $this->prenom = $prenom; } Loading Loading @@ -176,6 +119,67 @@ class ShibUser implements UserInterface $this->state = $state; } /** */ /** * Teste si une chaîne ressemble à un EPPN. */ static public function isEppn(string $string): bool { if (($pos = strpos($string, '@')) === false) { return false; } $domain = substr($string, $pos + 1); if (filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false) { return false; } return true; } /** * Extrait le domaine de l'EPPN spécifié. */ static public function extractDomainFromEppn(string $eppn): string { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $parts = explode('@', $eppn); return $parts[1]; } /** * Retourne la partie domaine DNS de l'EPPN. * Retourne par exemple "unicaen.fr" lorsque l'EPPN est "tartempion@unicaen.fr" */ public function getEppnDomain(): string { return static::extractDomainFromEppn($this->getEppn()); } /** * Retourne l'eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function getEppn(): string { return $this->getUsername(); } /** * Spécifie l'eduPersonPrincipalName (EPPN). * * @param string $eppn eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function setEppn(string $eppn): void { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $this->setUsername($eppn); } public function __toString(): string { return $this->getDisplayName(); Loading Loading
src/UnicaenAuthentification/Entity/Shibboleth/ShibUser.php +65 −61 Original line number Diff line number Diff line Loading @@ -17,63 +17,6 @@ class ShibUser implements UserInterface protected ?string $civilite = null; protected int $state = 1; /** * Teste si une chaîne ressemble à un EPPN. */ static public function isEppn(string $string): bool { if (($pos = strpos($string, '@')) === false) { return false; } $domain = substr($string, $pos + 1); if (filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false) { return false; } return true; } /** * Extrait le domaine de l'EPPN spécifié. */ static public function extractDomainFromEppn(string $eppn): string { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $parts = explode('@', $eppn); return $parts[1]; } /** * Retourne la partie domaine DNS de l'EPPN. * Retourne par exemple "unicaen.fr" lorsque l'EPPN est "tartempion@unicaen.fr" */ public function getEppnDomain(): string { return static::extractDomainFromEppn($this->getEppn()); } /** * Retourne l'eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function getEppn(): string { return $this->getUsername(); } /** * Spécifie l'eduPersonPrincipalName (EPPN). * * @param string $eppn eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function setEppn(string $eppn): void { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $this->setUsername($eppn); } /** * Retourne l'identifiant unique de cet utilisateur. Loading Loading @@ -123,22 +66,22 @@ class ShibUser implements UserInterface $this->displayName = $displayName; } public function getNom(): string public function getNom(): ?string { return $this->nom; } public function setNom(string $nom): void public function setNom(?string $nom): void { $this->nom = $nom; } public function getPrenom(): string public function getPrenom(): ?string { return $this->prenom; } public function setPrenom(string $prenom): void public function setPrenom(?string $prenom): void { $this->prenom = $prenom; } Loading Loading @@ -176,6 +119,67 @@ class ShibUser implements UserInterface $this->state = $state; } /** */ /** * Teste si une chaîne ressemble à un EPPN. */ static public function isEppn(string $string): bool { if (($pos = strpos($string, '@')) === false) { return false; } $domain = substr($string, $pos + 1); if (filter_var($domain, FILTER_VALIDATE_DOMAIN, FILTER_FLAG_HOSTNAME) === false) { return false; } return true; } /** * Extrait le domaine de l'EPPN spécifié. */ static public function extractDomainFromEppn(string $eppn): string { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $parts = explode('@', $eppn); return $parts[1]; } /** * Retourne la partie domaine DNS de l'EPPN. * Retourne par exemple "unicaen.fr" lorsque l'EPPN est "tartempion@unicaen.fr" */ public function getEppnDomain(): string { return static::extractDomainFromEppn($this->getEppn()); } /** * Retourne l'eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function getEppn(): string { return $this->getUsername(); } /** * Spécifie l'eduPersonPrincipalName (EPPN). * * @param string $eppn eduPersonPrincipalName (EPPN), ex: 'gauthierb@unicaen.fr' */ public function setEppn(string $eppn): void { Assert::true(static::isEppn($eppn), "La chaîne suivante n'est pas un EPPN valide : " . $eppn); $this->setUsername($eppn); } public function __toString(): string { return $this->getDisplayName(); Loading