Skip to content
This repository has been archived by the owner on Jan 21, 2023. It is now read-only.

Commit

Permalink
Update dependecies
Browse files Browse the repository at this point in the history
  • Loading branch information
Victor Brekenfeld committed Oct 17, 2016
1 parent b95e0ca commit 1f956cf
Show file tree
Hide file tree
Showing 18 changed files with 458 additions and 324 deletions.
524 changes: 332 additions & 192 deletions Cargo.lock

Large diffs are not rendered by default.

30 changes: 15 additions & 15 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "hazel"
description = "A Chocolatey-compatible multi-platform Package Server written in Rust"
version = "1.0.1"
version = "1.0.2"
authors = ["Victor Brekenfeld <[email protected]>"]
build = "build.rs"
homepage = "https://github.com/MPIB/hazel"
Expand All @@ -11,41 +11,41 @@ keywords = ["nuget", "chocolatey", "package"]
license = "AGPL-3"

[build-dependencies]
syntex = { version = "^0.38.0", optional = true }
syntex = { version = "^0.42.0", optional = true }
diesel_codegen_syntex = { version = "^0.7.0", features = ["postgres"], optional = true }

[dependencies]
iron = { version = "^0.3.0", features = ["ssl"] }
hyper = "^0.8.0"
router = "^0.1.0"
mount = "^0.1.0"
persistent = "^0.1.0"
iron = { version = "^0.4.0", features = ["ssl"] }
hyper = "^0.9.0"
router = "^0.4.0"
mount = "^0.2.0"
persistent = "^0.2.0"
plugin = "^0.2.0"
urlencoded = "^0.3.0"
staticfile = "^0.2.0"
urlencoded = "^0.4.0"
staticfile = "^0.3.0"
regex = "^0.1.0"
url = "^1.1.0"
url = "^1.2.0"
chrono = "^0.2.0"
treexml = "^0.3.0"
fs2 = "^0.2.0"
rust-crypto = "^0.2.0"
zip = "^0.1.0"
lazy_static = "^0.2.0"
params = "^0.2.0"
params = "^0.4.0"
semver = { git = "https://github.com/MPIB/semver.git", rev = "65820b04b0a09d35d12df81a3c45aa7564f4a491" }
quick-error = "^1.0.0"
clap = "^2.2.0"
clap = "^2.3.0"
log = "^0.3.0"
simplelog = "^0.2.0"
mustache = "^0.7.0"
rustc-serialize = "^0.3.0"
lazysort = "^0.1.0"
bcrypt = "^0.1.1"
uuid = { version = "^0.2.0", features = ["v4"] }
uuid = { version = "^0.3.0", features = ["v4"] }
toml-config = "^0.4.0"
toml = "^0.1.0"
toml = "^0.2.0"
rand = "^0.3.0"
cookie = "^0.2.0"
cookie = "^0.2.5"
cldap = { git = "https://github.com/MPIB/rust-cldap.git", rev = "cd24a03b5e92d78efe25577732385a0bf47a2360" }
lettre = { git = "https://github.com/lettre/lettre.git", rev = "95e9f31141158866789c243bc234683fb3ff237a" }

Expand Down
15 changes: 4 additions & 11 deletions src/utils/middleware/path_normalize.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,23 +13,16 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.

use iron::{BeforeMiddleware, IronError, IronResult, Request};
use iron::{Url, BeforeMiddleware, IronError, IronResult, Request};

