Skip to content

Commit 61565ef

Browse files
committed
provision user if new user
1 parent fc0ea85 commit 61565ef

File tree

1 file changed

+13
-9
lines changed
  • crates/handlers/src/upstream_oauth2

1 file changed

+13
-9
lines changed

crates/handlers/src/upstream_oauth2/link.rs

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -839,11 +839,12 @@ pub(crate) async fn post(
839839
)
840840
.into_response());
841841
}
842-
842+
let mut is_new_user = true;
843843
let user = if provider.allow_existing_users {
844844
// If the provider allows existing users, we can use the existing user
845845
let existing_user = repo.user().find_by_username(&username).await?;
846846
if existing_user.is_some() {
847+
is_new_user = false;
847848
existing_user.unwrap()
848849
} else {
849850
REGISTRATION_COUNTER
@@ -862,16 +863,19 @@ pub(crate) async fn post(
862863
.await?;
863864
}
864865

865-
// And schedule the job to provision it
866-
let mut job = ProvisionUserJob::new(&user);
867-
868-
// If we have a display name, set it during provisioning
869-
if let Some(name) = display_name {
870-
job = job.set_display_name(name);
866+
//create user in synapse only if needed
867+
if is_new_user {
868+
// And schedule the job to provision it
869+
let mut job = ProvisionUserJob::new(&user);
870+
871+
// If we have a display name, set it during provisioning
872+
if let Some(name) = display_name {
873+
job = job.set_display_name(name);
874+
}
875+
876+
repo.queue_job().schedule_job(&mut rng, &clock, job).await?;
871877
}
872878

873-
repo.queue_job().schedule_job(&mut rng, &clock, job).await?;
874-
875879
// If we have an email, add it to the user
876880
if let Some(email) = email {
877881
repo.user_email()

0 commit comments

Comments
 (0)