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 <me@sebastinez.dev>
This commit is contained in:
Sebastian Martinez 2023-09-15 17:13:51 +02:00 committed by cloudhead
parent 1abce45d5d
commit a3f460e67d
No known key found for this signature in database
4 changed files with 5 additions and 0 deletions

View File

@ -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")]

View File

@ -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()
})

View File

@ -45,6 +45,7 @@ async fn session_create_handler(State(ctx): State<Context>) -> 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)

View File

@ -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)