Skip to content

Commit 274d068

Browse files
authored
Merge pull request #1 from lexxai/reset_password
Reset password
2 parents 30b4f8b + aad5a9c commit 274d068

21 files changed

+170
-32
lines changed

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,3 +199,20 @@ SQL:
199199

200200
#### ADDON SOLUTION 7.
201201
![addon_7](doc/addon_7_confirm.png)
202+
203+
204+
205+
206+
## RESET PASSWORD
207+
208+
![](doc/reset-password-forgot.png)
209+
210+
![](doc/reset-password-req.png)
211+
212+
![](doc/reset-password-req_sent.png)
213+
214+
![](doc/reset-password-email.png)
215+
216+
![](doc/reset-password-new-pwd.png)
217+
218+
![](doc/reset-password-completed.png)

doc/env

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
1+
SECRET_KEY="django-secure-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
2+
13
POSTGRES_PASSWORD=XXXXXXX
24
POSTGRES_HOST=pg
5+
6+
MAIL_USERNAME=xxxxxxx@meta.ua
7+
MAIL_PASSWORD=uuuuuuuuuuuu
8+
MAIL_FROM=xxxxxxu@meta.ua
9+
MAIL_PORT=465
10+
MAIL_SERVER=smtp.meta.ua

doc/reset-password-completed.png

20.7 KB
Loading

doc/reset-password-email.png

31.2 KB
Loading

doc/reset-password-forgot.png

35.1 KB
Loading

doc/reset-password-new-pwd.png

73.9 KB
Loading

doc/reset-password-req.png

34.6 KB
Loading

doc/reset-password-req_sent.png

44.1 KB
Loading

notes/notes/settings.py

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,27 @@
1414
from dotenv import load_dotenv
1515
import os
1616

17+
1718
# Build paths inside the project like this: BASE_DIR / 'subdir'.
1819
BASE_DIR = Path(__file__).resolve().parent.parent
1920

20-
MEDIA_ROOT = BASE_DIR / 'media'
21-
MEDIA_URL = '/media/'
21+
SECRET_KEY = os.getenv("SECRET_KEY")
22+
23+
if not os.getenv("SECRET_KEY"):
24+
load_dotenv(BASE_DIR.parent.joinpath('.env'))
25+
SECRET_KEY = os.getenv("SECRET_KEY")
26+
27+
assert SECRET_KEY is not None, "ENVIROMENT NOT SET"
28+
29+
MEDIA_ROOT = BASE_DIR / "media"
30+
MEDIA_URL = "/media/"
2231

2332

2433
# Quick-start development settings - unsuitable for production
2534
# See https://docs.djangoproject.com/en/4.2/howto/deployment/checklist/
2635

2736
# SECURITY WARNING: keep the secret key used in production secret!
28-
SECRET_KEY = "django-insecure-*&af@8so2^humwnzi7wk^#z6p-6$mnpe(g(8%=djywwe46=r8^"
37+
2938

3039
# SECURITY WARNING: don't run with debug turned on in production!
3140
DEBUG = True
@@ -143,25 +152,35 @@
143152

144153
DEFAULT_AUTO_FIELD = "django.db.models.BigAutoField"
145154

155+
EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
156+
EMAIL_HOST = os.getenv("MAIL_SERVER", "smtp.meta.ua")
157+
EMAIL_PORT = int(os.getenv("MAIL_PORT", 465))
158+
EMAIL_STARTTLS = False
159+
EMAIL_USE_SSL = True
160+
EMAIL_USE_TLS = False
161+
EMAIL_HOST_USER = os.getenv("MAIL_USERNAME", "youruser@meta.ua")
162+
EMAIL_HOST_PASSWORD = os.getenv("MAIL_PASSWORD", "yourpassword")
163+
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER
164+
146165
# logging
147166
LOGGING = {
148-
'version': 1,
149-
'filters': {
150-
'require_debug_true': {
151-
'()': 'django.utils.log.RequireDebugTrue',
167+
"version": 1,
168+
"filters": {
169+
"require_debug_true": {
170+
"()": "django.utils.log.RequireDebugTrue",
152171
}
153172
},
154-
'handlers': {
155-
'console': {
156-
'level': 'DEBUG',
157-
'filters': ['require_debug_true'],
158-
'class': 'logging.StreamHandler',
173+
"handlers": {
174+
"console": {
175+
"level": "DEBUG",
176+
"filters": ["require_debug_true"],
177+
"class": "logging.StreamHandler",
159178
}
160179
},
161-
'loggers': {
162-
'django.db.backends': {
163-
'level': 'DEBUG',
164-
'handlers': ['console'],
180+
"loggers": {
181+
"django.db.backends": {
182+
"level": "DEBUG",
183+
"handlers": ["console"],
165184
}
166-
}
167-
}
185+
},
186+
}

notes/users/forms.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,15 @@
77

88
class RegisterForm(UserCreationForm):
99
username = forms.CharField(max_length=100, required=True, widget=forms.TextInput())
10-
password1 = forms.CharField(
11-
max_length=50, required=True, widget=forms.PasswordInput()
12-
)
13-
password2 = forms.CharField(
14-
max_length=50, required=True, widget=forms.PasswordInput()
15-
)
10+
email = forms.CharField(max_length=100, required=True, widget=forms.TextInput())
11+
password1 = forms.CharField(max_length=50, required=True, widget=forms.PasswordInput())
12+
password2 = forms.CharField(max_length=50, required=True, widget=forms.PasswordInput())
1613

1714
class Meta:
1815
model = User
1916
fields = [
2017
"username",
18+
"email",
2119
"password1",
2220
"password2",
2321
]
@@ -47,4 +45,4 @@ class Meta:
4745
model = User
4846
fields = [
4947
"username",
50-
]
48+
]

0 commit comments

Comments
 (0)