clippy fixes and env docs update

This commit is contained in:
realaravinth 2021-08-08 18:29:17 +05:30
parent 65ffc37549
commit a5558e4b6f
No known key found for this signature in database
GPG key ID: AD9F0F08E855ED88
6 changed files with 49 additions and 47 deletions

View file

@ -1,6 +1,6 @@
# Configuration
mcaptcha is highly configurable.
mCaptcha is highly configurable.
Configuration is applied/merged in the following order:
@ -11,52 +11,54 @@ Configuration is applied/merged in the following order:
## Setup
### Environment variables:
### Environment variables
Setting environment variables are optional. The configuration files have
all the necessary parameters listed. By setting environment variables,
you will be overriding the values set in the configuration files.
#### Database:
### General
| Name | Value |
| ---------------------- | --------------------------------------------------------------------------------- |
| `MCAPTCHA_CONFIG` | Path to configuration file |
| `MCAPTCHA_COMMERCIAL` | Does this instance offer commercial plans? Please consider donating if it does :D |
| `MCAPTCHA_SOURCE_CODE` | Link to the source code of this instance |
#### Database
| Name | Value |
| ------------------------------------ | ------------------------------------------------------------- |
| `MCAPTCHA_DATEBASE_PASSWORD` | Postgres password |
| `MCAPTCHA_DATEBASE_NAME` | Postgres database name |
| `MCAPTCHA_DATEBASE_PORT` | Postgres port |
| `MCAPTCHA_DATEBASE_HOSTNAME` | Postgres hostmane |
| `MCAPTCHA_DATEBASE_HOSTNAME` | Postgres hostname |
| `MCAPTCHA_DATEBASE_USERNAME` | Postgres username |
| `MCAPTCHA_DATEBASE_POOL` | Postgres database connection pool size |
| `DATABSE_URL` (overrides above vars) | databse URL in `postgres://user:pass@host:port/dbname` format |
#### Redis:
#### Redis
| Name | Value |
| --------------------- | -------------------------- |
| `MCAPTCHA_REDIS_URL` | Redis URL |
| `MCAPTCHA_REDIS_POOL` | Redis connection pool size |
#### Server:
#### Server
| Name | Value |
| ---------------------------------------- | ------------------------------------------------------ |
| `MCAPTCHA_SERVER_PORT` | The port on which you want mcaptcha to listen to |
| `PORT`(overrides `MCAPTCHA_SERVER_PORT`) | The port on which you want mcaptcha to listen to |
| `MCAPTCHA_SERVER_IP` | The IP address on which you want mcaptcha to listen to |
| `MCAPTCHA_SERVER_DOMAIN` | Domain under which mcaptcha will be\* |
| `MCAPTCHA_SERVER_COOKIE_SECRET` | Cookie secret, must be long and random |
| `MCAPTCHA_SERVER_ALLOW_REGISTRATION` | `bool` that controls | | registration |
| Name | Value |
| ---------------------------------------- | ---------------------------------------------------------------------------------- |
| `MCAPTCHA_SERVER_PORT` | The port on which you want mCaptcha to listen to |
| `PORT`(overrides `MCAPTCHA_SERVER_PORT`) | The port on which you want mCaptcha to listen to |
| `MCAPTCHA_SERVER_IP` | The IP address on which you want mCaptcha to listen to |
| `MCAPTCHA_SERVER_DOMAIN` | Domain under which mCaptcha will be\* |
| `MCAPTCHA_SERVER_COOKIE_SECRET` | Cookie secret, must be long and random |
| `MCAPTCHA_SERVER_ALLOW_REGISTRATION` | `bool` that controls registration |
| `MCAPTCHA_SERVER_PROXY_HAS_TLS` | Is mCaptcha behind a proxy? If yes, mCaptcha can send additional headers like HSTS |
\* Authentication doesn't work without `MCAPTCHA_DOMAIN` set to the correct
domain
\* Authentication doesn't work without `MCAPTCHA_DOMAIN` set to the correct domain
### Configuration file location:
| Name | Value |
| ----------------- | ------------------- |
| `MCAPTCHA_CONFIG` | Path to config file |
### Proof of work:
### Proof of work
| Name | Value |
| ------------------- | --------------------------------------------------------------------------------------- |

View file

@ -1,19 +1,19 @@
/*
* Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
* Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
use actix_identity::Identity;
use actix_web::{web, HttpResponse, Responder};
use argon2_creds::Config;
@ -166,7 +166,7 @@ mod tests {
bad_post_req_test(
NAME,
&new_password,
new_password,
ROUTES.account.update_password,
&update_password,
ServiceError::PasswordsDontMatch,
@ -181,7 +181,7 @@ mod tests {
bad_post_req_test(
NAME,
&new_password,
new_password,
ROUTES.account.update_password,
&update_password,
ServiceError::WrongPassword,

View file

@ -78,7 +78,7 @@ pub mod runners {
use sqlx::Error::RowNotFound;
let verify = |stored: &str, received: &str| {
if Config::verify(&stored, &received)? {
if Config::verify(stored, received)? {
Ok(())
} else {
Err(ServiceError::WrongPassword)
@ -144,7 +144,7 @@ pub mod runners {
let hash = data.creds.password(&payload.password)?;
if let Some(email) = &payload.email {
data.creds.email(&email)?;
data.creds.email(email)?;
}
let mut secret;

View file

@ -301,7 +301,7 @@ mod tests {
let add_token_resp = test::call_service(
&app,
post_request!(&update_level, &ROUTES.levels.update)
post_request!(&update_level, ROUTES.levels.update)
.cookie(cookies.clone())
.to_request(),
)

View file

@ -24,7 +24,7 @@ impl FileMap {
#[allow(clippy::new_without_default)]
pub fn new() -> Self {
let map = include_str!("../cache_buster_data.json");
let files = Files::new(&map);
let files = Files::new(map);
Self { files }
}
pub fn get<'a>(&'a self, path: &'a str) -> Option<&'a str> {

View file

@ -72,7 +72,7 @@ impl StatsUnixTimestamp {
/// featch PoWConfig confirms
#[inline]
fn unix_timestamp(dates: &Vec<Date>) -> Vec<i64> {
fn unix_timestamp(dates: &[Date]) -> Vec<i64> {
let mut res: Vec<i64> = Vec::with_capacity(dates.len());
dates
@ -193,7 +193,7 @@ mod tests {
let (_, _, _, token_key) = add_levels_util(NAME, PASSWORD).await;
let key = token_key.key.clone();
let stats = Stats::new(&NAME, &key, &data.db).await.unwrap();
let stats = Stats::new(NAME, &key, &data.db).await.unwrap();
assert_eq!(stats.config_fetches.len(), 0);
assert_eq!(stats.solves.len(), 0);
@ -205,7 +205,7 @@ mod tests {
record_confirm(&key, &data.db)
);
let stats = Stats::new(&NAME, &key, &data.db).await.unwrap();
let stats = Stats::new(NAME, &key, &data.db).await.unwrap();
assert_eq!(stats.config_fetches.len(), 1);
assert_eq!(stats.solves.len(), 1);