From 928308cc260ea6fd622579b95c29fa0d42509c3a Mon Sep 17 00:00:00 2001
From: bruening <bruening@bwinf.de>
Date: Thu, 4 Apr 2019 15:07:10 +0200
Subject: [PATCH] romoved all warnings

---
 src/db_conn_sqlite.rs | 15 ++++++++-----
 src/functions.rs      | 48 +++++++++++++++++++++-------------------
 src/main.rs           | 23 ++++++++++---------
 src/webfw_iron.rs     | 51 +++++++++++++++++++++++--------------------
 4 files changed, 74 insertions(+), 63 deletions(-)

diff --git a/src/db_conn_sqlite.rs b/src/db_conn_sqlite.rs
index 1144ba49..05c90eb8 100644
--- a/src/db_conn_sqlite.rs
+++ b/src/db_conn_sqlite.rs
@@ -14,7 +14,7 @@ use self::time::Duration;
 
 use std::path::{Path};
 
-use self::bcrypt::{DEFAULT_COST, hash, verify, BcryptError};
+use self::bcrypt::{verify};
 
 use ::functions; // todo: remove (usertype in db)
 
@@ -190,7 +190,8 @@ impl MedalConnection for Connection {
         }
     }
 
-    fn login(&self, session: Option<&str>, username: &str, password: &str) -> Result<String,()> {
+    //TODO: use session
+    fn login(&self, _session: Option<&str>, username: &str, password: &str) -> Result<String,()> {
         match self.query_row(
             "SELECT id, password, salt FROM session_user WHERE username = ?1",
             &[&username],
@@ -215,7 +216,9 @@ impl MedalConnection for Connection {
             _ => {Err(()) }
         }
     }
-    fn login_with_code(&self, session: Option<&str>, logincode: &str) -> Result<String,()> {
+
+    //TODO: use session
+    fn login_with_code(&self, _session: Option<&str>, logincode: &str) -> Result<String,()> {
         match self.query_row(
             "SELECT id FROM session_user WHERE logincode = ?1",
             &[&logincode],
@@ -237,7 +240,8 @@ impl MedalConnection for Connection {
         }
     }
 
-    fn login_foreign(&self, session: Option<&str>, foreign_id: u32, foreign_type: functions::UserType, firstname: &str, lastname: &str) -> Result<String,()> {
+    //TODO: use session
+    fn login_foreign(&self, _session: Option<&str>, foreign_id: u32, foreign_type: functions::UserType, firstname: &str, lastname: &str) -> Result<String,()> {
         let session_token: String = thread_rng().sample_iter(&Alphanumeric).take(10).collect();
         let csrf_token: String = thread_rng().sample_iter(&Alphanumeric).take(10).collect();
         let now = time::get_time();
@@ -260,7 +264,8 @@ impl MedalConnection for Connection {
         }
     }
 
-    fn create_user_with_groupcode(&self, session: Option<&str>, groupcode: &str) -> Result<String,()> {
+    //TODO: use session
+    fn create_user_with_groupcode(&self, _session: Option<&str>, groupcode: &str) -> Result<String,()> {
         match self.query_row(
             "SELECT id FROM usergroup WHERE groupcode = ?1",
             &[&groupcode],
diff --git a/src/functions.rs b/src/functions.rs
index 2fd727cd..4e9b217f 100644
--- a/src/functions.rs
+++ b/src/functions.rs
@@ -10,7 +10,7 @@ use db_conn::{MedalConnection};
 
 use db_objects::{Submission, Group, SessionUser};
 
-use self::bcrypt::{DEFAULT_COST, hash, verify, BcryptError};
+use self::bcrypt::{hash};
 
 #[derive(Serialize, Deserialize)]
 pub struct SubTaskInfo {
@@ -35,6 +35,7 @@ pub struct ContestInfo {
     pub tasks: Vec<TaskInfo>,
 }
 
+#[allow(dead_code)] //CsrfCheckFailed, SessionTimeout, DatabaseError and UnmatchedPasswords are used in webfw_iron.rs. 
 #[derive(Clone)]
 pub enum MedalError {
     NotLoggedIn,
@@ -103,10 +104,9 @@ pub fn show_contest<T: MedalConnection>(conn: &T, contest_id: u32, session_token
     let mut tasks = Vec::new();
     for (task, grade) in c.taskgroups.into_iter().zip(grades) {
         let mut not_print_yet = true;
-        let mut blackstars :usize = 0;
         let mut stasks = Vec::new();
         for st in task.tasks {
-            blackstars = 0;
+            let mut blackstars :usize = 0;
             if not_print_yet && st.stars >= grade.grade.unwrap_or(0) {
                 blackstars = grade.grade.unwrap_or(0) as usize;
                 not_print_yet = false;
@@ -185,7 +185,8 @@ pub fn show_contest_results<T: MedalConnection>(conn: &T, contest_id: u32, sessi
     for (group, groupdata) in resultdata {
         let mut groupresults: Vec<(String, Vec<String>)> = Vec::new();
 
-        for (user, userdata) in groupdata {
+        //TODO: use user
+        for (_user, userdata) in groupdata {
             let mut userresults: Vec<String> = Vec::new();
 
             userresults.push(String::new());
@@ -227,8 +228,10 @@ pub fn show_contest_results<T: MedalConnection>(conn: &T, contest_id: u32, sessi
     Ok(("contestresults".to_owned(), data))
 }
 
-pub fn start_contest<T: MedalConnection>(conn: &T, contest_id: u32, session_token: String, csrf_token:String) -> MedalResult<()> {
-    let data = json_val::Map::new();
+//TODO: use csrf_token
+pub fn start_contest<T: MedalConnection>(conn: &T, contest_id: u32, session_token: String, _csrf_token:String) -> MedalResult<()> {
+    //TODO: use data
+    let _data = json_val::Map::new();
 
     match conn.new_participation(&session_token, contest_id) {
         Ok(_) => Ok(()),
@@ -407,7 +410,7 @@ pub fn show_group<T: MedalConnection>(conn: &T, group_id: u32, session_token: St
     Ok(("group".to_string(), data))
 }
 
-pub fn modify_group<T: MedalConnection>(conn: &T, group_id: u32, session_token: String) -> MedalResult<()> {
+pub fn modify_group<T: MedalConnection>(_conn: &T, _group_id: u32, _session_token: String) -> MedalResult<()> {
     unimplemented!()
 }
 
@@ -437,10 +440,11 @@ pub fn add_group<T: MedalConnection>(conn: &T, session_token: String, csrf_token
     Ok(group.id.unwrap())
 }
 
-
+#[allow(dead_code)]
 pub fn show_groups_results<T: MedalConnection>(conn: &T, contest_id: u32, session_token: String) -> MedalValueResult {
     let session = conn.get_session_or_new(&session_token).ensure_logged_in().ok_or(MedalError::NotLoggedIn)?;
-    let g = conn.get_contest_groups_grades(session.id, contest_id);
+    //TODO: use g
+    let _g = conn.get_contest_groups_grades(session.id, contest_id);
 
     let data = json_val::Map::new();
 
@@ -469,7 +473,7 @@ pub fn show_profile<T: MedalConnection>(conn: &T, session_token: String, user_id
             query_string.map(|query| {
                 if query.starts_with("status=") {
                     let status: &str = &query[7..];
-                    if ["nothing_changed","data_changed","password_changed","password_missmatch"].contains(&status) { 
+                    if ["NothingChanged","DataChanged","PasswordChanged","PasswordMissmatch"].contains(&status) {
                         data.insert((status).to_string(), to_json(&true));
                     }
                 }});
@@ -506,16 +510,16 @@ fn hash_password(password: &str, salt: &str) -> Result<String, MedalError> {
    let password_and_salt = [password, salt].concat().to_string();
    match hash(password_and_salt, 5) {
        Ok(result) => Ok(result),
-       Err(e) => Err(MedalError::PasswordHashingError)
+       Err(_) => Err(MedalError::PasswordHashingError)
    }
 }
 
 #[derive(Debug)]
 pub enum ProfileStatus {
-    nothing_changed,
-    data_changed,
-    password_changed,
-    password_missmatch,
+    NothingChanged,
+    DataChanged,
+    PasswordChanged,
+    PasswordMissmatch,
 }
 impl std::convert::Into<String> for ProfileStatus {
     fn into(self) -> String {
@@ -535,10 +539,10 @@ pub fn edit_profile<T: MedalConnection>(conn: &T, session_token: String, user_id
         && session.grade == grade
         && password == ""
         && password_repeat == "" {
-            return Ok(ProfileStatus::nothing_changed);
+            return Ok(ProfileStatus::NothingChanged);
         }
 
-    let mut result = ProfileStatus::data_changed;
+    let mut result = ProfileStatus::DataChanged;
 
     let mut password_salt = None;
 
@@ -546,11 +550,11 @@ pub fn edit_profile<T: MedalConnection>(conn: &T, session_token: String, user_id
         if password == password_repeat {
             let salt: String = thread_rng().sample_iter(&Alphanumeric).take(10).collect();
             let hash = hash_password(&password, &salt)?;
-            
+
             password_salt = Some((hash, salt));
-            result = ProfileStatus::password_changed;
+            result = ProfileStatus::PasswordChanged;
         } else {
-            result = ProfileStatus::password_missmatch;
+            result = ProfileStatus::PasswordMissmatch;
         }
     }
 
@@ -564,7 +568,7 @@ pub fn edit_profile<T: MedalConnection>(conn: &T, session_token: String, user_id
                 session.password = Some(password);
                 session.salt = Some(salt);
             }
-            
+
             conn.save_session(session);
         }
         Some(user_id) => {
@@ -583,7 +587,7 @@ pub fn edit_profile<T: MedalConnection>(conn: &T, session_token: String, user_id
                 user.password = Some(password);
                 user.salt = Some(salt);
             }
-            
+
             conn.save_session(user);
          }
     }
diff --git a/src/main.rs b/src/main.rs
index 228d5d56..2138f970 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -60,9 +60,9 @@ pub struct Config {
 
 fn read_config_from_file(file: &Path) -> Config {
     use std::io::Read;
-    
+
     println!("Reading configuration file '{}'", file.to_str().unwrap_or("<Encoding error>"));
-    
+
     let mut config : Config = if let Ok(mut file) = fs::File::open(file) {
         let mut contents = String::new();
         file.read_to_string(&mut contents).unwrap();
@@ -157,7 +157,7 @@ fn add_admin_user(conn: &mut Connection, resetpw: bool) {
         None => {
             print!("New Database. Creating new admin user with credentials 'admin':");
             conn.new_session()
-            
+
         },
         Some(user) => {
             if !resetpw {
@@ -166,7 +166,6 @@ fn add_admin_user(conn: &mut Connection, resetpw: bool) {
             print!("Request to reset admin password. Set credentials 'admin':");
             user
         }
-        _ => return
     };
 
     use rand::{thread_rng, Rng, distributions::Alphanumeric};
@@ -189,7 +188,7 @@ fn add_admin_user(conn: &mut Connection, resetpw: bool) {
 fn main() {
     let opt = Opt::from_args();
     //println!("{:?}", opt); // Show in different debug level?
-    
+
     let mut config = read_config_from_file(&opt.configfile);
 
     if opt.databasefile.is_some() { config.database_file = opt.databasefile; }
@@ -235,24 +234,24 @@ mod tests {
             let srvr = start_server(conn, config);
 
             start_tx.send(()).unwrap();
-            
+
             stop_rx.recv().unwrap();
-            
-            srvr.unwrap().close().unwrap();            
+
+            srvr.unwrap().close().unwrap();
         });
-        
+
         // wait for server to start:
         start_rx.recv().unwrap();
         thread::sleep(time::Duration::from_millis(100));
         f();
-        stop_tx.send(()).unwrap();        
+        stop_tx.send(()).unwrap();
     }
 
     #[test]
     fn start_server_and_check_request() {
         start_server_and_fn(8080, ||{
             let mut resp = reqwest::get("http://localhost:8080").unwrap();
-            assert!(resp.status().is_success());            
+            assert!(resp.status().is_success());
             let mut content = String::new();
             resp.read_to_string(&mut content);
             assert!(content.contains("<h1>Jugendwettbewerb Informatik</h1>"));
@@ -267,7 +266,7 @@ mod tests {
             assert!(!content.contains("Error"));
         })
     }
-            
+
     #[test]
     fn check_login_wrong_credentials() {
         start_server_and_fn(8081, ||{
diff --git a/src/webfw_iron.rs b/src/webfw_iron.rs
index 1424ff74..bf1c711d 100644
--- a/src/webfw_iron.rs
+++ b/src/webfw_iron.rs
@@ -141,7 +141,7 @@ impl<'a, 'b> RequestSession for Request<'a, 'b> {
 
                 use rand::{thread_rng, Rng};
 
-                let new_session_key: String = thread_rng().gen_ascii_chars().take(28).collect();
+                let new_session_key: String = thread_rng().sample_iter(&Alphanumeric).take(28).collect();
                 self.session().set(SessionToken { token: new_session_key }).unwrap();
                 Err(IronError { error: Box::new(SessionError { message: "No valid session found, redirecting to cookie page".to_string() }),
                                 response: Response::with((status::Found, RedirectRaw(format!("/cookie?{}", self.url.path().join("/"))))) })
@@ -280,7 +280,7 @@ fn contestresults(req: &mut Request) -> IronResult<Response> {
     let session_token = req.require_session_token()?;
 
     let (template, data) = with_conn![functions::show_contest_results, req, contest_id,  session_token].aug(req)?;
-    
+
     let mut resp = Response::new();
     resp.set_mut(Template::new(&template, data)).set_mut(status::Ok);
     Ok(resp)
@@ -296,16 +296,16 @@ fn contest_post(req: &mut Request) -> IronResult<Response> {
     };
 
     // TODO: Was mit dem Result?
-    let startcontestresult = with_conn![functions::start_contest, req, contest_id, session_token, csrf_token].aug(req)?;
+    let _startcontestresult = with_conn![functions::start_contest, req, contest_id, session_token, csrf_token].aug(req)?;
 
     Ok(Response::with((status::Found, Redirect(url_for!(req, "contest", "contestid" => format!("{}",contest_id))))))
 }
 
 fn login(req: &mut Request) -> IronResult<Response> {
-    let (self_url, oauth_url) = {   
+    let (self_url, oauth_url) = {
         let mutex = req.get::<Write<SharedConfiguration>>().unwrap();
         let config = mutex.lock().unwrap_or_else(|e| e.into_inner());
-    
+
         (config.self_url.clone(), config.oauth_url.clone())
     };
 
@@ -326,7 +326,7 @@ fn login_post(req: &mut Request) -> IronResult<Response> {
     };
 
     // TODO: Submit current session to login
-    
+
     let loginresult = with_conn![functions::login, req, logindata];
 
     match loginresult {
@@ -379,7 +379,7 @@ fn logout(req: &mut Request) -> IronResult<Response> {
     let session_token = req.get_session_token();
 
     println!("Loggin out session {:?}", session_token);
-    
+
     with_conn![functions::logout, req, session_token];
 
     Ok(Response::with((status::Found, Redirect(url_for!(req, "greet")))))
@@ -422,9 +422,9 @@ fn submission_post(req: &mut Request) -> IronResult<Response> {
     println!("{}",data);
     println!("{}",task_id);
     println!("{}",grade);
-    
+
     let result = with_conn![functions::save_submission, req, task_id, session_token, csrf_token, data, grade, subtask];
-    
+
     match result {
         Ok(_) => Ok(Response::with((
             status::Ok,
@@ -452,9 +452,9 @@ fn task(req: &mut Request) -> IronResult<Response> {
 
 fn groups(req: &mut Request) -> IronResult<Response> {
     let session_token = req.require_session_token()?;
-    
+
     let (template, data) = with_conn![functions::show_groups, req, session_token].aug(req)?;
-    
+
     let mut resp = Response::new();
     resp.set_mut(Template::new(&template, data)).set_mut(status::Ok);
     Ok(resp)
@@ -463,9 +463,9 @@ fn groups(req: &mut Request) -> IronResult<Response> {
 fn group(req: &mut Request) -> IronResult<Response> {
     let group_id      = req.expect_int::<u32>("groupid")?;
     let session_token = req.require_session_token()?;
-    
+
     let (template, data) = with_conn![functions::show_group, req, group_id, session_token].aug(req)?;
-    
+
     let mut resp = Response::new();
     resp.set_mut(Template::new(&template, data)).set_mut(status::Ok);
     Ok(resp)
@@ -475,7 +475,8 @@ fn group_post(req: &mut Request) -> IronResult<Response> {
     let group_id      = req.expect_int::<u32>("groupid")?;
     let session_token = req.expect_session_token()?;
 
-    let changegroupresult = with_conn![functions::modify_group, req, group_id, session_token].aug(req)?;
+    //TODO: use changegroupresult
+    let _changegroupresult = with_conn![functions::modify_group, req, group_id, session_token].aug(req)?;
 
     Ok(Response::with((status::Found, Redirect(url_for!(req, "group", "groupid" => format!("{}",group_id))))))
 }
@@ -493,16 +494,16 @@ fn new_group(req: &mut Request) -> IronResult<Response> {
     println!("{}",name);
 
     let group_id = with_conn![functions::add_group, req, session_token, csrf, name, tag].aug(req)?;
-    
+
     Ok(Response::with((status::Found, Redirect(url_for!(req, "group", "groupid" => format!("{}",group_id))))))
 }
 
 fn profile(req: &mut Request) -> IronResult<Response> {
     let session_token = req.require_session_token()?;
     let query_string =  req.url.query().map(|s| s.to_string());
-    
+
     let (template, data) = with_conn![functions::show_profile, req, session_token, None, query_string].aug(req)?;
-    
+
     let mut resp = Response::new();
     resp.set_mut(Template::new(&template, data)).set_mut(status::Ok);
     Ok(resp)
@@ -521,8 +522,9 @@ fn profile_post(req: &mut Request) -> IronResult<Response> {
             iexpect!(formdata.get("grade"))[0].parse::<u8>().unwrap_or(0)
         )
     };
-    
-    let profilechangeresult = with_conn![functions::edit_profile, req, session_token, None, csrf_token, firstname, lastname, pwd, pwd_repeat, grade].aug(req)?;
+
+    //TODO: use profilechangeresult
+    let _profilechangeresult = with_conn![functions::edit_profile, req, session_token, None, csrf_token, firstname, lastname, pwd, pwd_repeat, grade].aug(req)?;
 
     Ok(Response::with((status::Found, Redirect(url_for!(req, "profile")))))
 }
@@ -531,9 +533,9 @@ fn user(req: &mut Request) -> IronResult<Response> {
     let user_id = req.expect_int::<u32>("userid")?;
     let session_token = req.expect_session_token()?;
     let query_string =  req.url.query().map(|s| s.to_string());
-    
+
     let (template, data) = with_conn![functions::show_profile, req, session_token, Some(user_id), query_string].aug(req)?;
-    
+
     let mut resp = Response::new();
     resp.set_mut(Template::new(&template, data)).set_mut(status::Ok);
     Ok(resp)
@@ -554,8 +556,9 @@ fn user_post(req: &mut Request) -> IronResult<Response> {
         )
 
     };
-    
-    let profilechangeresult  = with_conn![functions::edit_profile, req, session_token, Some(user_id), csrf_token, firstname, lastname, pwd, pwd_repeat, grade].aug(req)?;
+
+    //TODO: use profilechangeresult
+    let _profilechangeresult  = with_conn![functions::edit_profile, req, session_token, Some(user_id), csrf_token, firstname, lastname, pwd, pwd_repeat, grade].aug(req)?;
 
     Ok(Response::with((status::Found, Redirect(url_for!(req, "user", "userid" => format!("{}",user_id))))))
 }
@@ -725,7 +728,7 @@ pub fn get_handlebars_engine() -> impl AfterMiddleware {
 
 fn cookie_warning(req: &mut Request) -> IronResult<Response> {
     match req.get_session_token() {
-        Some(session_token) => {
+        Some(_session_token) => {
             // TODO: Set session!
             // TODO:
             Ok(Response::with((status::Found, RedirectRaw(format!("/{}",req.url.query().unwrap_or(""))))))
-- 
GitLab