server (/auth/register): create directory for user files

This commit is contained in:
MedzikUser 2022-04-30 22:32:08 +02:00
parent cdc185c4d8
commit 1df16a3169
No known key found for this signature in database
GPG Key ID: A5FAC1E185C112DB
4 changed files with 16 additions and 6 deletions

View File

@ -18,8 +18,8 @@ pub async fn handle(
let user = User::new(&request.username, &request.password);
let response = match db.find_user(&user.username, &user.password).await {
Ok(res) => {
let token = create_token(res, config.jwt.secret.as_bytes(), config.jwt.expires)?;
Ok(user) => {
let token = create_token(&user, config.jwt.secret.as_bytes(), config.jwt.expires)?;
Response::LoggedIn {
access_token: token,

View File

@ -1,3 +1,5 @@
use std::fs;
use axum::{extract::rejection::JsonRejection, Extension, Json};
use homedisk_database::{Database, User};
use homedisk_types::{
@ -34,7 +36,7 @@ pub async fn handle(
let response = match db.create_user(&user).await {
Ok(_) => {
let token = create_token(user, config.jwt.secret.as_bytes(), config.jwt.expires)?;
let token = create_token(&user, config.jwt.secret.as_bytes(), config.jwt.expires)?;
Response::LoggedIn {
access_token: token,
@ -52,5 +54,13 @@ pub async fn handle(
}
};
// create directory for user files
let user_dir = format!(
"{storage}/{username}",
storage = config.storage.path,
username = user.username,
);
fs::create_dir_all(&user_dir).unwrap();
Ok(Json(response))
}

View File

@ -48,7 +48,7 @@ pub async fn handle(
}
// write file
fs::write(&path, content)
fs::write(&path, &content)
.map_err(|err| ServerError::FsError(FsError::WriteFile(err.to_string())))?;
Response { uploaded: true }

View File

@ -2,8 +2,8 @@ use homedisk_database::User;
use homedisk_types::errors::{AuthError, ServerError};
use rust_utilities::crypto::jsonwebtoken::{Claims, Token};
pub fn create_token(user: User, secret: &[u8], expires: i64) -> Result<String, ServerError> {
let token = Token::new(secret, Claims::new(user.id, expires));
pub fn create_token(user: &User, secret: &[u8], expires: i64) -> Result<String, ServerError> {
let token = Token::new(secret, Claims::new(user.id.clone(), expires));
match token {
Ok(token) => Ok(token.encoded),