diff --git a/hblink.py b/hblink.py index b0a6660..ea1ca39 100755 --- a/hblink.py +++ b/hblink.py @@ -511,6 +511,7 @@ class HBSYSTEM(DatagramProtocol): except Exception as e: ## # If UMS down, default to base 64 auth ## logger.info(e) + _new_peer_id = bytes_4(int(str(int_id(_peer_id))[:7])) calc_passphrase = base64.b64encode(bytes.fromhex(str(hex(libscrc.ccitt((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8)))))[2:].zfill(4)) + (_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big') + bytes.fromhex(str(hex(libscrc.posix((_new_peer_id) + self._CONFIG['USER_MANAGER']['APPEND_INT'].to_bytes(2, 'big'))))[2:].zfill(8))) _calc_hash = bhex(sha256(_salt_str+calc_passphrase).hexdigest()) ums_down = True diff --git a/user_managment/app.py b/user_managment/app.py index 3296bc4..7793d3c 100644 --- a/user_managment/app.py +++ b/user_managment/app.py @@ -174,26 +174,29 @@ def create_app(): @app.route('/generate_passphrase', methods = ['GET']) @login_required def gen(): - #content = Markup('The HTML String') - #user_id = request.args.get('user_id') - u = current_user -## print(u.username) - id_dict = ast.literal_eval(u.dmr_ids) - #u = User.query.filter_by(username=user).first() -## print(user_id) -## print(request.args.get('mode')) -## if request.args.get('mode') == 'generated': - content = '' - for i in id_dict.items(): - if i[1] == '': - content = content + '''\n -

Your passphrase for ''' + str(i[0]) + ''':

-

''' + str(gen_passphrase(int(i[0]))) + '''

- ''' - elif i[1] == 0: - content = content + '''\n

Using legacy auth

''' - else: - content = content + '''\n

Using custom auth passphrase: ''' + str(i[1]) + '''

''' + try: + #content = Markup('The HTML String') + #user_id = request.args.get('user_id') + u = current_user + ## print(u.username) + id_dict = ast.literal_eval(u.dmr_ids) + #u = User.query.filter_by(username=user).first() + ## print(user_id) + ## print(request.args.get('mode')) + ## if request.args.get('mode') == 'generated': + content = '' + for i in id_dict.items(): + if i[1] == '': + content = content + '''\n +

Your passphrase for ''' + str(i[0]) + ''':

+

''' + str(gen_passphrase(int(i[0]))) + '''

+ ''' + elif i[1] == 0: + content = content + '''\n

Using legacy auth

''' + else: + content = content + '''\n

Using custom auth passphrase: ''' + str(i[1]) + '''

''' + except: + content = Markup('No DMR IDs found or other error.') #return str(content) @@ -231,19 +234,22 @@ def create_app(): ## content = u.dmr_ids if request.method == 'POST' and request.args.get('callsign') and request.form.get('user_status'): edit_user = User.query.filter(User.username == request.args.get('callsign')).first() - if request.form.get('user_status') == "True": - edit_user.active = True - content = '''

User ''' + request.args.get('callsign') + ''' has been enabled.

''' - if request.form.get('user_status') == "False": - edit_user.active = False - content = '''

User ''' + request.args.get('callsign') + ''' has been disabled.

''' + if request.form.get('user_status') != edit_user.active: + if request.form.get('user_status') == "True": + edit_user.active = True + content = '''

User ''' + request.args.get('callsign') + ''' has been enabled.

''' + if request.form.get('user_status') == "False": + edit_user.active = False + content = '''

User ''' + request.args.get('callsign') + ''' has been disabled.

''' if request.form.get('username') != edit_user.username: print(request.form.get('username')) #print(edit_user.username) print('new uname') edit_user.username = request.form.get('username') - - #db.session.commit() + if request.form.get('dmr_ids') != edit_user.dmr_ids: + edit_user.dmr_ids = request.form.get('dmr_ids') + content = '''

Changed authentication settings for user: ''' + request.args.get('callsign') + '''

''' + db.session.commit() #edit_user = User.query.filter(User.username == request.args.get('callsign')).first() elif request.method == 'POST' and request.form.get('callsign') and not request.form.get('user_status'): # and request.form.get('user_status') : @@ -262,7 +268,7 @@ def create_app(): @@ -280,6 +286,12 @@ def create_app():
+ + +
+
+ + @@ -296,7 +308,7 @@ def create_app(): - {% endif %} {% if call_or_get(current_user.is_authenticated) %} + {% if call_or_get(current_user.has_roles('Admin')) %} + + + {% endif %} {% endif %} - - -
+
@@ -346,7 +358,7 @@ def create_app(): @app.route('/test') def test_peer(): -## #u = User.query.filter_by(username='kf7eel').first() + u = User.query.filter_by(username='kf7eel').first() ## u = User.query.filter(User.dmr_ids.contains('3153591')).first() ## #tu = User.query.all() ## #tu = User.query().all() @@ -375,12 +387,61 @@ def create_app(): #edit_user.active = False #db.session.commit() - print(type(current_user.has_roles)) + print((current_user.has_roles('Admin'))) + u.roles.append(Role(name='Admin')) + print((current_user.has_roles('Admin'))) + #db.session.commit() + db.session.add(u) + db.session.commit() return str(current_user.roles) + @app.route('/add_admin', methods=['POST', 'GET']) + @roles_required('Admin') + def add_admin(): + if request.method == 'GET': + content = ''' + + + +
+ + + + + + - + + + + +
+
+
+
+
+
+
+
+

 

+''' + elif request.method == 'POST' and request.form.get('username'): + if not User.query.filter(User.username == request.form.get('username')).first(): + user = User( + username='admin', + email_confirmed_at=datetime.datetime.utcnow(), + password=user_manager.hash_password(request.form.get('password')), + ) + user.roles.append(Role(name='Admin')) + user.roles.append(Role(name='User')) + db.session.add(user) + db.session.commit() + content = 'Created user ' + str(request.form.get('username')) + else: + content = 'Created user ' + str(request.form.get('Error')) + + return render_template('flask_user_layout.html', markup_content = Markup(content), logo = logo) @app.route('/auth', methods=['POST']) def auth(): diff --git a/user_managment/templates/flask_user_layout.html b/user_managment/templates/flask_user_layout.html index 3e82da4..052ae00 100644 --- a/user_managment/templates/flask_user_layout.html +++ b/user_managment/templates/flask_user_layout.html @@ -44,13 +44,14 @@
Sign inEdit a UserAdd an AdminView Passphrase(s) Edit {{ current_user.username or current_user.email }} Sign out