summaryrefslogtreecommitdiff
path: root/src/bin
diff options
context:
space:
mode:
authorKjetil Orbekk <kjetil.orbekk@gmail.com>2017-06-17 22:23:39 -0400
committerKjetil Orbekk <kjetil.orbekk@gmail.com>2017-06-17 22:23:59 -0400
commit1e5f237c20310cbf6ace17b6a7b05298429aca46 (patch)
tree61c67dc5846cec4a79e960eb4e28afa1699272de /src/bin
parent41025a52fe3d2e4988296bfdc1ef549b60b8b667 (diff)
feature: Working login with authentication.
Diffstat (limited to 'src/bin')
-rw-r--r--src/bin/main.rs35
1 files changed, 20 insertions, 15 deletions
diff --git a/src/bin/main.rs b/src/bin/main.rs
index b07a524..ed9e179 100644
--- a/src/bin/main.rs
+++ b/src/bin/main.rs
@@ -31,6 +31,21 @@ fn create_user_prompt() -> Option<(String, String)> {
Some((user.trim().to_string(), password))
}
+fn create_admin_user(conn: &rusqlite::Connection) {
+ info!("Create admin user");
+ if let Some((user, password)) = create_user_prompt() {
+ let enc = auth::encode("test_salt", password.as_str());
+ systemhttp::db::insert_user(
+ &conn, user.as_str(),
+ &enc).expect("create user");
+ }
+}
+
+fn serve(context: systemhttp::server::Context, port: u16) {
+ let _server = systemhttp::server::serve(context, port).unwrap();
+ println!("Serving on {}", port);
+}
+
fn main() {
let matches = App::new("systemhttpd")
.version("0.1")
@@ -62,24 +77,14 @@ fn main() {
.expect(format!("opening sqlite database at {}", db_file).as_str());
systemhttp::db::init(&mut conn);
- let mut serve = || {
- let _server = systemhttp::server::serve(port).unwrap();
- println!("Serving on {}", port);
- };
-
- let mut create_admin_user = || {
- info!("Create admin user");
- if let Some((user, password)) = create_user_prompt() {
- let enc = auth::encode("test_salt", password.as_str());
- systemhttp::db::insert_user(
- &mut conn, user.as_str(),
- &enc).expect("create user");
- }
+ let mut context = systemhttp::server::Context {
+ base_url: "http://localhost:8080".to_string(),
+ conn: conn
};
match matches.subcommand_name() {
- Some("serve") => serve(),
- Some("create_admin_user") => create_admin_user(),
+ Some("serve") => serve(context, port),
+ Some("create_admin_user") => create_admin_user(&context.conn),
x => panic!("Don't know about subcommand: {:?}", x)
}
}