admin pages

Pages can now be locked behind admin privileges
This commit is contained in:
2026-05-01 16:47:42 +02:00
parent 802e5876f7
commit fdd2e2a757
5 changed files with 94 additions and 36 deletions

View File

@@ -1,7 +1,7 @@
mod pages;
mod auth;
use crate::pages::*;
mod pages;
use crate::auth::ProtectedRoute;
use crate::pages::*;
use yew::prelude::*;
use yew_router::prelude::*;
@@ -23,6 +23,8 @@ enum Route {
AllUsers,
#[at("/users/:id")]
UserByID { id: i16 },
#[at("/denied")]
PermissionDenied,
#[not_found]
#[at("/404")]
NotFound,
@@ -30,43 +32,44 @@ enum Route {
fn switch(route: Route) -> Html {
match route {
Route::Home => html! {
<ProtectedRoute>
Route::Home => html! {
<ProtectedRoute admin_page={false}>
<basic_pages::Home/>
</ProtectedRoute>
},
Route::NotFound => html! { <basic_pages::NotFound/> },
Route::Ticket => html! {
<ProtectedRoute>
<ticket::SubmitTicket/>
Route::Ticket => html! {
<ProtectedRoute admin_page={false}>
<ticket::SubmitTicket/>
</ProtectedRoute>
},
Route::TicketById { id } => html! {
<ProtectedRoute>
<ticket::TicketByID {id}/>
Route::TicketById { id } => html! {
<ProtectedRoute admin_page={true}>
<ticket::TicketByID {id}/>
</ProtectedRoute>
},
Route::AllTickets => html! {
<ProtectedRoute>
<ticket::AllTickets/>
Route::AllTickets => html! {
<ProtectedRoute admin_page={false}>
<ticket::AllTickets/>
</ProtectedRoute>
},
Route::Register => html! {
<ProtectedRoute>
<user::Register/>
Route::Register => html! {
<ProtectedRoute admin_page={true}>
<user::Register/>
</ProtectedRoute>
},
Route::Login => html! { <user::Login/> },
Route::AllUsers => html! {
<ProtectedRoute>
<ProtectedRoute admin_page={true}>
<user::AllUsers/>
</ProtectedRoute>
},
Route::UserByID { id } => html! {
<ProtectedRoute>
<user::UserByID {id}/>
Route::UserByID { id } => html! {
<ProtectedRoute admin_page={true}>
<user::UserByID {id}/>
</ProtectedRoute>
},
Route::PermissionDenied => html! { <basic_pages::PermissionDenied/> },
}
}