fix: make usernames and community titles case insensitive
This commit is contained in:
parent
f5b75382e5
commit
e7e9b49195
4 changed files with 15 additions and 4 deletions
|
@ -101,7 +101,7 @@ pub async fn feed_request(
|
|||
let data = data.read().await;
|
||||
let user = get_user_from_token!(jar, data.0);
|
||||
|
||||
let community = match data.0.get_community_by_title(&title).await {
|
||||
let community = match data.0.get_community_by_title(&title.to_lowercase()).await {
|
||||
Ok(ua) => ua,
|
||||
Err(e) => return Err(Html(render_error(e, &jar, &data, &user).await)),
|
||||
};
|
||||
|
|
|
@ -84,6 +84,11 @@ impl DataManager {
|
|||
return Err(Error::DataTooShort("password".to_string()));
|
||||
}
|
||||
|
||||
// make sure username isn't taken
|
||||
if self.get_user_by_username(&data.username).await.is_ok() {
|
||||
return Err(Error::MiscError("Username in use".to_string()));
|
||||
}
|
||||
|
||||
// ...
|
||||
let conn = match self.connect().await {
|
||||
Ok(c) => c,
|
||||
|
@ -96,7 +101,7 @@ impl DataManager {
|
|||
&[
|
||||
&data.id.to_string().as_str(),
|
||||
&data.created.to_string().as_str(),
|
||||
&data.username.as_str(),
|
||||
&data.username.to_lowercase().as_str(),
|
||||
&data.password.as_str(),
|
||||
&data.salt.as_str(),
|
||||
&serde_json::to_string(&data.settings).unwrap().as_str(),
|
||||
|
|
|
@ -98,6 +98,8 @@ macro_rules! auto_method {
|
|||
|
||||
($name:ident($selector_t:ty)@$select_fn:ident -> $query:literal --name=$name_:literal --returns=$returns_:tt --cache-key-tmpl=$cache_key_tmpl:literal) => {
|
||||
pub async fn $name(&self, selector: $selector_t) -> Result<$returns_> {
|
||||
let selector = selector.to_string().to_lowercase();
|
||||
|
||||
if let Some(cached) = self.2.get(format!($cache_key_tmpl, selector)).await {
|
||||
return Ok(serde_json::from_str(&cached).unwrap());
|
||||
}
|
||||
|
|
|
@ -61,7 +61,11 @@ impl DataManager {
|
|||
}
|
||||
|
||||
// make sure community doesn't already exist with title
|
||||
if self.get_community_by_title(&data.title).await.is_ok() {
|
||||
if self
|
||||
.get_community_by_title(&data.title.to_lowercase())
|
||||
.await
|
||||
.is_ok()
|
||||
{
|
||||
return Err(Error::MiscError("Title already in use".to_string()));
|
||||
}
|
||||
|
||||
|
@ -77,7 +81,7 @@ impl DataManager {
|
|||
&[
|
||||
&data.id.to_string().as_str(),
|
||||
&data.created.to_string().as_str(),
|
||||
&data.title.as_str(),
|
||||
&data.title.to_lowercase().as_str(),
|
||||
&serde_json::to_string(&data.context).unwrap().as_str(),
|
||||
&data.owner.to_string().as_str(),
|
||||
&serde_json::to_string(&data.read_access).unwrap().as_str(),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue