fix redirection to login in src/routes/user.rs

This commit is contained in:
Trinity Pointard 2018-06-07 10:39:22 +02:00
parent b88ee53188
commit 3dcd78f205
2 changed files with 21 additions and 3 deletions

View file

@ -109,8 +109,10 @@ fn main() {
routes::user::details,
routes::user::followers,
routes::user::edit,
routes::user::edit_auth,
routes::user::update,
routes::user::follow,
routes::user::follow_auth,
routes::user::activity_details,
routes::user::outbox,
routes::user::inbox,

View file

@ -2,7 +2,9 @@ use activitystreams_types::{
activity::Follow,
collection::OrderedCollection
};
use rocket::{request::Form, response::Redirect};
use rocket::{request::Form,
response::{Redirect, Flash}
};
use rocket_contrib::Template;
use serde_json;
@ -19,10 +21,14 @@ use models::{
reshares::Reshare,
users::*
};
use utils;
#[get("/me")]
fn me(user: User) -> Redirect {
Redirect::to(format!("/@/{}/", user.username).as_ref())
fn me(user: Option<User>) -> Result<Redirect,Flash<Redirect>> {
match user {
Some(user) => Ok(Redirect::to(format!("/@/{}/", user.username).as_ref())),
None => Err(utils::requires_login("", "/me"))
}
}
#[get("/@/<name>", rank = 2)]
@ -83,6 +89,11 @@ fn follow(name: String, conn: DbConn, user: User) -> Redirect {
Redirect::to(format!("/@/{}/", name).as_ref())
}
#[get("/@/<name>/follow", rank = 2)]
fn follow_auth(name: String) -> Flash<Redirect> {
utils::requires_login("You need to belogged in order to follow someone", &format!("/@/{}/follow", name))
}
#[get("/@/<name>/followers", rank = 2)]
fn followers(name: String, conn: DbConn, account: Option<User>) -> Template {
let user = User::find_by_fqn(&*conn, name.clone()).unwrap();
@ -125,6 +136,11 @@ fn edit(name: String, user: User) -> Option<Template> {
}
}
#[get("/@/<name>/edit", rank = 2)]
fn edit_auth(name: String) -> Flash<Redirect> {
utils::requires_login("You need to be logged in order to edit your profile", &format!("/@/{}/edit", name))
}
#[derive(FromForm)]
struct UpdateUserForm {
display_name: Option<String>,