use rocket config to (en|dis)able auth
This commit is contained in:
parent
c2b785f54b
commit
35ff408365
|
@ -1,5 +1,7 @@
|
|||
[development]
|
||||
template_dir = "templates/"
|
||||
disable_auth = true
|
||||
|
||||
[production]
|
||||
template_dir = "templates/"
|
||||
disable_auth = false
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
use std::env;
|
||||
|
||||
use log::info;
|
||||
use rocket::form::{Form, FromForm};
|
||||
use rocket::request::FlashMessage;
|
||||
use rocket::http::{Cookie, CookieJar, Status};
|
||||
use rocket::request::{self, FlashMessage, FromRequest, Request};
|
||||
use rocket::response::{Flash, Redirect};
|
||||
use rocket::serde::json::Json;
|
||||
use rocket::serde::{Deserialize, Serialize};
|
||||
use rocket::{get, post};
|
||||
use rocket::serde::{
|
||||
json::{Json, Value},
|
||||
Deserialize, Serialize,
|
||||
};
|
||||
use rocket::{get, post, Config};
|
||||
use rocket_dyn_templates::Template;
|
||||
|
||||
use peach_lib::error::PeachError;
|
||||
|
@ -14,9 +15,6 @@ use peach_lib::password_utils;
|
|||
|
||||
use crate::error::PeachWebError;
|
||||
use crate::utils::{build_json_response, TemplateOrRedirect};
|
||||
use rocket::http::{Cookie, CookieJar, Status};
|
||||
use rocket::request::{self, FromRequest, Request};
|
||||
use rocket::serde::json::Value;
|
||||
|
||||
// HELPERS AND STRUCTS FOR AUTHENTICATION WITH COOKIES
|
||||
|
||||
|
@ -44,10 +42,15 @@ impl<'r> FromRequest<'r> for Authenticated {
|
|||
type Error = LoginError;
|
||||
|
||||
async fn from_request(req: &'r Request<'_>) -> request::Outcome<Self, Self::Error> {
|
||||
// check for disable auth env var; set to false if unset
|
||||
let authentication_is_disabled =
|
||||
env::var("DISABLE_ROCKET_AUTH").unwrap_or_else(|_| "false".to_string());
|
||||
if authentication_is_disabled == "true" {
|
||||
// check for `disable_auth` config value; set to `false` if unset
|
||||
// can be set via the `ROCKET_DISABLE_AUTH` environment variable
|
||||
// - env var, if set, takes precedence over value defined in `Rocket.toml`
|
||||
let authentication_is_disabled: bool = match Config::figment().find_value("disable_auth") {
|
||||
// deserialize the boolean value; set to `false` if an error is encountered
|
||||
Ok(value) => value.deserialize().unwrap_or(false),
|
||||
Err(_) => false,
|
||||
};
|
||||
if authentication_is_disabled {
|
||||
let auth = Authenticated {};
|
||||
request::Outcome::Success(auth)
|
||||
} else {
|
||||
|
|
Loading…
Reference in New Issue