mirror of
https://github.com/mealie-recipes/mealie.git
synced 2025-07-09 03:04:54 -04:00
fix: Use reserved example.com as bogus instead of email.com domain. (#2551)
`email.com` is not a reserved domain, incorrect configuration could result in unintentional effects. `example.com` is reserved by IANA for bogus purposes, see RFC 6761.
This commit is contained in:
parent
a22d500603
commit
bb9afd86c1
@ -231,7 +231,7 @@ def recipe_data(name: str, slug: str, id: str, userId: str, groupId: str) -> dic
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def login(username="changeme@email.com", password="MyPassword"):
|
def login(username="changeme@example.com", password="MyPassword"):
|
||||||
payload = {"username": username, "password": password}
|
payload = {"username": username, "password": password}
|
||||||
r = requests.post("http://localhost:9000/api/auth/token", payload)
|
r = requests.post("http://localhost:9000/api/auth/token", payload)
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ function import_from_file () {
|
|||||||
}
|
}
|
||||||
|
|
||||||
input="list"
|
input="list"
|
||||||
mail="changeme@email.com"
|
mail="changeme@example.com"
|
||||||
password="MyPassword"
|
password="MyPassword"
|
||||||
mealie_url=http://localhost:9000
|
mealie_url=http://localhost:9000
|
||||||
|
|
||||||
@ -85,7 +85,7 @@ def import_from_file(input_file, token, mealie_url):
|
|||||||
print(response.text)
|
print(response.text)
|
||||||
|
|
||||||
input_file="list"
|
input_file="list"
|
||||||
mail="changeme@email.com"
|
mail="changeme@example.com"
|
||||||
password="MyPassword"
|
password="MyPassword"
|
||||||
mealie_url="http://localhost:9000"
|
mealie_url="http://localhost:9000"
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
| PUID | 911 | UserID permissions between host OS and container |
|
| PUID | 911 | UserID permissions between host OS and container |
|
||||||
| PGID | 911 | GroupID permissions between host OS and container |
|
| PGID | 911 | GroupID permissions between host OS and container |
|
||||||
| DEFAULT_GROUP | Home | The default group for users |
|
| DEFAULT_GROUP | Home | The default group for users |
|
||||||
| DEFAULT_EMAIL | changeme@email.com | The default username for the superuser |
|
| DEFAULT_EMAIL | changeme@example.com | The default username for the superuser |
|
||||||
| BASE_URL | http://localhost:8080 | Used for Notifications |
|
| BASE_URL | http://localhost:8080 | Used for Notifications |
|
||||||
| TOKEN_TIME | 48 | The time in hours that a login/auth token is valid |
|
| TOKEN_TIME | 48 | The time in hours that a login/auth token is valid |
|
||||||
| API_PORT | 9000 | The port exposed by backend API. **Do not change this if you're running in Docker** |
|
| API_PORT | 9000 | The port exposed by backend API. **Do not change this if you're running in Docker** |
|
||||||
|
@ -69,7 +69,7 @@ You should see the containers start up without error. You should now be able to
|
|||||||
|
|
||||||
!!! tip "Default Credentials"
|
!!! tip "Default Credentials"
|
||||||
|
|
||||||
**Username:** changeme@email.com
|
**Username:** changeme@example.com
|
||||||
|
|
||||||
**Password:** MyPassword
|
**Password:** MyPassword
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
@ -5,7 +5,7 @@
|
|||||||
<v-banner v-if="isDemo" sticky>
|
<v-banner v-if="isDemo" sticky>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<b> {{ $t("demo.info_message_with_version", { version: version }) }} </b> |
|
<b> {{ $t("demo.info_message_with_version", { version: version }) }} </b> |
|
||||||
{{ $t("demo.demo_username", { username: "changeme@email.com" }) }} |
|
{{ $t("demo.demo_username", { username: "changeme@example.com" }) }} |
|
||||||
{{ $t("demo.demo_password", { password: "demo" }) }}
|
{{ $t("demo.demo_password", { password: "demo" }) }}
|
||||||
</div>
|
</div>
|
||||||
</v-banner>
|
</v-banner>
|
||||||
|
@ -81,7 +81,7 @@ class AppSettings(BaseSettings):
|
|||||||
return self.DB_PROVIDER.db_url_public if self.DB_PROVIDER else None
|
return self.DB_PROVIDER.db_url_public if self.DB_PROVIDER else None
|
||||||
|
|
||||||
DEFAULT_GROUP: str = "Home"
|
DEFAULT_GROUP: str = "Home"
|
||||||
DEFAULT_EMAIL: str = "changeme@email.com"
|
DEFAULT_EMAIL: str = "changeme@example.com"
|
||||||
DEFAULT_PASSWORD: str = "MyPassword"
|
DEFAULT_PASSWORD: str = "MyPassword"
|
||||||
|
|
||||||
# ===============================================
|
# ===============================================
|
||||||
|
@ -12,7 +12,7 @@ def dev_users() -> list[dict]:
|
|||||||
{
|
{
|
||||||
"full_name": "Jason",
|
"full_name": "Jason",
|
||||||
"username": "jason",
|
"username": "jason",
|
||||||
"email": "jason@email.com",
|
"email": "jason@example.com",
|
||||||
"password": hash_password(settings.DEFAULT_PASSWORD),
|
"password": hash_password(settings.DEFAULT_PASSWORD),
|
||||||
"group": settings.DEFAULT_GROUP,
|
"group": settings.DEFAULT_GROUP,
|
||||||
"admin": False,
|
"admin": False,
|
||||||
@ -20,7 +20,7 @@ def dev_users() -> list[dict]:
|
|||||||
{
|
{
|
||||||
"full_name": "Bob",
|
"full_name": "Bob",
|
||||||
"username": "bob",
|
"username": "bob",
|
||||||
"email": "bob@email.com",
|
"email": "bob@example.com",
|
||||||
"password": hash_password(settings.DEFAULT_PASSWORD),
|
"password": hash_password(settings.DEFAULT_PASSWORD),
|
||||||
"group": settings.DEFAULT_GROUP,
|
"group": settings.DEFAULT_GROUP,
|
||||||
"admin": False,
|
"admin": False,
|
||||||
@ -28,7 +28,7 @@ def dev_users() -> list[dict]:
|
|||||||
{
|
{
|
||||||
"full_name": "Sarah",
|
"full_name": "Sarah",
|
||||||
"username": "sarah",
|
"username": "sarah",
|
||||||
"email": "sarah@email.com",
|
"email": "sarah@example.com",
|
||||||
"password": hash_password(settings.DEFAULT_PASSWORD),
|
"password": hash_password(settings.DEFAULT_PASSWORD),
|
||||||
"group": settings.DEFAULT_GROUP,
|
"group": settings.DEFAULT_GROUP,
|
||||||
"admin": False,
|
"admin": False,
|
||||||
@ -36,7 +36,7 @@ def dev_users() -> list[dict]:
|
|||||||
{
|
{
|
||||||
"full_name": "Sammy",
|
"full_name": "Sammy",
|
||||||
"username": "sammy",
|
"username": "sammy",
|
||||||
"email": "sammy@email.com",
|
"email": "sammy@example.com",
|
||||||
"password": hash_password(settings.DEFAULT_PASSWORD),
|
"password": hash_password(settings.DEFAULT_PASSWORD),
|
||||||
"group": settings.DEFAULT_GROUP,
|
"group": settings.DEFAULT_GROUP,
|
||||||
"admin": False,
|
"admin": False,
|
||||||
|
@ -89,7 +89,7 @@ class UserBase(MealieModel):
|
|||||||
"example": {
|
"example": {
|
||||||
"username": "ChangeMe",
|
"username": "ChangeMe",
|
||||||
"fullName": "Change Me",
|
"fullName": "Change Me",
|
||||||
"email": "changeme@email.com",
|
"email": "changeme@example.com",
|
||||||
"group": settings.DEFAULT_GROUP,
|
"group": settings.DEFAULT_GROUP,
|
||||||
"admin": "false",
|
"admin": "false",
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
DEFAULT_GROUP=Home
|
DEFAULT_GROUP=Home
|
||||||
|
|
||||||
# The Default Credentials for the Super User
|
# The Default Credentials for the Super User
|
||||||
DEFAULT_EMAIL=changeme@email.com
|
DEFAULT_EMAIL=changeme@example.com
|
||||||
DEFAULT_PASSWORD=MyPassword
|
DEFAULT_PASSWORD=MyPassword
|
||||||
|
|
||||||
# Determines Production Mode, This will set the directory path to use for data storage
|
# Determines Production Mode, This will set the directory path to use for data storage
|
||||||
|
@ -124,7 +124,7 @@ def test_self_promote_admin(api_client: TestClient, unique_user: TestUser):
|
|||||||
update_data = {
|
update_data = {
|
||||||
"id": unique_user.user_id,
|
"id": unique_user.user_id,
|
||||||
"fullName": "Updated Name",
|
"fullName": "Updated Name",
|
||||||
"email": "user@email.com",
|
"email": "user@example.com",
|
||||||
"group": "Home",
|
"group": "Home",
|
||||||
"admin": True,
|
"admin": True,
|
||||||
}
|
}
|
||||||
|
@ -31,7 +31,7 @@ def test_validators_username(api_client: TestClient, unique_user: TestUser):
|
|||||||
def test_validators_email(api_client: TestClient, unique_user: TestUser):
|
def test_validators_email(api_client: TestClient, unique_user: TestUser):
|
||||||
emails = [
|
emails = [
|
||||||
SimpleCase(value=unique_user.email, is_valid=False),
|
SimpleCase(value=unique_user.email, is_valid=False),
|
||||||
SimpleCase(value=f"{random_string()}@email.com", is_valid=True),
|
SimpleCase(value=f"{random_string()}@example.com", is_valid=True),
|
||||||
]
|
]
|
||||||
|
|
||||||
for user in emails:
|
for user in emails:
|
||||||
|
@ -4,7 +4,7 @@ from mealie.core.config import get_app_settings
|
|||||||
from mealie.services.email import EmailService
|
from mealie.services.email import EmailService
|
||||||
from mealie.services.email.email_senders import ABCEmailSender
|
from mealie.services.email.email_senders import ABCEmailSender
|
||||||
|
|
||||||
FAKE_ADDRESS = "my_secret_email@email.com"
|
FAKE_ADDRESS = "my_secret_email@example.com"
|
||||||
|
|
||||||
SUBJECTS = {"Mealie Forgot Password", "Invitation to join Mealie", "Test Email"}
|
SUBJECTS = {"Mealie Forgot Password", "Invitation to join Mealie", "Test Email"}
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ def test_create_user_registration() -> None:
|
|||||||
CreateUserRegistration(
|
CreateUserRegistration(
|
||||||
group="Home",
|
group="Home",
|
||||||
group_token=None,
|
group_token=None,
|
||||||
email="SomeValidEmail@email.com",
|
email="SomeValidEmail@example.com",
|
||||||
username="SomeValidUsername",
|
username="SomeValidUsername",
|
||||||
password="SomeValidPassword",
|
password="SomeValidPassword",
|
||||||
password_confirm="SomeValidPassword",
|
password_confirm="SomeValidPassword",
|
||||||
@ -18,7 +18,7 @@ def test_create_user_registration() -> None:
|
|||||||
CreateUserRegistration(
|
CreateUserRegistration(
|
||||||
group=None,
|
group=None,
|
||||||
group_token="asdfadsfasdfasdfasdf",
|
group_token="asdfadsfasdfasdfasdf",
|
||||||
email="SomeValidEmail@email.com",
|
email="SomeValidEmail@example.com",
|
||||||
username="SomeValidUsername",
|
username="SomeValidUsername",
|
||||||
password="SomeValidPassword",
|
password="SomeValidPassword",
|
||||||
password_confirm="SomeValidPassword",
|
password_confirm="SomeValidPassword",
|
||||||
@ -33,7 +33,7 @@ def test_group_or_token_validator(group, group_token) -> None:
|
|||||||
CreateUserRegistration(
|
CreateUserRegistration(
|
||||||
group=group,
|
group=group,
|
||||||
group_token=group_token,
|
group_token=group_token,
|
||||||
email="SomeValidEmail@email.com",
|
email="SomeValidEmail@example.com",
|
||||||
username="SomeValidUsername",
|
username="SomeValidUsername",
|
||||||
password="SomeValidPassword",
|
password="SomeValidPassword",
|
||||||
password_confirm="SomeValidPassword",
|
password_confirm="SomeValidPassword",
|
||||||
@ -45,7 +45,7 @@ def test_group_or_token_validator(group, group_token) -> None:
|
|||||||
def test_group_no_args_passed() -> None:
|
def test_group_no_args_passed() -> None:
|
||||||
with pytest.raises(ValueError):
|
with pytest.raises(ValueError):
|
||||||
CreateUserRegistration(
|
CreateUserRegistration(
|
||||||
email="SomeValidEmail@email.com",
|
email="SomeValidEmail@example.com",
|
||||||
username="SomeValidUsername",
|
username="SomeValidUsername",
|
||||||
password="SomeValidPassword",
|
password="SomeValidPassword",
|
||||||
password_confirm="SomeValidPassword",
|
password_confirm="SomeValidPassword",
|
||||||
@ -59,7 +59,7 @@ def test_password_validator() -> None:
|
|||||||
CreateUserRegistration(
|
CreateUserRegistration(
|
||||||
group=None,
|
group=None,
|
||||||
group_token="asdfadsfasdfasdfasdf",
|
group_token="asdfadsfasdfasdfasdf",
|
||||||
email="SomeValidEmail@email.com",
|
email="SomeValidEmail@example.com",
|
||||||
username="SomeValidUsername",
|
username="SomeValidUsername",
|
||||||
password="SomeValidPassword",
|
password="SomeValidPassword",
|
||||||
password_confirm="PasswordDefNotMatch",
|
password_confirm="PasswordDefNotMatch",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user