summaryrefslogtreecommitdiff
path: root/src/setup/app.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/setup/app.rs')
-rw-r--r--src/setup/app.rs8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/setup/app.rs b/src/setup/app.rs
index 030b5f6..cab7c4b 100644
--- a/src/setup/app.rs
+++ b/src/setup/app.rs
@@ -4,7 +4,7 @@ use super::repo::Provider as _;
use crate::{
clock::DateTime,
event::{repo::Provider as _, Broadcaster, Event},
- login::{repo::Provider as _, Login, Password},
+ login::{repo::Provider as _, validate, Login, Password},
name::Name,
token::{repo::Provider as _, Secret},
};
@@ -25,6 +25,10 @@ impl<'a> Setup<'a> {
password: &Password,
created_at: &DateTime,
) -> Result<(Login, Secret), Error> {
+ if !validate::name(name) {
+ return Err(Error::InvalidName(name.clone()));
+ }
+
let password_hash = password.hash()?;
let mut tx = self.db.begin().await?;
@@ -56,6 +60,8 @@ impl<'a> Setup<'a> {
pub enum Error {
#[error("initial setup previously completed")]
SetupCompleted,
+ #[error("invalid login name: {0}")]
+ InvalidName(Name),
#[error(transparent)]
Database(#[from] sqlx::Error),
#[error(transparent)]