For impersonating access tokens, store impersonatee in the new column
This way, we don't need an index on both columns
This commit is contained in:
parent
69bff7bb77
commit
9f04fd9019
8 changed files with 38 additions and 45 deletions
|
@ -156,13 +156,11 @@ async fn create_access_token(
|
|||
.await?
|
||||
.ok_or_else(|| anyhow!("user not found"))?;
|
||||
|
||||
let mut user_id = user.id;
|
||||
let mut impersonator_id = None;
|
||||
let mut impersonated_user_id = None;
|
||||
if let Some(impersonate) = params.impersonate {
|
||||
if user.admin {
|
||||
if let Some(impersonated_user) = app.db.get_user_by_github_login(&impersonate).await? {
|
||||
impersonator_id = Some(user_id);
|
||||
user_id = impersonated_user.id;
|
||||
impersonated_user_id = Some(impersonated_user.id);
|
||||
} else {
|
||||
return Err(Error::Http(
|
||||
StatusCode::UNPROCESSABLE_ENTITY,
|
||||
|
@ -177,12 +175,13 @@ async fn create_access_token(
|
|||
}
|
||||
}
|
||||
|
||||
let access_token = auth::create_access_token(app.db.as_ref(), user_id, impersonator_id).await?;
|
||||
let access_token =
|
||||
auth::create_access_token(app.db.as_ref(), user_id, impersonated_user_id).await?;
|
||||
let encrypted_access_token =
|
||||
auth::encrypt_access_token(&access_token, params.public_key.clone())?;
|
||||
|
||||
Ok(Json(CreateAccessTokenResponse {
|
||||
user_id,
|
||||
user_id: impersonated_user_id.unwrap_or(user_id),
|
||||
encrypted_access_token,
|
||||
}))
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue