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 time::{Duration, OffsetDateTime};
|
||||||
|
|
||||||
use radicle::crypto::PublicKey;
|
use radicle::crypto::PublicKey;
|
||||||
|
use radicle::node::Alias;
|
||||||
|
|
||||||
use crate::api::error::Error;
|
use crate::api::error::Error;
|
||||||
use crate::api::Context;
|
use crate::api::Context;
|
||||||
|
|
@ -22,6 +23,7 @@ pub enum AuthState {
|
||||||
pub struct Session {
|
pub struct Session {
|
||||||
pub status: AuthState,
|
pub status: AuthState,
|
||||||
pub public_key: PublicKey,
|
pub public_key: PublicKey,
|
||||||
|
pub alias: Alias,
|
||||||
#[serde(with = "timestamp")]
|
#[serde(with = "timestamp")]
|
||||||
pub issued_at: OffsetDateTime,
|
pub issued_at: OffsetDateTime,
|
||||||
#[serde(with = "timestamp")]
|
#[serde(with = "timestamp")]
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,7 @@ pub(crate) fn session(session_id: String, session: &Session) -> Value {
|
||||||
"sessionId": session_id,
|
"sessionId": session_id,
|
||||||
"status": session.status,
|
"status": session.status,
|
||||||
"publicKey": session.public_key,
|
"publicKey": session.public_key,
|
||||||
|
"alias": session.alias,
|
||||||
"issuedAt": session.issued_at.unix_timestamp(),
|
"issuedAt": session.issued_at.unix_timestamp(),
|
||||||
"expiresAt": session.expires_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 {
|
let session = Session {
|
||||||
status: AuthState::Unauthorized,
|
status: AuthState::Unauthorized,
|
||||||
public_key: *signer.public_key(),
|
public_key: *signer.public_key(),
|
||||||
|
alias: ctx.profile.config.node.alias.clone(),
|
||||||
issued_at: OffsetDateTime::now_utc(),
|
issued_at: OffsetDateTime::now_utc(),
|
||||||
expires_at: OffsetDateTime::now_utc()
|
expires_at: OffsetDateTime::now_utc()
|
||||||
.checked_add(auth::UNAUTHORIZED_SESSIONS_EXPIRATION)
|
.checked_add(auth::UNAUTHORIZED_SESSIONS_EXPIRATION)
|
||||||
|
|
|
||||||
|
|
@ -236,6 +236,7 @@ pub async fn create_session(ctx: Context) {
|
||||||
auth::Session {
|
auth::Session {
|
||||||
status: auth::AuthState::Authorized,
|
status: auth::AuthState::Authorized,
|
||||||
public_key: ctx.profile().public_key,
|
public_key: ctx.profile().public_key,
|
||||||
|
alias: ctx.profile().config.node.alias.clone(),
|
||||||
issued_at,
|
issued_at,
|
||||||
expires_at: issued_at
|
expires_at: issued_at
|
||||||
.checked_add(auth::AUTHORIZED_SESSIONS_EXPIRATION)
|
.checked_add(auth::AUTHORIZED_SESSIONS_EXPIRATION)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue