diff --git a/src/routes/blogs.rs b/src/routes/blogs.rs index c8439684..d06e56d9 100644 --- a/src/routes/blogs.rs +++ b/src/routes/blogs.rs @@ -19,7 +19,7 @@ use utils; #[get("/~/", rank = 2)] fn details(name: String, conn: DbConn, user: Option) -> Template { - may_fail!(Blog::find_by_fqn(&*conn, name), "Requested blog couldn't be found", |blog| { + may_fail!(user, Blog::find_by_fqn(&*conn, name), "Requested blog couldn't be found", |blog| { let recents = Post::get_recents_for_blog(&*conn, &blog, 5); Template::render("blogs/details", json!({ diff --git a/src/routes/mod.rs b/src/routes/mod.rs index 6c33f75b..735cd4a1 100644 --- a/src/routes/mod.rs +++ b/src/routes/mod.rs @@ -2,7 +2,7 @@ use rocket::response::NamedFile; use std::path::{Path, PathBuf}; macro_rules! may_fail { - ($expr:expr, $template:expr, $msg:expr, | $res:ident | $block:block) => { + ($account:expr, $expr:expr, $template:expr, $msg:expr, | $res:ident | $block:block) => { { let res = $expr; if res.is_some() { @@ -10,18 +10,19 @@ macro_rules! may_fail { $block } else { Template::render(concat!("errors/", $template), json!({ - "error_message": $msg + "error_message": $msg, + "account": $account })) } } }; - ($expr:expr, $msg:expr, | $res:ident | $block:block) => { - may_fail!($expr, "404", $msg, |$res| { + ($account:expr, $expr:expr, $msg:expr, | $res:ident | $block:block) => { + may_fail!($account, $expr, "404", $msg, |$res| { $block }) }; - ($expr:expr, | $res:ident | $block:block) => { - may_fail!($expr, "", |$res| { + ($account:expr, $expr:expr, | $res:ident | $block:block) => { + may_fail!($account, $expr, "", |$res| { $block }) }; diff --git a/src/routes/posts.rs b/src/routes/posts.rs index 79e0a8fe..7bb3841d 100644 --- a/src/routes/posts.rs +++ b/src/routes/posts.rs @@ -27,8 +27,8 @@ fn details(blog: String, slug: String, conn: DbConn, user: Option) -> Temp #[get("/~//?")] fn details_response(blog: String, slug: String, conn: DbConn, user: Option, query: Option) -> Template { - may_fail!(Blog::find_by_fqn(&*conn, blog), "Couldn't find this blog", |blog| { - may_fail!(Post::find_by_slug(&*conn, slug, blog.id), "Couldn't find this post", |post| { + may_fail!(user, Blog::find_by_fqn(&*conn, blog), "Couldn't find this blog", |blog| { + may_fail!(user, Post::find_by_slug(&*conn, slug, blog.id), "Couldn't find this post", |post| { let comments = Comment::list_by_post(&*conn, post.id); Template::render("posts/details", json!({ diff --git a/src/routes/user.rs b/src/routes/user.rs index a2bbfc0b..09a7b93f 100644 --- a/src/routes/user.rs +++ b/src/routes/user.rs @@ -33,7 +33,7 @@ fn me(user: Option) -> Result> { #[get("/@/", rank = 2)] fn details(name: String, conn: DbConn, account: Option) -> Template { - may_fail!(User::find_by_fqn(&*conn, name), "Couldn't find requested user", |user| { + may_fail!(account, User::find_by_fqn(&*conn, name), "Couldn't find requested user", |user| { let recents = Post::get_recents_for_author(&*conn, &user, 6); let reshares = Reshare::get_recents_for_author(&*conn, &user, 6); let user_id = user.id.clone(); @@ -92,7 +92,7 @@ fn follow_auth(name: String) -> Flash { #[get("/@//followers", rank = 2)] fn followers(name: String, conn: DbConn, account: Option) -> Template { - may_fail!(User::find_by_fqn(&*conn, name.clone()), "Couldn't find requested user", |user| { + may_fail!(account, User::find_by_fqn(&*conn, name.clone()), "Couldn't find requested user", |user| { let user_id = user.id.clone(); Template::render("users/followers", json!({