ezidam: header: display name, username, email
This commit is contained in:
parent
c9ef821d2b
commit
9172155893
4 changed files with 16 additions and 17 deletions
|
|
@ -81,12 +81,13 @@ async fn avatar(
|
||||||
}
|
}
|
||||||
|
|
||||||
pub mod content {
|
pub mod content {
|
||||||
|
use jwt::JwtClaims;
|
||||||
use rocket::serde::Serialize;
|
use rocket::serde::Serialize;
|
||||||
|
|
||||||
#[derive(Serialize)]
|
#[derive(Serialize)]
|
||||||
#[serde(crate = "rocket::serde")]
|
#[serde(crate = "rocket::serde")]
|
||||||
pub struct Homepage {
|
pub struct Homepage {
|
||||||
pub abc: String,
|
pub user: JwtClaims,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -97,18 +98,12 @@ async fn redirect_to_setup(_setup: NeedSetup) -> Redirect {
|
||||||
|
|
||||||
#[get("/", rank = 2)]
|
#[get("/", rank = 2)]
|
||||||
async fn homepage(admin: JwtAdmin) -> Page {
|
async fn homepage(admin: JwtAdmin) -> Page {
|
||||||
println!("{:?}", admin.0);
|
Page::Homepage(content::Homepage { user: admin.0 })
|
||||||
Page::Homepage(content::Homepage {
|
|
||||||
abc: "admin".to_string(),
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[get("/", rank = 3)]
|
#[get("/", rank = 3)]
|
||||||
async fn homepage_user(user: JwtUser) -> Page {
|
async fn homepage_user(user: JwtUser) -> Page {
|
||||||
println!("{:?}", user.0);
|
Page::Homepage(content::Homepage { user: user.0 })
|
||||||
Page::Homepage(content::Homepage {
|
|
||||||
abc: "user".to_string(),
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[get("/", rank = 4)]
|
#[get("/", rank = 4)]
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,4 @@
|
||||||
{% extends "shell" %}
|
{% extends "shell" %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div>
|
|
||||||
<div>
|
|
||||||
homepage goes here {{ abc }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock content %}
|
{% endblock content %}
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,17 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="nav-item dropdown">
|
<div class="nav-item dropdown">
|
||||||
<a href="#" class="nav-link d-flex lh-1 text-reset p-0" data-bs-toggle="dropdown" aria-label="Open user menu">
|
<a href="#" class="nav-link d-flex lh-1 text-reset p-0" data-bs-toggle="dropdown" aria-label="Open user menu">
|
||||||
<span class="avatar avatar-sm" style="background-image: url(/avatar/ycpkJNdAiz947WB?size=250)"></span>
|
<span class="avatar avatar-sm" style="background-image: url(/avatar/{{ user.sub }}?size=250)"></span>
|
||||||
<div class="d-none d-xl-block ps-2">
|
<div class="d-none d-xl-block ps-2">
|
||||||
<div>Dunn Slane</div>
|
{% if user.name %}
|
||||||
<div class="mt-1 small text-muted">Research Nurse</div>
|
<div>{{ user.name }}</div>
|
||||||
|
{% else %}
|
||||||
|
<div>{{ user.username }}</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if user.email %}
|
||||||
|
<div class="mt-1 small text-muted">{{ user.email }}</div>
|
||||||
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<div class="dropdown-menu dropdown-menu-end dropdown-menu-arrow">
|
<div class="dropdown-menu dropdown-menu-end dropdown-menu-arrow">
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ pub struct JwtClaims {
|
||||||
|
|
||||||
// Custom claims
|
// Custom claims
|
||||||
pub username: String,
|
pub username: String,
|
||||||
|
pub name: Option<String>,
|
||||||
pub email: Option<String>,
|
pub email: Option<String>,
|
||||||
pub is_admin: bool,
|
pub is_admin: bool,
|
||||||
pub roles: Vec<String>,
|
pub roles: Vec<String>,
|
||||||
|
|
@ -37,6 +38,7 @@ impl JwtClaims {
|
||||||
|
|
||||||
// Custom claims
|
// Custom claims
|
||||||
username: user.username().to_string(),
|
username: user.username().to_string(),
|
||||||
|
name: user.name().map(String::from),
|
||||||
email: user.email().map(String::from),
|
email: user.email().map(String::from),
|
||||||
is_admin: user.is_admin(),
|
is_admin: user.is_admin(),
|
||||||
roles,
|
roles,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue