On 16/11/16 22:10, abhishek raghav wrote:
Hi
I am trying to implement a welcome email to newly registered users by admin.
I am using event listener SPI and emailSenderProvider to do this.
I am implementing a provider for the Event Listener SPI and notifying users
by sending an email and react to create user OperationType using
emailSenderProvider.
Here i am overriding, onEvent method which gets triggered on any
AdminEvents.
Now inside this method, i am preparing the content and calling
emailSenderProvider.send() which takes realmModel and userModel.
The issue is, I am able to get the realmModel, but not the userModel.
Code for reference:
@Override
public void onEvent(AdminEvent event, boolean includeRepresentation) {
UserModel user =
session.users().getUserById(event.getAuthDetails().getUserId(), realm);
......
event.getAuthDetails().getUserId() points to the details of the admin
user, who is authenticated to the admin session. Not the user you are
trying to edit. I bet that realm points to some custom realm you created
(eg. "foo" ), however event.getAuthDetails().getUserId() points to the
userID of admin user from "master" realm. Hence the
session.users().getUserById returning null. Could that be the case?
If you want the ID of actual registered user, you likely need to decode
it from resourcePath.
Hope it helps,
Marek
Same works perfectly in the onEvent() for loginEvents.
Is it that the newly created resource is not available in the session but
when we try updating an existing resource, it is able to fetch it.
Please help me where I am doing wrong. Or is there any other way to get the
userModel object.
Thanks in advance.
Cheers
Abhishek
_______________________________________________
keycloak-user mailing list
keycloak-user(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/keycloak-user