Lowercase all incoming names

break-database
~erin 2021-07-23 13:05:56 -04:00
parent fd0a363293
commit d5be76624c
Signed by: erin
GPG Key ID: DA70E064A8C70F44
3 changed files with 29 additions and 17 deletions

17
Rocket.toml Normal file
View File

@ -0,0 +1,17 @@
[development]
address = "localhost"
port = 8000
keep_alive = 5
read_timeout = 5
write_timeout = 5
log = "normal"
limits = { forms = 32768 }
[production]
address = "0.0.0.0"
port = 8080
keep_alive = 5
read_timeout = 5
write_timeout = 5
log = "critical"
limits = { forms = 32768 }

View File

@ -10,7 +10,7 @@ extern crate sha1;
#[post("/register", format = "json", data = "<data>")] #[post("/register", format = "json", data = "<data>")]
pub fn register(data: Json<RegisterEvent>) -> JsonValue { pub fn register(data: Json<RegisterEvent>) -> JsonValue {
// check if the user exists // check if the user exists
if let Some(_user) = db_read_user(&data.name).ok().flatten() { if let Some(_user) = db_read_user(&data.name.to_lowercase()).ok().flatten() {
warn!("Cannot create user {}! User is already in system.", data.name); warn!("Cannot create user {}! User is already in system.", data.name);
return json!({ return json!({
"status": "fail", "status": "fail",
@ -41,26 +41,21 @@ pub fn register(data: Json<RegisterEvent>) -> JsonValue {
} }
} }
fn create_token(name: String, mut user: User) -> String { fn create_token(mut user: User) -> String {
let charset = "1234567890abcdefghijklmnopqrstuvwxyz"; let charset = "1234567890abcdefghijklmnopqrstuvwxyz";
if user.name == name { user.session_token = generate(12, charset);
user.session_token = generate(12, charset); db_add(&user);
db_add(&user); info!("succesfully created token for user {}", user.name);
info!("succesfully created token for user {}", name); let token = user.session_token.clone();
let token = user.session_token.clone(); return token;
return token;
};
warn!("something bad happened while creating a token and idk what");
return "NULL".to_string();
} }
// Check if user is properly logged in // Check if user is properly logged in
#[get("/token/<name>")] #[get("/token/<name>")]
pub fn check_token(name: String, mut cookies: Cookies) -> JsonValue { pub fn check_token(name: String, mut cookies: Cookies) -> JsonValue {
// check if the user is in the system // check if the user is in the system
if let Some(user) = db_read_user(&name).ok().flatten() { if let Some(user) = db_read_user(&name.to_lowercase()).ok().flatten() {
// get the token from the cookie // get the token from the cookie
let token = match cookies.get_private("token") { let token = match cookies.get_private("token") {
None => { None => {
@ -157,7 +152,7 @@ pub fn login(data: Json<LoginEvent>, mut cookies: Cookies) -> JsonValue {
info!("pin correct for user {}", &user.name); info!("pin correct for user {}", &user.name);
// Create token for user & set a cookie // Create token for user & set a cookie
let token = create_token(user.name.clone(), user); let token = create_token(user);
let cookie = Cookie::build("token", token) let cookie = Cookie::build("token", token)
.path("/") .path("/")
.finish(); .finish();
@ -215,7 +210,7 @@ pub fn change_info(input: Json<ChangeEvent>, mut cookies: Cookies) -> JsonValue
} }
// find the user // find the user
if let Some(mut user) = db_read_user(&input.name).ok().flatten() { if let Some(mut user) = db_read_user(&input.name.to_lowercase()).ok().flatten() {
if token.value() == user.session_token { // & if token matches: if token.value() == user.session_token { // & if token matches:
match input.changed_event { match input.changed_event {
ChangeEventType::Name => { ChangeEventType::Name => {
@ -274,7 +269,7 @@ pub fn get_user(name: String) -> JsonValue {
return json!({ return json!({
"status":"ok", "status":"ok",
"user": { "user": {
"name": user.name, "name": user.name.to_lowercase(),
"pronouns": user.pronouns, "pronouns": user.pronouns,
"role": user.role, "role": user.role,
}, },

View File

@ -33,7 +33,7 @@ fn create_message(message: Json<MessageInput>, user: &User) -> JsonValue {
let message_obj: Message = Message { let message_obj: Message = Message {
id: Uuid::new_v4(), id: Uuid::new_v4(),
event_type, event_type,
user: user.name.to_owned(), user: user.name.to_lowercase().to_owned(),
body: message.body.to_string(), body: message.body.to_string(),
created_at: Utc::now(), created_at: Utc::now(),
}; };