diff --git a/user_managment/app.py b/user_managment/app.py index 60be639..5921baa 100644 --- a/user_managment/app.py +++ b/user_managment/app.py @@ -16,6 +16,8 @@ import datetime, time from flask_babelex import Babel import libscrc import random +from flask_mail import Message, Mail + try: from gen_script_template import gen_script except: @@ -106,6 +108,7 @@ def create_app(): """ Flask application factory """ # Create Flask app load app.config + mail = Mail() app = Flask(__name__) app.config.from_object(__name__+'.ConfigClass') @@ -427,7 +430,10 @@ def create_app(): @login_required # User must be authenticated @roles_required('Admin') def mmdvm_auth_list(): - content = ''' + display_number = 200 + content = ''' +

Last ''' + str(display_number) + ''' logins or attempts.

+
@@ -437,18 +443,53 @@ def create_app(): \n''' for i in mmdvm_logins: print(i) - content = content + ''' + if display_number == 0: + break + else: + content = content + ''' ''' + '\n' + display_number = display_number - 1 content = content + '
User
''' + str(i[1]) + ''' ''' + str(i[0]) + ''' Value: ''' + str(i[2]) + '''\n
DB: ''' + str(i[3]) + '''
''' + datetime.datetime.fromtimestamp(i[4]).strftime(time_format) + '''
' return render_template('flask_user_layout.html', markup_content = Markup(content)) + @app.route('/email_user', methods=['POST', 'GET']) + @roles_required('Admin') + @login_required # User must be authenticated + def email_user(): + + if request.method == 'GET' and request.args.get('callsign'): + content = ''' +

Send email to user: ''' + request.args.get('callsign') + '''

+ + + + + + +
+







+
+

 

''' + elif request.method == 'POST': # and request.form.get('callsign') and request.form.get('subject') and request.form.get('message'): + u = User.query.filter_by(username=request.args.get('callsign')).first() + msg = Message(recipients=[u.email], + subject=request.form.get('subject'), + body=request.form.get('message')) + mail.send(msg) + content = '

Sent email to: ' + u.email + '

' + else: + content = '''

Find user in "List Users", then click on the email link.'

''' + return render_template('flask_user_layout.html', markup_content = Markup(content)) + + + @app.route('/list_users') @roles_required('Admin') @login_required # User must be authenticated @@ -575,6 +616,10 @@ def create_app(): edit_user.active = True edit_user.initial_admin_approved = True db.session.commit() + msg = Message(recipients=[edit_user.email], + subject='Account Approval - ' + title, + body='''You are receiving this message because an administrator has approved your account. You may now login and view your MMDVM passphrase(s).''') + mail.send(msg) content = '''

User approved: ''' + str(request.args.get('callsign')) + '''

\n''' elif request.method == 'GET' and request.args.get('callsign') and request.args.get('email_verified') == 'true': @@ -627,6 +672,9 @@ def create_app():

Update user information from RadioID.net

+ +

Send user an email

+