Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
lib
unicaen
auth
Commits
40bb0af6
Commit
40bb0af6
authored
Jul 20, 2021
by
Bertrand Gauthier
Browse files
[FIX] Meilleure gestion d'erreur en cas de demande d'usurpation d'un compte inexistant
parent
3f5c91a5
Pipeline
#10522
passed with stage
in 1 minute and 2 seconds
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
CHANGELOG.md
View file @
40bb0af6
CHANGELOG
=========
3.
2.3
-----
-
[FIX] Meilleure gestion d'erreur en cas de demande d'usurpation d'un compte inexistant : retour à l'accueil + message.
3.
2.2
-----
-
L'URL de connexion accepte désormais role=ROLE_ID pour sélectionner automatiquement ce rôle une fois authentifié.
...
...
src/UnicaenAuth/Controller/UtilisateurController.php
View file @
40bb0af6
...
...
@@ -2,6 +2,7 @@
namespace
UnicaenAuth\Controller
;
use
Exception
;
use
UnicaenApp\Exception\RuntimeException
;
use
UnicaenApp\Mapper\Ldap\People
as
LdapPeopleMapper
;
use
UnicaenAuth\Entity\Db\AbstractUser
;
...
...
@@ -132,10 +133,19 @@ class UtilisateurController extends AbstractActionController
return
$this
->
redirect
()
->
toRoute
(
'home'
);
}
$utilisateurUsurpe
=
$this
->
getUserMapper
()
->
findByUsername
(
$usernameUsurpe
);
/** @var AbstractUser $utilisateurUsurpe */
if
(
$utilisateurUsurpe
===
null
)
{
$this
->
flashMessenger
()
->
addErrorMessage
(
"La demande d'usurpation du compte '
$usernameUsurpe
' a échoué car aucun compte utilisateur correspondant "
.
"n'a été trouvé."
);
return
$this
->
redirect
()
->
toRoute
(
'home'
);
}
$sessionIdentity
=
$this
->
serviceUserContext
->
usurperIdentite
(
$usernameUsurpe
);
if
(
$sessionIdentity
!==
null
)
{
// cuisine spéciale si l'utilisateur courant s'est authentifié via Shibboleth
$this
->
usurperIdentiteShib
(
$u
sername
Usurpe
);
$this
->
usurperIdentiteShib
(
$u
tilisateur
Usurpe
);
}
return
$this
->
redirect
()
->
toRoute
(
'home'
);
...
...
@@ -144,19 +154,15 @@ class UtilisateurController extends AbstractActionController
/**
* Cuisine spéciale pour l'usurpation si l'utilisateur courant s'est authentifié via Shibboleth.
*
* @param str
ing $usernameUsurpe Ex tartempion@unicaen.f
r
* @param
Ab
str
actUser $utilisateurUsurpe Utilisateur à usurpe
r
*/
protected
function
usurperIdentiteShib
(
str
ing
$username
Usurpe
)
protected
function
usurperIdentiteShib
(
Ab
str
actUser
$utilisateur
Usurpe
)
{
$currentIdentityArray
=
$this
->
serviceUserContext
->
getIdentity
();
if
(
isset
(
$currentIdentityArray
[
'shib'
])
&&
$currentIdentityArray
[
'shib'
]
instanceof
ShibUser
)
{
$fromShibUser
=
$currentIdentityArray
[
'shib'
];
$toUtilisateur
=
$this
->
getUserMapper
()
->
findByUsername
(
$usernameUsurpe
);
/** @var AbstractUser $toUtilisateur */
if
(
$toUtilisateur
===
null
)
{
throw
new
RuntimeException
(
"L'utilisateur '
$usernameUsurpe
' n'existe pas dans la table des utilisateurs"
);
}
$this
->
shibService
->
activateUsurpation
(
$fromShibUser
,
$toUtilisateur
);
$this
->
shibService
->
activateUsurpation
(
$fromShibUser
,
$utilisateurUsurpe
);
}
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment