1+ from functools import wraps
2+
13from flask import url_for
24from flask_babel import gettext as _ # type: ignore
35from flask_mail import Message # type: ignore
46
57from lms .lmsdb .models import User
6- from lms .lmsweb import config , webmail
8+ from lms .lmsweb import config , webapp , webmail
79from lms .models .users import generate_user_token
810
911
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
1023def send_confirmation_mail (user : User ) -> Message :
1124 token = generate_user_token (user )
1225 subject = _ ('מייל אימות - %(site_name)s' , site_name = config .SITE_NAME )
@@ -18,9 +31,10 @@ def send_confirmation_mail(user: User) -> Message:
1831 'שלום %(fullname)s,\n לינק האימות שלך למערכת הוא: %(link)s' ,
1932 fullname = user .fullname , link = link ,
2033 )
21- webmail . send ( msg )
34+ return msg
2235
2336
37+ @send_message
2438def send_reset_password_mail (user : User ) -> Message :
2539 token = generate_user_token (user )
2640 subject = _ ('מייל איפוס סיסמה - %(site_name)s' , site_name = config .SITE_NAME )
@@ -32,9 +46,10 @@ def send_reset_password_mail(user: User) -> Message:
3246 'שלום %(fullname)s,\n לינק לצורך איפוס הסיסמה שלך הוא: %(link)s' ,
3347 fullname = user .fullname , link = link ,
3448 )
35- webmail . send ( msg )
49+ return msg
3650
3751
52+ @send_message
3853def send_change_password_mail (user : User ) -> Message :
3954 subject = _ ('שינוי סיסמה - %(site_name)s' , site_name = config .SITE_NAME )
4055 msg = Message (subject , recipients = [user .mail_address ])
@@ -45,4 +60,4 @@ def send_change_password_mail(user: User) -> Message:
4560 fullname = user .fullname , site_name = config .SITE_NAME ,
4661 site_mail = config .MAIL_DEFAULT_SENDER ,
4762 )
48- webmail . send ( msg )
63+ return msg
0 commit comments