API - send emails when updating account (WIP)
This commit is contained in:
		@@ -11,7 +11,12 @@ from werkzeug.exceptions import RequestEntityTooLarge
 | 
			
		||||
from werkzeug.utils import secure_filename
 | 
			
		||||
 | 
			
		||||
from fittrackee import appLog, bcrypt, db
 | 
			
		||||
from fittrackee.emails.tasks import reset_password_email
 | 
			
		||||
from fittrackee.emails.tasks import (
 | 
			
		||||
    email_updated_to_current_address,
 | 
			
		||||
    email_updated_to_new_address,
 | 
			
		||||
    password_change_email,
 | 
			
		||||
    reset_password_email,
 | 
			
		||||
)
 | 
			
		||||
from fittrackee.files import get_absolute_file_path
 | 
			
		||||
from fittrackee.responses import (
 | 
			
		||||
    ForbiddenErrorResponse,
 | 
			
		||||
@@ -686,6 +691,46 @@ def update_user_account(auth_user: User) -> Union[Dict, HttpResponse]:
 | 
			
		||||
            return InvalidPayloadErrorResponse(error_messages)
 | 
			
		||||
 | 
			
		||||
        db.session.commit()
 | 
			
		||||
 | 
			
		||||
        ui_url = current_app.config['UI_URL']
 | 
			
		||||
        user_data = {
 | 
			
		||||
            'language': (
 | 
			
		||||
                'en' if auth_user.language is None else auth_user.language
 | 
			
		||||
            ),
 | 
			
		||||
            'email': auth_user.email,
 | 
			
		||||
        }
 | 
			
		||||
        data = {
 | 
			
		||||
            'username': auth_user.username,
 | 
			
		||||
            'fittrackee_url': ui_url,
 | 
			
		||||
            'operating_system': request.user_agent.platform,
 | 
			
		||||
            'browser_name': request.user_agent.browser,
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if new_password is not None:
 | 
			
		||||
            password_change_email.send(user_data, data)
 | 
			
		||||
 | 
			
		||||
        if (
 | 
			
		||||
            auth_user.email_to_confirm is not None
 | 
			
		||||
            and auth_user.email_to_confirm != auth_user.email
 | 
			
		||||
        ):
 | 
			
		||||
            email_data = {
 | 
			
		||||
                **data,
 | 
			
		||||
                **{'new_email_address': email_to_confirm},
 | 
			
		||||
            }
 | 
			
		||||
            email_updated_to_current_address.send(user_data, email_data)
 | 
			
		||||
 | 
			
		||||
            email_data = {
 | 
			
		||||
                **data,
 | 
			
		||||
                **{
 | 
			
		||||
                    'email_confirmation_url': (
 | 
			
		||||
                        f'{ui_url}/email-update'
 | 
			
		||||
                        f'?token={auth_user.confirmation_token}'
 | 
			
		||||
                    )
 | 
			
		||||
                },
 | 
			
		||||
            }
 | 
			
		||||
            user_data = {**user_data, **{'email': auth_user.email_to_confirm}}
 | 
			
		||||
            email_updated_to_new_address.send(user_data, email_data)
 | 
			
		||||
 | 
			
		||||
        return {
 | 
			
		||||
            'status': 'success',
 | 
			
		||||
            'message': 'user account updated',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user