fix(oidc): fix user's picture copy when OIDC login
This commit is contained in:
@@ -123,18 +123,25 @@ impl UserRepository for UserPgRepository {
|
|||||||
let role_str = user_clone.role().to_string();
|
let role_str = user_clone.role().to_string();
|
||||||
|
|
||||||
// Modify the SQL to do an explicit cast to the auth.userrole type
|
// Modify the SQL to do an explicit cast to the auth.userrole type
|
||||||
|
// `image` is included here (was missing pre-fix); without
|
||||||
|
// it a JIT-provisioned OIDC user landed in the row with
|
||||||
|
// a NULL profile picture even when the IdP's `picture`
|
||||||
|
// claim was non-empty. `update_user` already wrote the
|
||||||
|
// column so existing-user re-logins worked, but the
|
||||||
|
// first-time INSERT silently dropped it — surfaced by
|
||||||
|
// tests/oidc/oidc.hurl Step 6 asserting on `$.image`.
|
||||||
let _result = sqlx::query(
|
let _result = sqlx::query(
|
||||||
r#"
|
r#"
|
||||||
INSERT INTO auth.users (
|
INSERT INTO auth.users (
|
||||||
id, username, email, password_hash, role,
|
id, username, email, password_hash, role,
|
||||||
storage_quota_bytes, storage_used_bytes,
|
storage_quota_bytes, storage_used_bytes,
|
||||||
created_at, updated_at, last_login_at, active,
|
created_at, updated_at, last_login_at, active,
|
||||||
oidc_provider, oidc_subject, is_external,
|
oidc_provider, oidc_subject, image, is_external,
|
||||||
given_name, family_name, email_verified_at,
|
given_name, family_name, email_verified_at,
|
||||||
preferred_locale, notify_on_share
|
preferred_locale, notify_on_share
|
||||||
) VALUES (
|
) VALUES (
|
||||||
$1, $2, $3, $4, $5::auth.userrole, $6, $7, $8, $9, $10, $11,
|
$1, $2, $3, $4, $5::auth.userrole, $6, $7, $8, $9, $10, $11,
|
||||||
$12, $13, $14, $15, $16, $17, $18, $19
|
$12, $13, $14, $15, $16, $17, $18, $19, $20
|
||||||
)
|
)
|
||||||
RETURNING *
|
RETURNING *
|
||||||
"#,
|
"#,
|
||||||
@@ -152,6 +159,7 @@ impl UserRepository for UserPgRepository {
|
|||||||
.bind(user_clone.is_active())
|
.bind(user_clone.is_active())
|
||||||
.bind(user_clone.oidc_provider())
|
.bind(user_clone.oidc_provider())
|
||||||
.bind(user_clone.oidc_subject())
|
.bind(user_clone.oidc_subject())
|
||||||
|
.bind(user_clone.image())
|
||||||
.bind(user_clone.is_external())
|
.bind(user_clone.is_external())
|
||||||
.bind(user_clone.given_name())
|
.bind(user_clone.given_name())
|
||||||
.bind(user_clone.family_name())
|
.bind(user_clone.family_name())
|
||||||
|
|||||||
Reference in New Issue
Block a user