deduplicate code
This commit is contained in:
parent
0b34b776ac
commit
3f01bf39b3
@ -203,15 +203,13 @@ impl<'r> FromRequest<'r> for CoxUser {
|
||||
type Error = LoginError;
|
||||
|
||||
async fn from_request(req: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
|
||||
match req.cookies().get_private("loggedin_user") {
|
||||
Some(user) => {
|
||||
let user: User = serde_json::from_str(user.value()).unwrap(); //TODO: fixme
|
||||
match user.try_into() {
|
||||
match User::from_request(req).await {
|
||||
Outcome::Success(user) => match user.try_into() {
|
||||
Ok(user) => Outcome::Success(user),
|
||||
Err(_) => Outcome::Failure((Status::Unauthorized, LoginError::NotAnAdmin)),
|
||||
}
|
||||
}
|
||||
None => Outcome::Failure((Status::Unauthorized, LoginError::NotLoggedIn)),
|
||||
Err(_) => Outcome::Failure((Status::Unauthorized, LoginError::NotACox)),
|
||||
},
|
||||
Outcome::Failure(f) => Outcome::Failure(f),
|
||||
Outcome::Forward(f) => Outcome::Forward(f),
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -238,15 +236,13 @@ impl<'r> FromRequest<'r> for AdminUser {
|
||||
type Error = LoginError;
|
||||
|
||||
async fn from_request(req: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
|
||||
match req.cookies().get_private("loggedin_user") {
|
||||
Some(user) => {
|
||||
let user: User = serde_json::from_str(user.value()).unwrap(); //TODO: fixme
|
||||
match user.try_into() {
|
||||
match User::from_request(req).await {
|
||||
Outcome::Success(user) => match user.try_into() {
|
||||
Ok(user) => Outcome::Success(user),
|
||||
Err(_) => Outcome::Failure((Status::Unauthorized, LoginError::NotAnAdmin)),
|
||||
}
|
||||
}
|
||||
None => Outcome::Failure((Status::Unauthorized, LoginError::NotLoggedIn)),
|
||||
},
|
||||
Outcome::Failure(f) => Outcome::Failure(f),
|
||||
Outcome::Forward(f) => Outcome::Forward(f),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user