clead edit user page, improve auth log
This commit is contained in:
parent
9267fef2cb
commit
3be127d0f4
@ -141,6 +141,7 @@ TGID_ACL: PERMIT:ALL
|
||||
# USER MANAGER
|
||||
# This is where to configure the details for use with a user managment script
|
||||
[USER_MANAGER]
|
||||
THIS_SERVER_NAME: My MMDVM Server
|
||||
USE_USER_MAN: True
|
||||
# URL of the user managment server
|
||||
URL: http://localhost:8080/auth
|
||||
|
@ -774,15 +774,32 @@ def create_app():
|
||||
</table>
|
||||
<p> </p>
|
||||
|
||||
<p style="text-align: center;"><strong>Email confirmed: ''' + str(u.email_confirmed_at) + '''</strong></p>
|
||||
|
||||
|
||||
<p style="text-align: center;"><strong><a href="update_ids?callsign=''' + u.username + '''">Update user information from RadioID.net</a></strong></p>
|
||||
|
||||
<h3 style="text-align: center;"> Options for: ''' + u.username + ''' </h3>
|
||||
|
||||
<table style="width: 600px; margin-left: auto; margin-right: auto;" border="1">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>
|
||||
<p style="text-align: center;"><strong><a href="update_ids?callsign=''' + u.username + '''">Update from RadioID.net</a></strong></p>
|
||||
</td>
|
||||
<td> ''' + confirm_link + ''' <br /><p style="text-align: center;"><strong>Email confirmed: ''' + str(u.email_confirmed_at) + '''</strong></p></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<p style="text-align: center;"><strong><a href="email_user?callsign=''' + u.username + '''">Send user an email</a></strong></p>
|
||||
|
||||
<p style="text-align: center;"><strong><a href="auth_log?portal_username=''' + u.username + '''">View auth log for: ''' + u.username + '''</a></strong></p>
|
||||
</td>
|
||||
<td> ''' + role_link + ''' </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> <p style="text-align: center;"><strong><a href="auth_log?portal_username=''' + u.username + '''">View user auth log</a></strong></p>
|
||||
</td>
|
||||
<td>
|
||||
<p style="text-align: center;"><a href="''' + url + '/edit_user?delete_user=true&callsign=' + str(u.username) + '''"><strong>Deleted user</strong></strong></a></p>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<td><form action="edit_user?callsign=''' + callsign + '''" method="POST">
|
||||
<table style="margin-left: auto; margin-right: auto;">
|
||||
@ -843,11 +860,6 @@ def create_app():
|
||||
</tbody>
|
||||
</table>
|
||||
<p> </p>
|
||||
<p style="text-align: center;"><a href="''' + url + '/edit_user?delete_user=true&callsign=' + str(u.username) + '''"><strong>Deleted user: <strong>''' + str(u.username) + '''</strong></strong></a></p>\n
|
||||
''' + confirm_link + '''
|
||||
<p> </p>
|
||||
''' + role_link + '''
|
||||
<p> </p>
|
||||
|
||||
<h3 style="text-align: center;"> Passphrase Authentication Method Key</h3>
|
||||
<table style="width: 300px; margin-left: auto; margin-right: auto;" border="1">
|
||||
@ -858,7 +870,7 @@ def create_app():
|
||||
<td style="width: 77.7167px; text-align: center;"><strong>Custom</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align: center; width: 70.8px;">0 - default<br />1+ new calculation)</td>
|
||||
<td style="text-align: center; width: 70.8px;">0 - default,<br />1-999 - new calculation</td>
|
||||
<td style="text-align: center; width: 103.45px;">''</td>
|
||||
<td style="text-align: center; width: 77.7167px;">'passphrase'</td>
|
||||
</tr>
|
||||
@ -943,120 +955,154 @@ def create_app():
|
||||
content = '''<p style="text-align: center;"><strong>Flushed entire auth DB.</strong></strong></p>\n'''
|
||||
authlog_flush()
|
||||
elif request.args.get('portal_username'):
|
||||
a = AuthLog.query.filter_by(portal_username=request.args.get('portal_username')).all()
|
||||
a = AuthLog.query.filter_by(portal_username=request.args.get('portal_username')).order_by(AuthLog.login_dmr_id.desc()).all()
|
||||
|
||||
content = '''
|
||||
<p> </p>
|
||||
|
||||
|
||||
<table style="width: 800px; margin-left: auto; margin-right: auto;" border="1">
|
||||
<p> </p>
|
||||
<p style="text-align: center;"><strong>Log for user: ''' + request.args.get('portal_username') + '''</strong></p>
|
||||
|
||||
<table style="width: 1000px; margin-left: auto; margin-right: auto;" border="1">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align: center;">
|
||||
<h4>DMR ID</h4>
|
||||
<h4> DMR ID </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Portal Username</h4>
|
||||
<h4> Portal Username </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Login IP</h4>
|
||||
<h4> Login IP </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Calculated Passphrase</h4>
|
||||
<h4> Calculated Passphrase </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Server</h4>
|
||||
<h4> Server </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Time (UTC)</h4>
|
||||
<h4> Time (UTC) </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Login Type</h4>
|
||||
<h4> Login Status </h4>
|
||||
</td>
|
||||
</tr> \n'''
|
||||
for i in a:
|
||||
if i.login_type == 'Attempt':
|
||||
content = content + '''
|
||||
<tr >
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;"><strong>''' + str(i.login_dmr_id) + '''</strong></span></td>
|
||||
<td style="text-align: center;">''' + i.portal_username + '''</td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;"><strong>''' + i.peer_ip + '''</strong></span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;">''' + i.login_auth_method + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;">''' + i.server_name + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;">''' + str(i.login_time) + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;"><strong>''' + str(i.login_type) + '''</span></strong></td>
|
||||
<td style="text-align: center;"> <strong>''' + str(i.login_dmr_id) + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.portal_username + ''' </td>
|
||||
<td style="text-align: center;"> <strong>''' + i.peer_ip + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.login_auth_method + ''' </td>
|
||||
<td style="text-align: center;"> ''' + i.server_name + ''' </td>
|
||||
<td style="text-align: center;"> ''' + str(i.login_time) + ''' </td>
|
||||
<td style="text-align: center;"> <span style="color: #000000; background-color: #ffff00;"><strong>''' + str(i.login_type) + '''</span></strong> </td>
|
||||
</tr>
|
||||
'''
|
||||
if i.login_type == 'Confirmed':
|
||||
content = content + '''
|
||||
<tr >
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;"><strong>''' + str(i.login_dmr_id) + '''</strong></span></td>
|
||||
<td style="text-align: center;">''' + i.portal_username + '''</td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;"><strong>''' + i.peer_ip + '''</strong></span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;">''' + i.login_auth_method + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;">''' + i.server_name + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;">''' + str(i.login_time) + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;"><strong>''' + str(i.login_type) + '''</span></strong></td>
|
||||
<td style="text-align: center;"> <strong>''' + str(i.login_dmr_id) + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.portal_username + ''' </td>
|
||||
<td style="text-align: center;"> <strong>''' + i.peer_ip + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.login_auth_method + ''' </td>
|
||||
<td style="text-align: center;"> ''' + i.server_name + ''' </td>
|
||||
<td style="text-align: center;"> ''' + str(i.login_time) + ''' </td>
|
||||
<td style="text-align: center;"> <span style="color: #000000; background-color: #00ff00;"><strong>''' + str(i.login_type) + '''</span></strong> </td>
|
||||
</tr>
|
||||
'''
|
||||
if i.login_type == 'Failed':
|
||||
content = content + '''
|
||||
<tr >
|
||||
<td style="text-align: center;"> <strong>''' + str(i.login_dmr_id) + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.portal_username + ''' </a></td>
|
||||
<td style="text-align: center;"> <strong>''' + i.peer_ip + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.login_auth_method + ''' </td>
|
||||
<td style="text-align: center;"> ''' + i.server_name + ''' </td>
|
||||
<td style="text-align: center;"> ''' + str(i.login_time) + ''' </td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #FF2400;"> <strong>''' + str(i.login_type) + '''</span></strong> </td>
|
||||
</tr>
|
||||
'''
|
||||
content = content + '</tbody></table>'
|
||||
else:
|
||||
a = AuthLog.query.all()
|
||||
#a = AuthLog.query.all().order_by(AuthLog.login_dmr_id)
|
||||
#a = AuthLog.query.all()
|
||||
a = AuthLog.query.order_by(AuthLog.login_dmr_id.desc()).limit(300).all()
|
||||
recent_list = []
|
||||
r = AuthLog.query.order_by(AuthLog.login_dmr_id.desc()).all()
|
||||
print(r)
|
||||
content = '''
|
||||
<p> </p>
|
||||
<p style="text-align: center;"><strong><a href="auth_log?flush_db=true">Flush entire auth log</a></strong></p>
|
||||
<p> </p>
|
||||
<p style="text-align: center;"><strong>Auth log by DMR ID</strong></p>
|
||||
|
||||
|
||||
<table style="width: 800px; margin-left: auto; margin-right: auto;" border="1">
|
||||
<table style="width: 1000px; margin-left: auto; margin-right: auto;" border="1">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td style="text-align: center;">
|
||||
<h4>DMR ID</h4>
|
||||
<h4> DMR ID </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Portal Username</h4>
|
||||
<h4> Portal Username </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Login IP</h4>
|
||||
<h4> Login IP </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Calculated Passphrase</h4>
|
||||
<h4> Calculated Passphrase </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Server</h4>
|
||||
<h4> Server </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Time (UTC)</h4>
|
||||
<h4> Time (UTC) </h4>
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<h4>Login Type</h4>
|
||||
<h4> Login Status </h4>
|
||||
</td>
|
||||
</tr> \n'''
|
||||
for i in a:
|
||||
if i.login_type == 'Attempt':
|
||||
content = content + '''
|
||||
if i.login_dmr_id not in recent_list:
|
||||
print()
|
||||
recent_list.append(i.login_dmr_id)
|
||||
if i.login_type == 'Attempt':
|
||||
content = content + '''
|
||||
<tr >
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;"><strong>''' + str(i.login_dmr_id) + '''</strong></span></td>
|
||||
<td style="text-align: center;"><a href="auth_log?portal_username=''' + i.portal_username + '''">''' + i.portal_username + '''</a></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;"><strong>''' + i.peer_ip + '''</strong></span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;">''' + i.login_auth_method + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;">''' + i.server_name + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;">''' + str(i.login_time) + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #ffff00;"><strong>''' + str(i.login_type) + '''</span></strong></td>
|
||||
<td style="text-align: center;"> <strong>''' + str(i.login_dmr_id) + '''</strong> </td>
|
||||
<td style="text-align: center;"> <a href="auth_log?portal_username=''' + i.portal_username + '''">''' + i.portal_username + '''</a> </td>
|
||||
<td style="text-align: center;"> <strong>''' + i.peer_ip + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.login_auth_method + ''' </td>
|
||||
<td style="text-align: center;"> ''' + i.server_name + ''' </td>
|
||||
<td style="text-align: center;"> ''' + str(i.login_time) + ''' </td>
|
||||
<td style="text-align: center;"> <span style="color: #000000; background-color: #ffff00;"><strong>''' + str(i.login_type) + '''</span></strong> </td>
|
||||
</tr>
|
||||
'''
|
||||
if i.login_type == 'Confirmed':
|
||||
content = content + '''
|
||||
if i.login_type == 'Confirmed':
|
||||
content = content + '''
|
||||
<tr >
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;"><strong>''' + str(i.login_dmr_id) + '''</strong></span></td>
|
||||
<td style="text-align: center;"><a href="auth_log?portal_username=''' + i.portal_username + '''">''' + i.portal_username + '''</a></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;"><strong>''' + i.peer_ip + '''</strong></span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;">''' + i.login_auth_method + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;">''' + i.server_name + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;">''' + str(i.login_time) + '''</span></td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #00ff00;"><strong>''' + str(i.login_type) + '''</span></strong></td>
|
||||
<td style="text-align: center;"> <strong>''' + str(i.login_dmr_id) + '''</strong> </td>
|
||||
<td style="text-align: center;"> <a href="auth_log?portal_username=''' + i.portal_username + '''">''' + i.portal_username + '''</a> </td>
|
||||
<td style="text-align: center;"> <strong>''' + i.peer_ip + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.login_auth_method + ''' </td>
|
||||
<td style="text-align: center;"> ''' + i.server_name + ''' </td>
|
||||
<td style="text-align: center;"> ''' + str(i.login_time) + ''' </td>
|
||||
<td style="text-align: center;"> <span style="color: #000000; background-color: #00ff00;"><strong>''' + str(i.login_type) + '''</span></strong> </td>
|
||||
</tr>
|
||||
'''
|
||||
if i.login_type == 'Failed':
|
||||
content = content + '''
|
||||
<tr >
|
||||
<td style="text-align: center;"> <strong>''' + str(i.login_dmr_id) + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.portal_username + ''' </a></td>
|
||||
<td style="text-align: center;"> <strong>''' + i.peer_ip + '''</strong> </td>
|
||||
<td style="text-align: center;"> ''' + i.login_auth_method + ''' </td>
|
||||
<td style="text-align: center;"> ''' + i.server_name + ''' </td>
|
||||
<td style="text-align: center;"> ''' + str(i.login_time) + ''' </td>
|
||||
<td style="text-align: center;"><span style="color: #000000; background-color: #FF2400;"> <strong>''' + str(i.login_type) + '''</span></strong> </td>
|
||||
</tr>
|
||||
'''
|
||||
|
||||
content = content + '</tbody></table>'
|
||||
return render_template('flask_user_layout.html', markup_content = Markup(content))
|
||||
|
||||
@ -1313,8 +1359,11 @@ def create_app():
|
||||
mode='override',
|
||||
value=authorized_peer(hblink_req['login_id'])[1]
|
||||
)
|
||||
if authorized_peer(hblink_req['login_id'])[0] == False:
|
||||
mmdvm_logins.append([hblink_req['login_id'], 'Not registered', 'None', 'Not authorized', time.time()])
|
||||
elif authorized_peer(hblink_req['login_id'])[0] == False:
|
||||
print('log fail')
|
||||
#mmdvm_logins.append([hblink_req['login_id'], 'Not registered', 'None', 'Not authorized', time.time()])
|
||||
|
||||
authlog_add(hblink_req['login_id'], hblink_req['login_ip'], hblink_req['login_server'], 'Not Registered', '-', 'Failed')
|
||||
response = jsonify(
|
||||
allow=False)
|
||||
elif not type(hblink_req['login_id']) == int:
|
||||
|
Loading…
Reference in New Issue
Block a user