pub struct PathNormalizer;
impl BeforeMiddleware for PathNormalizer
{
fn before(&self, req: &mut Request) -> IronResult<()>
{
if req.url.path.len() > 1 {
let first_elem_empty = &*req.url.path.first().unwrap() == "";
if first_elem_empty {
req.url.path.remove(0);
}
let last_elem = req.url.path.pop().unwrap();
if &*last_elem != "" {
req.url.path.push(last_elem);
}
}
let mut url = req.url.clone().into_generic_url();
url.path_segments_mut().unwrap().pop_if_empty();
req.url = Url::from_generic_url(url).unwrap();
Ok(())
}
fn catch(&self, _: &mut Request, _: IronError) -> IronResult<()>
Expand Down
8 changes: 4 additions & 4 deletions src/utils/middleware/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -68,8 +68,8 @@ impl AroundMiddleware for SessionManager
req.extensions.insert::<Authenticated>((true, Some(user_cookie.value.clone())));
match handler.handle(req) {
Ok(resp) => {
match req.url.path.pop() {
Some(ref x) if x == "logout" => {},
match req.url.path().pop() {
Some(x) if x == "logout" => {},
_ => {
//renew cookie, if set previously
match session_info.remember {
Expand All @@ -86,8 +86,8 @@ impl AroundMiddleware for SessionManager
session_cookie.path = Some(String::from("/"));
user_cookie.path = Some(String::from("/"));

session_cookie.domain = Some(req.url.host.to_string());
user_cookie.domain = Some(req.url.host.to_string());
session_cookie.domain = Some(req.url.host().to_string());
user_cookie.domain = Some(req.url.host().to_string());

jar.add(session_cookie);
jar.add(user_cookie);
Expand Down
89 changes: 45 additions & 44 deletions src/web/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
// You should have received a copy of the GNU Affero General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.

use iron::{Iron, Request, Response, IronResult};
use iron::{Url, Iron, Request, Response, IronResult};
use iron::middleware::Chain;
use iron::headers::UserAgent;
use iron::typemap::Key;
Expand All @@ -24,6 +24,7 @@ use mount::Mount;
use router::Router;
use persistent::{Read, Write};
use staticfile::Static;
use url::Url as RealUrl;

use r2d2::Pool;
use diesel::pg::PgConnection;
Expand Down Expand Up @@ -94,42 +95,42 @@ pub fn start(pool: Pool<ConnectionManager<PgConnection>>, storage: Storage) -> L
Ok(Response::with(status::Ok))
} else {
Ok(Response::with((status::TemporaryRedirect, Redirect({
let mut base = req.url.clone();
base.path.push(String::from("index"));
base
let mut base: RealUrl = req.url.clone().into_generic_url();
base.path_segments_mut().unwrap().push("index");
Url::from_generic_url(base).unwrap()
}))))
}
}
redirect
});
}, "root");
interface.get("/index", {
fn redirect(req: &mut Request) -> IronResult<Response> {
Ok(Response::with((status::TemporaryRedirect, Redirect({
let mut base = req.url.clone();
base.path.push(String::from("1"));
base
let mut base: RealUrl = req.url.clone().into_generic_url();
base.path_segments_mut().unwrap().push("index/1");
Url::from_generic_url(base).unwrap()
}))))
}
redirect
});
interface.get("/index/:page", interface_index);
interface.get("/user", interface_user);
interface.get("/user/edit", interface_user);
interface.post("/user/edit", interface_user_update);
interface.post("/register", interface_register);
interface.post("/login", interface_login);
interface.get("/logout", interface_logout);
interface.post("/apikey/reset", interface_apikey);
interface.post("/apikey/revoke", interface_apikey);
interface.get("/packages/:id", interface_package_newestver);
interface.get("/packages/:id/:version", interface_package);
interface.get("/packages/:id/:version/edit", interface_package);
interface.post("/packages/:id/edit", interface_pkg_update);
interface.post("/packages/:id/:version/edit", interface_pkgver_update);
interface.get("/packages/transfer/:id/:new_maintainer", interface_transfer);
}, "index");
interface.get("/index/:page", interface_index, "index_page");
interface.get("/user", interface_user, "user");
interface.get("/user/edit", interface_user, "user_edit");
interface.post("/user/edit", interface_user_update, "update_user");
interface.post("/register", interface_register, "register");
interface.post("/login", interface_login, "login");
interface.get("/logout", interface_logout, "logout");
interface.post("/apikey/reset", interface_apikey, "reset_apikey");
interface.post("/apikey/revoke", interface_apikey, "revoke_apikey");
interface.get("/packages/:id", interface_package_newestver, "pkg");
interface.get("/packages/:id/:version", interface_package, "pkgversion");
interface.get("/packages/:id/:version/edit", interface_package, "update_pkg");
interface.post("/packages/:id/edit", interface_pkg_update, "edit_pkg");
interface.post("/packages/:id/:version/edit", interface_pkgver_update, "edit_pkgver");
interface.get("/packages/transfer/:id/:new_maintainer", interface_transfer, "transfer");
if CONFIG.auth.mail.is_some() {
interface.post("/mail_confirmation/resend", interface_mail_resend);
interface.get("/mail_confirmation/:key", interface_mail_confirmation);
interface.post("/mail_confirmation/resend", interface_mail_resend, "mail_resend");
interface.get("/mail_confirmation/:key", interface_mail_confirmation, "mail_confirm");
}

