feat: add changing username, email and display_name to /me endpoint
All checks were successful
ci/woodpecker/push/build-and-publish Pipeline was successful
ci/woodpecker/push/publish-docs Pipeline was successful

This commit is contained in:
Radical 2025-05-28 17:36:23 +02:00
parent 1ff3fa69a7
commit 9728769b8c
6 changed files with 95 additions and 29 deletions

View file

@ -1,3 +1,5 @@
use std::sync::LazyLock;
use actix_web::{
cookie::{Cookie, SameSite, time::Duration},
http::header::HeaderMap,
@ -7,9 +9,24 @@ use bindet::FileType;
use getrandom::fill;
use hex::encode;
use redis::RedisError;
use regex::Regex;
use serde::Serialize;
use crate::{error::Error, structs::{HasIsAbove, HasUuid}, Data};
use crate::{
Data,
error::Error,
structs::{HasIsAbove, HasUuid},
};
pub static EMAIL_REGEX: LazyLock<Regex> = LazyLock::new(|| {
Regex::new(r"[-A-Za-z0-9!#$%&'*+/=?^_`{|}~]+(?:\.[-A-Za-z0-9!#$%&'*+/=?^_`{|}~]+)*@(?:[A-Za-z0-9](?:[-A-Za-z0-9]*[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[-A-Za-z0-9]*[A-Za-z0-9])?").unwrap()
});
pub static USERNAME_REGEX: LazyLock<Regex> =
LazyLock::new(|| Regex::new(r"^[a-z0-9_.-]+$").unwrap());
// Password is expected to be hashed using SHA3-384
pub static PASSWORD_REGEX: LazyLock<Regex> = LazyLock::new(|| Regex::new(r"[0-9a-f]{96}").unwrap());
pub fn get_auth_header(headers: &HeaderMap) -> Result<&str, Error> {
let auth_token = headers.get(actix_web::http::header::AUTHORIZATION);