fix: cast user_role and auth_provider enum types in SSO callback SQL queries
All checks were successful
CI Pipeline / Rust Format Check (push) Successful in 4s
CI Pipeline / Clippy Lints (push) Successful in 51s
CI Pipeline / Rust Unit Tests (push) Successful in 1m10s
CI Pipeline / Security Audit (push) Successful in 5s
CI Pipeline / Frontend Lint & Type Check (push) Successful in 14s
CI Pipeline / Build .deb & Release (push) Has been skipped
All checks were successful
CI Pipeline / Rust Format Check (push) Successful in 4s
CI Pipeline / Clippy Lints (push) Successful in 51s
CI Pipeline / Rust Unit Tests (push) Successful in 1m10s
CI Pipeline / Security Audit (push) Successful in 5s
CI Pipeline / Frontend Lint & Type Check (push) Successful in 14s
CI Pipeline / Build .deb & Release (push) Has been skipped
This commit is contained in:
@ -418,7 +418,7 @@ async fn sso_callback(
|
|||||||
|
|
||||||
// First try exact match: email AND auth_provider
|
// First try exact match: email AND auth_provider
|
||||||
let user_opt: Option<DbUserForSso> = match sqlx::query_as(
|
let user_opt: Option<DbUserForSso> = match sqlx::query_as(
|
||||||
r#"SELECT id, username, display_name, role, is_active, mfa_enabled
|
r#"SELECT id, username, display_name, role::text as role, is_active, mfa_enabled
|
||||||
FROM users WHERE email = $1 AND auth_provider = $2::auth_provider"#,
|
FROM users WHERE email = $1 AND auth_provider = $2::auth_provider"#,
|
||||||
)
|
)
|
||||||
.bind(&email)
|
.bind(&email)
|
||||||
@ -441,7 +441,7 @@ async fn sso_callback(
|
|||||||
None => {
|
None => {
|
||||||
// Try to find existing user by email alone (may have different auth_provider)
|
// Try to find existing user by email alone (may have different auth_provider)
|
||||||
let existing_user: Option<DbUserForSso> = match sqlx::query_as(
|
let existing_user: Option<DbUserForSso> = match sqlx::query_as(
|
||||||
r#"SELECT id, username, display_name, role, is_active, mfa_enabled
|
r#"SELECT id, username, display_name, role::text as role, is_active, mfa_enabled
|
||||||
FROM users WHERE email = $1"#,
|
FROM users WHERE email = $1"#,
|
||||||
)
|
)
|
||||||
.bind(&email)
|
.bind(&email)
|
||||||
@ -505,7 +505,7 @@ async fn sso_callback(
|
|||||||
// No existing user - create new one
|
// No existing user - create new one
|
||||||
let id: Uuid = match sqlx::query_scalar(
|
let id: Uuid = match sqlx::query_scalar(
|
||||||
r#"INSERT INTO users (username, display_name, email, role, auth_provider, azure_oid, oidc_sub)
|
r#"INSERT INTO users (username, display_name, email, role, auth_provider, azure_oid, oidc_sub)
|
||||||
VALUES ($1, $2, $3, 'operator', $4::auth_provider, $5, $6)
|
VALUES ($1, $2, $3, 'operator'::user_role, $4::auth_provider, $5, $6)
|
||||||
RETURNING id"#,
|
RETURNING id"#,
|
||||||
)
|
)
|
||||||
.bind(&preferred_username)
|
.bind(&preferred_username)
|
||||||
|
|||||||
Reference in New Issue
Block a user