From a3f460e67d90f3406ec2dfbd1f21c3876a38c65a Mon Sep 17 00:00:00 2001 From: Sebastian Martinez Date: Fri, 15 Sep 2023 17:13:51 +0200 Subject: [PATCH] httpd: Add node alias to session endpoints This will allow us to show the alias of an authenticated user in the web client. Signed-off-by: Sebastian Martinez --- radicle-httpd/src/api/auth.rs | 2 ++ radicle-httpd/src/api/json.rs | 1 + radicle-httpd/src/api/v1/sessions.rs | 1 + radicle-httpd/src/test.rs | 1 + 4 files changed, 5 insertions(+) diff --git a/radicle-httpd/src/api/auth.rs b/radicle-httpd/src/api/auth.rs index 745802f8..255de775 100644 --- a/radicle-httpd/src/api/auth.rs +++ b/radicle-httpd/src/api/auth.rs @@ -3,6 +3,7 @@ use time::serde::timestamp; use time::{Duration, OffsetDateTime}; use radicle::crypto::PublicKey; +use radicle::node::Alias; use crate::api::error::Error; use crate::api::Context; @@ -22,6 +23,7 @@ pub enum AuthState { pub struct Session { pub status: AuthState, pub public_key: PublicKey, + pub alias: Alias, #[serde(with = "timestamp")] pub issued_at: OffsetDateTime, #[serde(with = "timestamp")] diff --git a/radicle-httpd/src/api/json.rs b/radicle-httpd/src/api/json.rs index 88507adf..d97bc3e2 100644 --- a/radicle-httpd/src/api/json.rs +++ b/radicle-httpd/src/api/json.rs @@ -48,6 +48,7 @@ pub(crate) fn session(session_id: String, session: &Session) -> Value { "sessionId": session_id, "status": session.status, "publicKey": session.public_key, + "alias": session.alias, "issuedAt": session.issued_at.unix_timestamp(), "expiresAt": session.expires_at.unix_timestamp() }) diff --git a/radicle-httpd/src/api/v1/sessions.rs b/radicle-httpd/src/api/v1/sessions.rs index 9e99f9e2..1ee6cb69 100644 --- a/radicle-httpd/src/api/v1/sessions.rs +++ b/radicle-httpd/src/api/v1/sessions.rs @@ -45,6 +45,7 @@ async fn session_create_handler(State(ctx): State) -> impl IntoResponse let session = Session { status: AuthState::Unauthorized, public_key: *signer.public_key(), + alias: ctx.profile.config.node.alias.clone(), issued_at: OffsetDateTime::now_utc(), expires_at: OffsetDateTime::now_utc() .checked_add(auth::UNAUTHORIZED_SESSIONS_EXPIRATION) diff --git a/radicle-httpd/src/test.rs b/radicle-httpd/src/test.rs index d1ede44a..c875aadd 100644 --- a/radicle-httpd/src/test.rs +++ b/radicle-httpd/src/test.rs @@ -236,6 +236,7 @@ pub async fn create_session(ctx: Context) { auth::Session { status: auth::AuthState::Authorized, public_key: ctx.profile().public_key, + alias: ctx.profile().config.node.alias.clone(), issued_at, expires_at: issued_at .checked_add(auth::AUTHORIZED_SESSIONS_EXPIRATION)