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-18 11:18:17 +02:00
committed by cloudhead
parent fe753d898d
commit 9c533cdea8
4 changed files with 5 additions and 0 deletions
+2
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")]
+1
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()
})
+1
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)
+1
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)