fix: journal privacy

This commit is contained in:
trisua 2025-06-19 16:19:57 -04:00
parent 57a69eea50
commit 97b7e873ed
6 changed files with 95 additions and 15 deletions

View file

@ -1,9 +1,10 @@
use oiseau::{cache::Cache, query_row};
use crate::{
database::common::NAME_REGEX,
model::{
auth::User,
permissions::FinePermission,
journals::{Journal, JournalPrivacyPermission},
permissions::FinePermission,
Error, Result,
},
};
@ -85,6 +86,18 @@ impl DataManager {
data.title = data.title.replace(" ", "_");
// check name
let regex = regex::RegexBuilder::new(NAME_REGEX)
.multi_line(true)
.build()
.unwrap();
if regex.captures(&data.title).is_some() {
return Err(Error::MiscError(
"This title contains invalid characters".to_string(),
));
}
// make sure this title isn't already in use
if self
.get_journal_by_owner_title(data.owner, &data.title)