1
+ from functools import wraps
2
+
1
3
from flask import url_for
2
4
from flask_babel import gettext as _ # type: ignore
3
5
from flask_mail import Message # type: ignore
4
6
5
7
from lms .lmsdb .models import User
6
- from lms .lmsweb import config , webmail
8
+ from lms .lmsweb import config , webapp , webmail
7
9
from lms .models .users import generate_user_token
8
10
9
11
12
+ def send_message (func ):
13
+ @wraps (func )
14
+ def wrapper (* args , ** kwargs ):
15
+ msg = func (* args , ** kwargs )
16
+ if not webapp .config .get ('DISABLE_MAIL' ):
17
+ webmail .send (msg )
18
+
19
+ return wrapper
20
+
21
+
22
+ @send_message
10
23
def send_confirmation_mail (user : User ) -> Message :
11
24
token = generate_user_token (user )
12
25
subject = _ ('מייל אימות - %(site_name)s' , site_name = config .SITE_NAME )
@@ -18,9 +31,10 @@ def send_confirmation_mail(user: User) -> Message:
18
31
'שלום %(fullname)s,\n לינק האימות שלך למערכת הוא: %(link)s' ,
19
32
fullname = user .fullname , link = link ,
20
33
)
21
- webmail . send ( msg )
34
+ return msg
22
35
23
36
37
+ @send_message
24
38
def send_reset_password_mail (user : User ) -> Message :
25
39
token = generate_user_token (user )
26
40
subject = _ ('מייל איפוס סיסמה - %(site_name)s' , site_name = config .SITE_NAME )
@@ -32,9 +46,10 @@ def send_reset_password_mail(user: User) -> Message:
32
46
'שלום %(fullname)s,\n לינק לצורך איפוס הסיסמה שלך הוא: %(link)s' ,
33
47
fullname = user .fullname , link = link ,
34
48
)
35
- webmail . send ( msg )
49
+ return msg
36
50
37
51
52
+ @send_message
38
53
def send_change_password_mail (user : User ) -> Message :
39
54
subject = _ ('שינוי סיסמה - %(site_name)s' , site_name = config .SITE_NAME )
40
55
msg = Message (subject , recipients = [user .mail_address ])
@@ -45,4 +60,4 @@ def send_change_password_mail(user: User) -> Message:
45
60
fullname = user .fullname , site_name = config .SITE_NAME ,
46
61
site_mail = config .MAIL_DEFAULT_SENDER ,
47
62
)
48
- webmail . send ( msg )
63
+ return msg
0 commit comments