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:
parent
1abce45d5d
commit
a3f460e67d
|
|
@ -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")]
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
})
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
Loading…
Reference in New Issue