mount.mount("/css/", Static::new(PathBuf::from(CONFIG.web.resources.clone()).join("css")));
Expand Down Expand Up @@ -173,36 +174,36 @@ pub fn start(pool: Pool<ConnectionManager<PgConnection>>, storage: Storage) -> L
{
let mut feed = Router::new();

feed.get("", index);
feed.get("$metadata", metadata);
feed.get("", index, "index");
feed.get("$metadata", metadata, "metadata");

// get all package(s)
feed.get("Packages()", packages);
feed.get("Packages", packages);
feed.get("Packages()", packages, "packages()");
feed.get("Packages", packages, "packages");

// download specific package
feed.get("package/:id/:version", download);
feed.get("package/:id/:version", download, "download");

// add/delete package
feed.post("package", upload);
feed.put("package", upload);
feed.delete("package/:id/:version", delete);
feed.delete("package/:id", delete);
feed.post("package", upload, "upload_post");
feed.put("package", upload, "upload_put");
feed.delete("package/:id/:version", delete, "delete_pkgver");
feed.delete("package/:id", delete, "delete_pkg");

// functions aka filter packages
feed.get("FindPackagesById()", packagesbyid);
feed.get("FindPackagesById", packagesbyid);
feed.get("GetUpdates()", updates);
feed.get("GetUpdates", updates);
feed.get("Search()", search);
feed.get("Search", search);
feed.get("FindPackagesById()", packagesbyid, "pkgbyid()");
feed.get("FindPackagesById", packagesbyid, "pkgbyid");
feed.get("GetUpdates()", updates, "updates()");
feed.get("GetUpdates", updates, "updates");
feed.get("Search()", search, "search()");
feed.get("Search", search, "search");

// tab-completion
feed.get("package-ids", complete_ids);
feed.get("package-versions/:id", complete_ver);
feed.get("package-ids", complete_ids, "pkgids");
feed.get("package-versions/:id", complete_ver, "pkgverids");

//Package(Id=':id',Version=':version')
feed.get("*", package); //Router does not handle this correctly
feed.get("*", package, "pkg()"); //Router does not handle this correctly

mount.mount("/api/v2/", feed);
}
Expand Down
6 changes: 3 additions & 3 deletions src/web/views/api/index.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,10 @@ use iron::mime::Mime;
pub fn index(req: &mut Request) -> IronResult<Response> {
let base_url = {
let url = &req.url;
if (&*url.scheme == "http" && url.port == 80) || (&*url.scheme == "https" && url.port == 443) {
format!("{}://{}", url.scheme, url.host)
if (&*url.scheme() == "http" && url.port() == 80) || (&*url.scheme() == "https" && url.port() == 443) {
format!("{}://{}", url.scheme(), url.host())
} else {
format!("{}://{}:{}", url.scheme, url.host, url.port)
format!("{}://{}:{}", url.scheme(), url.host(), url.port())
}
};
Ok(Response::with((status::Ok, format!(
Expand Down
8 changes: 4 additions & 4 deletions src/web/views/api/package.rs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ lazy_static! {

pub fn package(req: &mut Request) -> IronResult<Response> {

let url = req.url.path.pop().unwrap();
let url = req.url.path().pop().unwrap();
let parse = match PKG_DESC.captures(&url) {
Some(matched) => matched,
None => return Ok(Response::with(status::NotFound)),
Expand All @@ -49,10 +49,10 @@ pub fn package(req: &mut Request) -> IronResult<Response> {

let base_url = {
let url = &req.url;
if (&*url.scheme == "http" && url.port == 80) || (&*url.scheme == "https" && url.port == 443) {
format!("{}://{}", url.scheme, url.host)
if (&*url.scheme() == "http" && url.port() == 80) || (&*url.scheme() == "https" && url.port() == 443) {
format!("{}://{}", url.scheme(), url.host())
} else {
format!("{}://{}:{}", url.scheme, url.host, url.port)
format!("{}://{}:{}", url.scheme(), url.host(), url.port())
}
};
let connection_pool = req.extensions.get::<Read<ConnectionPoolKey>>().unwrap();
Expand Down
6 changes: 3 additions & 3 deletions src/web/views/api/packages.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ use ::web::backend::xml::ToNugetFeedXml;
pub fn packages(req: &mut Request) -> IronResult<Response> {
let base_url = {
let url = &req.url;
if (&*url.scheme == "http" && url.port == 80) || (&*url.scheme == "https" && url.port == 443) {
format!("{}://{}", url.scheme, url.host)
if (&*url.scheme() == "http" && url.port() == 80) || (&*url.scheme() == "https" && url.port() == 443) {
format!("{}://{}", url.scheme(), url.host())
} else {
format!("{}://{}:{}", url.scheme, url.host, url.port)
format!("{}://{}:{}", url.scheme(), url.host(), url.port())
}
};
let connection_pool = req.extensions.get::<Read<ConnectionPoolKey>>().unwrap();
Expand Down
6 changes: 3 additions & 3 deletions src/web/views/api/packagesbyid.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ pub fn packagesbyid(req: &mut Request) -> IronResult<Response> {

let base_url = {
let url = &req.url;
if (&*url.scheme == "http" && url.port == 80) || (&*url.scheme == "https" && url.port == 443) {
format!("{}://{}", url.scheme, url.host)
if (&*url.scheme() == "http" && url.port() == 80) || (&*url.scheme() == "https" && url.port() == 443) {
format!("{}://{}", url.scheme(), url.host())
} else {
format!("{}://{}:{}", url.scheme, url.host, url.port)
format!("{}://{}:{}", url.scheme(), url.host(), url.port())
}
};
let connection_pool = req.extensions.get::<Read<ConnectionPoolKey>>().unwrap();
Expand Down
6 changes: 3 additions & 3 deletions src/web/views/api/search.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ pub fn search(req: &mut Request) -> IronResult<Response> {
let params = req.get_ref::<Params>().unwrap().clone();
let base_url = {
let url = &req.url;
if (&*url.scheme == "http" && url.port == 80) || (&*url.scheme == "https" && url.port == 443) {
format!("{}://{}", url.scheme, url.host)
if (&*url.scheme() == "http" && url.port() == 80) || (&*url.scheme() == "https" && url.port() == 443) {
format!("{}://{}", url.scheme(), url.host())
} else {
format!("{}://{}:{}", url.scheme, url.host, url.port)
format!("{}://{}:{}", url.scheme(), url.host(), url.port())
}
};

Expand Down
6 changes: 3 additions & 3 deletions src/web/views/api/updates.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,10 @@ pub fn updates(req: &mut Request) -> IronResult<Response> {

let base_url = {
let url = &req.url;
if (&*url.scheme == "http" && url.port == 80) || (&*url.scheme == "https" && url.port == 443) {
format!("{}://{}", url.scheme, url.host)
if (&*url.scheme() == "http" && url.port() == 80) || (&*url.scheme() == "https" && url.port() == 443) {
format!("{}://{}", url.scheme(), url.host())
} else {
format!("{}://{}:{}", url.scheme, url.host, url.port)
format!("{}://{}:{}", url.scheme(), url.host(), url.port())
}
};
let connection_pool = req.extensions.get::<Read<ConnectionPoolKey>>().unwrap();
Expand Down
6 changes: 3 additions & 3 deletions src/web/views/interface/apikey.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@ pub fn apikey(req: &mut Request) -> IronResult<Response>
match User::get(&*connection, username) {
Ok(mut user) => {
if user.confirmed() {
match req.url.path.iter().last() {
Some(x) if x == "reset" => {
match req.url.path().last() {
Some(x) if *x == "reset" => {
match user.generate_apikey(&*connection) {
Ok(user) => Ok(Response::with((Status::Ok, user.apikey().unwrap()))),
_ => Ok(Response::with(Status::InternalServerError)),
}
},
Some(x) if x == "revoke" => {
Some(x) if *x == "revoke" => {
match user.revoke_apikey(&*connection) {
Ok(_) => Ok(Response::with(Status::Ok)),
_ => Ok(Response::with(Status::InternalServerError)),
Expand Down
4 changes: 2 additions & 2 deletions src/web/views/interface/login.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,8 +82,8 @@ pub fn login(req: &mut Request) -> IronResult<Response> {
user_cookie.max_age = Some((session_info.expires - UTC::now()).num_seconds() as u64);
session_cookie.path = Some(String::from("/"));
user_cookie.path = Some(String::from("/"));
session_cookie.domain = Some(req.url.host.to_string());
user_cookie.domain = Some(req.url.host.to_string());
session_cookie.domain = Some(req.url.host().to_string());
user_cookie.domain = Some(req.url.host().to_string());

jar.add(user_cookie);
jar.add(session_cookie);
Expand Down
Loading

0 comments on commit 1f956cf

Please sign in to comment.