Skip to content

Commit 2eea1a3

Browse files
committed
Delete owned PATs & personal sessions when pruning OAuth2 clients
1 parent 272c80c commit 2eea1a3

File tree

3 files changed

+71
-0
lines changed

3 files changed

+71
-0
lines changed

crates/storage-pg/.sqlx/query-2a61003da3655158e6a261d91fdff670f1b4ba3c56605c53e2b905d7ec38c8be.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/.sqlx/query-dca9b361c4409b14498b85f192b0034201575a49e0240ac6715b55ad8d381d0e.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crates/storage-pg/src/oauth2/client.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -811,6 +811,49 @@ impl OAuth2ClientRepository for PgOAuth2ClientRepository<'_> {
811811
.await?;
812812
}
813813

814+
// Delete any personal access tokens & sessions owned
815+
// by the client
816+
{
817+
let span = info_span!(
818+
"db.oauth2_client.delete_by_id.personal_access_tokens",
819+
{ DB_QUERY_TEXT } = tracing::field::Empty,
820+
);
821+
822+
sqlx::query!(
823+
r#"
824+
DELETE FROM personal_access_tokens
825+
WHERE personal_session_id IN (
826+
SELECT personal_session_id
827+
FROM personal_sessions
828+
WHERE owner_oauth2_client_id = $1
829+
)
830+
"#,
831+
Uuid::from(id),
832+
)
833+
.record(&span)
834+
.execute(&mut *self.conn)
835+
.instrument(span)
836+
.await?;
837+
}
838+
{
839+
let span = info_span!(
840+
"db.oauth2_client.delete_by_id.personal_sessions",
841+
{ DB_QUERY_TEXT } = tracing::field::Empty,
842+
);
843+
844+
sqlx::query!(
845+
r#"
846+
DELETE FROM personal_sessions
847+
WHERE owner_oauth2_client_id = $1
848+
"#,
849+
Uuid::from(id),
850+
)
851+
.record(&span)
852+
.execute(&mut *self.conn)
853+
.instrument(span)
854+
.await?;
855+
}
856+
814857
// Now delete the client itself
815858
let res = sqlx::query!(
816859
r#"

0 commit comments

Comments
 (0)