tuwunel_admin/query/oauth/
revoke.rs1use tuwunel_core::{
2 Result,
3 either::{Left, Right},
4};
5
6use super::SessionOrUserId;
7use crate::admin_command;
8
9#[admin_command]
10pub(super) async fn oauth_revoke(&self, id: SessionOrUserId) -> Result {
11 match id {
12 | Left(sess_id) => {
13 let session = self.services.oauth.sessions.get(&sess_id).await?;
14
15 let provider = self
16 .services
17 .oauth
18 .sessions
19 .provider(&session)
20 .await?;
21
22 self.services
23 .oauth
24 .revoke_token((&provider, &session))
25 .await
26 .ok();
27 },
28 | Right(user_id) =>
29 self.services
30 .oauth
31 .revoke_user_tokens(&user_id)
32 .await,
33 }
34
35 self.write_str("revoked").await
36}