Fix newline error in users.json maybe?
parent
de0d7c2b43
commit
0faffb5b3a
|
@ -258,6 +258,15 @@ dependencies = [
|
||||||
"termcolor",
|
"termcolor",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "fastrand"
|
||||||
|
version = "1.4.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "77b705829d1e87f762c2df6da140b26af5839e1033aa84aa5f56bb688e4e1bdb"
|
||||||
|
dependencies = [
|
||||||
|
"instant",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "filetime"
|
name = "filetime"
|
||||||
version = "0.2.14"
|
version = "0.2.14"
|
||||||
|
@ -449,6 +458,15 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "instant"
|
||||||
|
version = "0.1.10"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "bee0328b1209d157ef001c94dd85b4f8f64139adb0eac2659f4b08382b2f474d"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "iovec"
|
name = "iovec"
|
||||||
version = "0.1.4"
|
version = "0.1.4"
|
||||||
|
@ -680,12 +698,13 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "pogchat"
|
name = "pogchat"
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"chrono",
|
"chrono",
|
||||||
"env_logger",
|
"env_logger",
|
||||||
"log 0.4.14",
|
"log 0.4.14",
|
||||||
"once_cell",
|
"once_cell",
|
||||||
|
"random-string",
|
||||||
"rocket",
|
"rocket",
|
||||||
"rocket_contrib",
|
"rocket_contrib",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -787,6 +806,15 @@ dependencies = [
|
||||||
"rand_core",
|
"rand_core",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "random-string"
|
||||||
|
version = "1.0.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "cf4e63111ec5292d8af9c220f06fe3bb87991cc78b6f1f7e291d1ae6b8a60817"
|
||||||
|
dependencies = [
|
||||||
|
"fastrand",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "redox_syscall"
|
name = "redox_syscall"
|
||||||
version = "0.2.9"
|
version = "0.2.9"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[package]
|
[package]
|
||||||
name = "pogchat"
|
name = "pogchat"
|
||||||
version = "0.3.0"
|
version = "0.4.0"
|
||||||
authors = ["Erin Nova <erin@the-system.eu.org>"]
|
authors = ["Erin Nova <erin@the-system.eu.org>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
|
|
||||||
|
@ -17,3 +17,4 @@ env_logger = "0.8.4"
|
||||||
chrono = { version = "0.4.11", features = ["serde"] }
|
chrono = { version = "0.4.11", features = ["serde"] }
|
||||||
rocket_contrib = { version = "0.4.10", default-features = false, features = ["json", "serve"] }
|
rocket_contrib = { version = "0.4.10", default-features = false, features = ["json", "serve"] }
|
||||||
once_cell = "1.8.0"
|
once_cell = "1.8.0"
|
||||||
|
random-string = "1.0"
|
||||||
|
|
18
src/auth.rs
18
src/auth.rs
|
@ -2,7 +2,8 @@ extern crate log;
|
||||||
use crate::file_io::{append_json, read_json, write_json};
|
use crate::file_io::{append_json, read_json, write_json};
|
||||||
use rocket::http::{Cookie, Cookies};
|
use rocket::http::{Cookie, Cookies};
|
||||||
use crate::user::User;
|
use crate::user::User;
|
||||||
use rocket_contrib::{json::Json, json::JsonValue, serve::StaticFiles};
|
use rocket_contrib::json::JsonValue;
|
||||||
|
use random_string::generate;
|
||||||
extern crate sha1;
|
extern crate sha1;
|
||||||
|
|
||||||
#[get("/")]
|
#[get("/")]
|
||||||
|
@ -39,15 +40,15 @@ pub fn register_user(name: String, pin: i32, pronouns: String) -> JsonValue {
|
||||||
|
|
||||||
let pin_hashed = sha1::Sha1::from(&pin.to_string()).digest().to_string(); // hash the pin
|
let pin_hashed = sha1::Sha1::from(&pin.to_string()).digest().to_string(); // hash the pin
|
||||||
|
|
||||||
users.push(User {
|
let new_user: User = User {
|
||||||
name: name.to_string().to_lowercase(),
|
name: name.to_string().to_lowercase(),
|
||||||
pin_hashed: pin_hashed,
|
pin_hashed: pin_hashed,
|
||||||
pronouns: pronouns.to_string().to_lowercase(),
|
pronouns: pronouns.to_string().to_lowercase(),
|
||||||
session_token: "NULL".to_string(),
|
session_token: "NULL".to_string(),
|
||||||
}); // append the user to the vec
|
}; // append the user to the vec
|
||||||
|
|
||||||
// append to the json file
|
// append to the json file
|
||||||
match append_json(&users[users.len()-1]) {
|
match append_json(&new_user) {
|
||||||
Err(why) => panic!("couldn't append json: {}", why),
|
Err(why) => panic!("couldn't append json: {}", why),
|
||||||
Ok(()) => info!("Succesfully appended to json"),
|
Ok(()) => info!("Succesfully appended to json"),
|
||||||
};
|
};
|
||||||
|
@ -64,10 +65,15 @@ pub fn register_user(name: String, pin: i32, pronouns: String) -> JsonValue {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_token(name: String, mut users: Vec<User>) -> String {
|
fn create_token(name: String, mut users: Vec<User>) -> String {
|
||||||
|
let charset = "1234567890abcdefghijklmnopqrstuvwxyz";
|
||||||
|
|
||||||
for i in 0..users.len() {
|
for i in 0..users.len() {
|
||||||
if users[i].name == name {
|
if users[i].name == name {
|
||||||
users[i].session_token = "token".to_string();
|
users[i].session_token = generate(12, charset);
|
||||||
append_json(&users[i]);
|
match write_json(&users) {
|
||||||
|
Err(why) => panic!("coudln't write to file: {}", why),
|
||||||
|
Ok(()) => info!("succesfully wrote to file"),
|
||||||
|
};
|
||||||
info!("succesfully created token for user {}", name);
|
info!("succesfully created token for user {}", name);
|
||||||
let token = users[i].session_token.clone();
|
let token = users[i].session_token.clone();
|
||||||
return token;
|
return token;
|
||||||
|
|
|
@ -63,7 +63,7 @@ pub fn append_json(user: &User) -> Result<()> {
|
||||||
// Add newline
|
// Add newline
|
||||||
match file.write_all("\n".as_bytes()) {
|
match file.write_all("\n".as_bytes()) {
|
||||||
Err(why) => panic!("couldn't write to {}: {}", display, why),
|
Err(why) => panic!("couldn't write to {}: {}", display, why),
|
||||||
Ok(_) => info!("succesfully wrote to {}", display),
|
Ok(_) => info!("succesfully wrote newline to {}", display),
|
||||||
};
|
};
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
@ -83,10 +83,10 @@ pub fn write_json(users_list: &Vec<User>) -> Result<()> {
|
||||||
for i in 0..users_list.len() {
|
for i in 0..users_list.len() {
|
||||||
// Serialize the users
|
// Serialize the users
|
||||||
users_json += &serde_json::to_string(&users_list[i])?;
|
users_json += &serde_json::to_string(&users_list[i])?;
|
||||||
if i != users_list.len() - 1 {
|
//if i != users_list.len() - 1 {
|
||||||
// don't append newline if it's the last element
|
// don't append newline if it's the last element
|
||||||
users_json += "\n";
|
users_json += "\n";
|
||||||
}
|
//}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Write to the file
|
// Write to the file
|
||||||
|
|
Loading…
Reference in New Issue