postgres via sqlx - workable?
This commit is contained in:
@@ -5,12 +5,8 @@ use axum::{
|
||||
use maud::{PreEscaped, html};
|
||||
|
||||
use crate::{
|
||||
database,
|
||||
users::{
|
||||
User,
|
||||
auth::{AuthError, UserAuthenticate},
|
||||
permissions::Permission,
|
||||
},
|
||||
error::CompositeError,
|
||||
users::{User, auth::UserAuthenticate, permissions::Permission},
|
||||
web::{
|
||||
components::{nav::nav, user_miniprofile::user_miniprofile},
|
||||
icons,
|
||||
@@ -21,13 +17,19 @@ use crate::{
|
||||
pub mod create;
|
||||
pub mod profile;
|
||||
|
||||
pub async fn page(req: Request) -> Result<Response, AuthError> {
|
||||
let u = match User::authenticate(req.headers())? {
|
||||
pub async fn page(
|
||||
axum::extract::State(state): axum::extract::State<crate::MnemoState>,
|
||||
req: Request,
|
||||
) -> Result<Response, CompositeError> {
|
||||
let mut conn = state.pool.acquire().await?;
|
||||
let u = match User::authenticate(&mut *conn, req.headers()).await? {
|
||||
Some(u) => u,
|
||||
None => return Ok(Redirect::to(&format!("/login?r={}", req.uri().path())).into_response()),
|
||||
};
|
||||
let conn = database::conn()?;
|
||||
let us = User::get_all(&conn);
|
||||
let us = User::get_all(&mut *conn).await;
|
||||
let can_create_users = u
|
||||
.has_permission(&mut *conn, Permission::ManuallyCreateUsers)
|
||||
.await;
|
||||
|
||||
Ok(base(
|
||||
"Users | Mnemosyne",
|
||||
@@ -45,7 +47,7 @@ pub async fn page(req: Request) -> Result<Response, AuthError> {
|
||||
} @else {
|
||||
"Could not fetch user count."
|
||||
}
|
||||
@if let Ok(true) = u.has_permission(&conn, Permission::ManuallyCreateUsers) {
|
||||
@if let Ok(true) = can_create_users {
|
||||
" "
|
||||
a href="/users/create" class="text-blue-500 hover:text-blue-400 hover:underline" {
|
||||
"Create a new user"
|
||||
|
||||
Reference in New Issue
Block a user