fix login and mail templates, fix manual user creation, add APRS to web service
This commit is contained in:
parent
fbbf4c4b50
commit
8ce5427406
32
web/app.py
32
web/app.py
@ -166,7 +166,7 @@ def hbnet_web_service():
|
|||||||
dmr_ids = db.Column(db.String(1000), nullable=False, server_default='')
|
dmr_ids = db.Column(db.String(1000), nullable=False, server_default='')
|
||||||
city = db.Column(db.String(100), nullable=False, server_default='')
|
city = db.Column(db.String(100), nullable=False, server_default='')
|
||||||
notes = db.Column(db.String(2000), nullable=False, server_default='')
|
notes = db.Column(db.String(2000), nullable=False, server_default='')
|
||||||
aprs = db.Column(db.String(2000), nullable=False, server_default='')
|
aprs = db.Column(db.String(2000), nullable=False, server_default='{}')
|
||||||
#Used for initial approval
|
#Used for initial approval
|
||||||
initial_admin_approved = db.Column('initial_admin_approved', db.Boolean(), nullable=False, server_default='1')
|
initial_admin_approved = db.Column('initial_admin_approved', db.Boolean(), nullable=False, server_default='1')
|
||||||
# Define the relationship to Role via UserRoles
|
# Define the relationship to Role via UserRoles
|
||||||
@ -589,7 +589,8 @@ def hbnet_web_service():
|
|||||||
password=user_manager.hash_password('admin'),
|
password=user_manager.hash_password('admin'),
|
||||||
initial_admin_approved = True,
|
initial_admin_approved = True,
|
||||||
notes='Default admin account created during installation.',
|
notes='Default admin account created during installation.',
|
||||||
dmr_ids='{}'
|
dmr_ids='{}',
|
||||||
|
aprs = '{}'
|
||||||
)
|
)
|
||||||
user.roles.append(Role(name='Admin'))
|
user.roles.append(Role(name='Admin'))
|
||||||
user.roles.append(Role(name='User'))
|
user.roles.append(Role(name='User'))
|
||||||
@ -644,6 +645,7 @@ def hbnet_web_service():
|
|||||||
# Query radioid.net for list of DMR IDs, then add to DB
|
# Query radioid.net for list of DMR IDs, then add to DB
|
||||||
@user_registered.connect_via(app)
|
@user_registered.connect_via(app)
|
||||||
def _after_user_registered_hook(sender, user, **extra):
|
def _after_user_registered_hook(sender, user, **extra):
|
||||||
|
aprs_dict = {}
|
||||||
edit_user = User.query.filter(User.username == user.username).first()
|
edit_user = User.query.filter(User.username == user.username).first()
|
||||||
radioid_data = ast.literal_eval(get_ids(user.username))
|
radioid_data = ast.literal_eval(get_ids(user.username))
|
||||||
## edit_user.notes = ''
|
## edit_user.notes = ''
|
||||||
@ -651,6 +653,9 @@ def hbnet_web_service():
|
|||||||
edit_user.first_name = str(radioid_data[1])
|
edit_user.first_name = str(radioid_data[1])
|
||||||
edit_user.last_name = str(radioid_data[2])
|
edit_user.last_name = str(radioid_data[2])
|
||||||
edit_user.city = str(radioid_data[3])
|
edit_user.city = str(radioid_data[3])
|
||||||
|
for i in radioid_data[0].items():
|
||||||
|
aprs_dict[i[0]] = 'default'
|
||||||
|
edit_user.aprs = str(aprs_dict)
|
||||||
user_role = UserRoles(
|
user_role = UserRoles(
|
||||||
user_id=edit_user.id,
|
user_id=edit_user.id,
|
||||||
role_id=2,
|
role_id=2,
|
||||||
@ -659,6 +664,9 @@ def hbnet_web_service():
|
|||||||
if default_account_state == False:
|
if default_account_state == False:
|
||||||
edit_user.active = default_account_state
|
edit_user.active = default_account_state
|
||||||
edit_user.initial_admin_approved = False
|
edit_user.initial_admin_approved = False
|
||||||
|
if USER_ENABLE_CONFIRM_EMAIL == False:
|
||||||
|
edit_user.email_confirmed_at = datetime.datetime.utcnow()
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
|
|
||||||
def gen_passphrase(dmr_id):
|
def gen_passphrase(dmr_id):
|
||||||
@ -1193,6 +1201,12 @@ def hbnet_web_service():
|
|||||||
if request.form.get('email') != edit_user.email:
|
if request.form.get('email') != edit_user.email:
|
||||||
edit_user.email = request.form.get('email')
|
edit_user.email = request.form.get('email')
|
||||||
content = content + '''<p style="text-align: center;">Changed email for user: <strong>''' + str(user) + ''' to ''' + request.form.get('email') + '''</strong></p>\n'''
|
content = content + '''<p style="text-align: center;">Changed email for user: <strong>''' + str(user) + ''' to ''' + request.form.get('email') + '''</strong></p>\n'''
|
||||||
|
if request.form.get('aprs') != edit_user.aprs:
|
||||||
|
edit_user.aprs = request.form.get('aprs')
|
||||||
|
content = content + '''<p style="text-align: center;">Changed APRS settings for user: <strong>''' + str(user) + ''' to ''' + request.form.get('aprs') + '''</strong></p>\n'''
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if request.form.get('notes') != edit_user.notes:
|
if request.form.get('notes') != edit_user.notes:
|
||||||
edit_user.notes = request.form.get('notes')
|
edit_user.notes = request.form.get('notes')
|
||||||
content = content + '''<p style="text-align: center;">Changed notes for user: <strong>''' + str(user) + '''</strong>.</p>\n'''
|
content = content + '''<p style="text-align: center;">Changed notes for user: <strong>''' + str(user) + '''</strong>.</p>\n'''
|
||||||
@ -1411,9 +1425,13 @@ def hbnet_web_service():
|
|||||||
|
|
||||||
<tr style="height: 51.1667px;">
|
<tr style="height: 51.1667px;">
|
||||||
<td style="height: 51.1667px; text-align: center;">
|
<td style="height: 51.1667px; text-align: center;">
|
||||||
<label for="message">Notes<br /></label></strong><br /><textarea cols="40" name="notes" rows="5" >''' + str(u.notes) + '''</textarea><br /><br />
|
<label for="notes">Notes<br /></label></strong><br /><textarea cols="40" name="notes" rows="5" >''' + str(u.notes) + '''</textarea><br /><br />
|
||||||
</td></tr>
|
</td></tr>
|
||||||
|
|
||||||
|
<tr style="height: 51.1667px;">
|
||||||
|
<td style="height: 51.1667px; text-align: center;">
|
||||||
|
<label for="notes">APRS Settings<br /></label></strong><br /><textarea cols="40" name="aprs" rows="5" >''' + str(u.aprs) + '''</textarea><br /><br />
|
||||||
|
</td></tr>
|
||||||
|
|
||||||
<tr style="height: 27px;">
|
<tr style="height: 27px;">
|
||||||
<td style="text-align: center; height: 27px;"><input type="submit" value="Submit" /></td>
|
<td style="text-align: center; height: 27px;"><input type="submit" value="Submit" /></td>
|
||||||
@ -2492,6 +2510,7 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
|
|||||||
@app.route('/mail/<user>', methods=['GET', 'POST'])
|
@app.route('/mail/<user>', methods=['GET', 'POST'])
|
||||||
@login_required
|
@login_required
|
||||||
def get_mail(user):
|
def get_mail(user):
|
||||||
|
show_mailbox = False
|
||||||
if current_user.username == user:
|
if current_user.username == user:
|
||||||
if request.args.get('delete_mail'):
|
if request.args.get('delete_mail'):
|
||||||
mailbox_del(int(request.args.get('delete_mail')))
|
mailbox_del(int(request.args.get('delete_mail')))
|
||||||
@ -2508,6 +2527,7 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
|
|||||||
<meta http-equiv="refresh" content="1; URL=''' + url + '''/mail/''' + current_user.username + '''" /> '''
|
<meta http-equiv="refresh" content="1; URL=''' + url + '''/mail/''' + current_user.username + '''" /> '''
|
||||||
|
|
||||||
else:
|
else:
|
||||||
|
show_mailbox = True
|
||||||
mail_all = MailBox.query.filter_by(rcv_callsign=user.upper()).order_by(MailBox.time.desc()).all()
|
mail_all = MailBox.query.filter_by(rcv_callsign=user.upper()).order_by(MailBox.time.desc()).all()
|
||||||
content = ''
|
content = ''
|
||||||
for i in mail_all:
|
for i in mail_all:
|
||||||
@ -2520,7 +2540,7 @@ TG #: <strong> ''' + str(tg_d.tg) + '''</strong>
|
|||||||
</tr>'''
|
</tr>'''
|
||||||
else:
|
else:
|
||||||
content = '<h4><p style="text-align: center;">Not your mailbox.</p></h4>'
|
content = '<h4><p style="text-align: center;">Not your mailbox.</p></h4>'
|
||||||
return render_template('mail.html', markup_content = Markup(content), user_id = user)
|
return render_template('mail.html', markup_content = Markup(content), user_id = user, show_mail = show_mailbox)
|
||||||
|
|
||||||
|
|
||||||
@app.route('/talkgroups/<server>') #, methods=['POST', 'GET'])
|
@app.route('/talkgroups/<server>') #, methods=['POST', 'GET'])
|
||||||
@ -5817,10 +5837,14 @@ Name: <strong>''' + p.name + '''</strong> - Port: <strong>''' + str(
|
|||||||
elif request.method == 'POST' and request.form.get('username'):
|
elif request.method == 'POST' and request.form.get('username'):
|
||||||
if not User.query.filter(User.username == request.form.get('username')).first():
|
if not User.query.filter(User.username == request.form.get('username')).first():
|
||||||
radioid_data = ast.literal_eval(get_ids(request.form.get('username')))
|
radioid_data = ast.literal_eval(get_ids(request.form.get('username')))
|
||||||
|
aprs_dict = {}
|
||||||
|
for i in radioid_data[0].items():
|
||||||
|
aprs_dict[i[0]] = 'default'
|
||||||
user = User(
|
user = User(
|
||||||
username=request.form.get('username'),
|
username=request.form.get('username'),
|
||||||
email=request.form.get('email'),
|
email=request.form.get('email'),
|
||||||
email_confirmed_at=datetime.datetime.utcnow(),
|
email_confirmed_at=datetime.datetime.utcnow(),
|
||||||
|
aprs = str(aprs_dict),
|
||||||
password=user_manager.hash_password(request.form.get('password')),
|
password=user_manager.hash_password(request.form.get('password')),
|
||||||
dmr_ids = str(radioid_data[0]),
|
dmr_ids = str(radioid_data[0]),
|
||||||
initial_admin_approved = True,
|
initial_admin_approved = True,
|
||||||
|
@ -29,7 +29,9 @@
|
|||||||
{{ field(class_='form-control', tabindex=110) }}
|
{{ field(class_='form-control', tabindex=110) }}
|
||||||
{% if field.errors %}
|
{% if field.errors %}
|
||||||
{% for e in field.errors %}
|
{% for e in field.errors %}
|
||||||
<p class="help-block">{{ e }}</p>
|
|
||||||
|
|
||||||
|
<p class="help-block"><strong>{{ e }}</strong></p>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
|
@ -4,9 +4,8 @@
|
|||||||
<h1 style="text-align: center;">Mail</h1>
|
<h1 style="text-align: center;">Mail</h1>
|
||||||
|
|
||||||
|
|
||||||
<p style="text-align: right;"><button data-bs-toggle="collapse" data-bs-target="#demo" class="btn btn-primary">Compose</button></p>
|
|
||||||
|
|
||||||
<div id="demo" class="collapse">
|
<div id="compose" class="collapse">
|
||||||
|
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">Send internal message to another user</div>
|
<div class="card-header">Send internal message to another user</div>
|
||||||
@ -32,9 +31,10 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{% if show_mail %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-lg-12">
|
<div class="col-lg-12">
|
||||||
|
<p style="text-align: right;"><button data-bs-toggle="collapse" data-bs-target="#compose" class="btn btn-primary">Compose</button></p>
|
||||||
|
|
||||||
<table data-toggle="table" data-pagination="true" data-search="true" >
|
<table data-toggle="table" data-pagination="true" data-search="true" >
|
||||||
<thead>
|
<thead>
|
||||||
@ -54,6 +54,13 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% if not show_mail %}
|
||||||
|
{{markup_content}}
|
||||||
|
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user