Commit bc80f59b2685251fe0d6b122c529178dc3697156
1 parent
b3266e1593
Exists in
master
add menu for roleid
Showing 10 changed files with 29 additions and 80 deletions Side-by-side Diff
__pycache__/routes.cpython-310.pyc
No preview for this file type
components/k2adm/k2adm/views.py
| ... | ... | @@ -71,7 +71,8 @@ |
| 71 | 71 | def changePassword(): |
| 72 | 72 | session = k2.extensions['sqlalchemy'].db.session |
| 73 | 73 | current_user = get_jwt_identity() |
| 74 | - user = session.query(k2users).filter_by(user_id=current_user).first() | |
| 74 | + | |
| 75 | + user = session.query(k2users).filter_by(user_id=current_user['user_id']).first() | |
| 75 | 76 | if user.password == hashlib.md5(request.json['old_password'].encode()).hexdigest(): |
| 76 | 77 | if request.json['new_password'] == request.json['re_new_password']: |
| 77 | 78 | user.password = hashlib.md5(request.json['new_password'].encode()).hexdigest() |
| ... | ... | @@ -100,45 +101,4 @@ |
| 100 | 101 | ], |
| 101 | 102 | }] |
| 102 | 103 | return data |
| 103 | - | |
| 104 | - | |
| 105 | - | |
| 106 | - | |
| 107 | - | |
| 108 | - | |
| 109 | -# @adm.route('/register', methods=["POST"]) | |
| 110 | -# def register(): | |
| 111 | -# params = request.json | |
| 112 | -# session = k2.extensions['sqlalchemy'].db.session | |
| 113 | -# exist = k2users.user_by_login(request.json['login']) | |
| 114 | -# if not exist: | |
| 115 | -# user = k2users(**params) | |
| 116 | -# session.add(user) | |
| 117 | -# session.commit() | |
| 118 | -# token, userData, userAbilities = user.get_token() | |
| 119 | -# return {'accessToken': token, "userData": userData, "userAbilities": userAbilities} | |
| 120 | -# else: | |
| 121 | -# return jsonify({'error': 'User exist'}), 401 | |
| 122 | - | |
| 123 | - | |
| 124 | -# @adm.route('/login', methods=["POST"]) | |
| 125 | -# def login(): | |
| 126 | -# params = request.json | |
| 127 | -# user = k2users.authenticate(**params) | |
| 128 | -# if user: | |
| 129 | -# token, userData, userAbilities = user.get_token() | |
| 130 | -# return {'accessToken': token, "userData": userData, "userAbilities": userAbilities} | |
| 131 | -# else: | |
| 132 | -# return jsonify({'error': 'Unauthorized'}), 401 | |
| 133 | - | |
| 134 | - | |
| 135 | -# @adm.route('/logout', methods=["GET"]) | |
| 136 | -# @jwt_required() | |
| 137 | -# def logout(): | |
| 138 | -# | |
| 139 | -# response = { | |
| 140 | -# 'message': 'Logged out successfully' | |
| 141 | -# } | |
| 142 | - | |
| 143 | - # return jsonify(response) |
components/k2adm/setup.py
components/k2auth/k2auth/models.py
| 1 | + | |
| 1 | 2 | import uuid |
| 2 | 3 | from sqlalchemy import Column, Integer, String |
| 3 | 4 | from sqlalchemy.ext.declarative import declarative_base |
| 4 | 5 | |
| ... | ... | @@ -30,12 +31,17 @@ |
| 30 | 31 | |
| 31 | 32 | def get_token(self, expire_time=24): |
| 32 | 33 | expires_delta = timedelta(expire_time) |
| 33 | - token = create_access_token(identity=self.user_id, expires_delta=expires_delta) | |
| 34 | + # token = create_access_token(identity=self.user_id, expires_delta=expires_delta) | |
| 35 | + token = create_access_token(identity={ | |
| 36 | + 'user_id': self.user_id, | |
| 37 | + 'user_role': self.roleid | |
| 38 | + }, expires_delta=expires_delta) | |
| 34 | 39 | |
| 35 | 40 | db = k2.extensions['sqlalchemy'].db |
| 36 | 41 | connection = db.engine.connect() |
| 37 | 42 | result = connection.execute( |
| 38 | 43 | db.text(f"SELECT rolename FROM k2roles where roleid = '{self.roleid}'")).fetchone() |
| 44 | + | |
| 39 | 45 | rolename = result[0] if result else None |
| 40 | 46 | |
| 41 | 47 | userData = { |
| 42 | 48 | |
| 43 | 49 | |
| 44 | 50 | |
| ... | ... | @@ -48,14 +54,19 @@ |
| 48 | 54 | } |
| 49 | 55 | |
| 50 | 56 | userAbilities = [] |
| 57 | + from k2.k2comp import Component | |
| 58 | + components = Component.query.filter(Component.installed == 1).all() | |
| 59 | + components_names = [component.name for component in components] | |
| 51 | 60 | |
| 61 | + | |
| 62 | + | |
| 52 | 63 | abilities_query = f""" |
| 53 | 64 | SELECT menus.namemenu, |
| 54 | - prava.r, prava.w, prava.i, prava.d, prava.c, prava.exp, prava.imp, prava.settable, prava.cutpast, | |
| 65 | + prava.r, prava.w, prava.i, prava.d, prava.c, prava.exp, prava.imp, prava.settable, prava.cutpast, | |
| 55 | 66 | prava.enable, prava.del |
| 56 | 67 | FROM k2admin_menus menus |
| 57 | 68 | JOIN k2admin_menus_prava prava ON menus.menuid = prava.menuid |
| 58 | - WHERE prava.roleid = {self.roleid} | |
| 69 | + WHERE prava.roleid = {self.roleid} AND menus.namemenu IN {tuple(components_names)} | |
| 59 | 70 | """ |
| 60 | 71 | abilities_list = connection.execute(db.text(abilities_query)).fetchall() |
| 61 | 72 | |
| ... | ... | @@ -72,7 +83,7 @@ |
| 72 | 83 | "settable": ability[8], |
| 73 | 84 | "cutpast": ability[9], |
| 74 | 85 | "enable": ability[10], |
| 75 | - "del": ability[11], | |
| 86 | + "del": ability[11] | |
| 76 | 87 | } |
| 77 | 88 | |
| 78 | 89 | abilities_dict_copy = abilities_dict.copy() |
| ... | ... | @@ -80,34 +91,6 @@ |
| 80 | 91 | if value == 0: |
| 81 | 92 | del abilities_dict[key] |
| 82 | 93 | userAbilities.append(abilities_dict) |
| 83 | - #________________________________________________________________________________________ | |
| 84 | - | |
| 85 | - menu_query = f""" | |
| 86 | - SELECT menus.prevmenu, menus.namemenu, menus.caption, menus.url | |
| 87 | - FROM k2admin_menus menus | |
| 88 | - JOIN k2admin_menus_prava prava ON menus.menuid = prava.menuid | |
| 89 | - WHERE prava.roleid = '{self.roleid}' | |
| 90 | - """ | |
| 91 | - menus = connection.execute(db.text(menu_query)).fetchall() | |
| 92 | - | |
| 93 | - menus_dict = {} | |
| 94 | - for menu in menus: | |
| 95 | - menus_dict[menu[0]] = [] | |
| 96 | - | |
| 97 | - for key in menus_dict: | |
| 98 | - for el in menus: | |
| 99 | - if key == el[0]: | |
| 100 | - menus_dict[key].append( | |
| 101 | - { | |
| 102 | - "namemenu": el[1], | |
| 103 | - "caption": el[2], | |
| 104 | - "url": el[3] | |
| 105 | - }) | |
| 106 | - | |
| 107 | - print(menus_dict) | |
| 108 | - | |
| 109 | - | |
| 110 | - #________________________________________________________________________________________ | |
| 111 | 94 | |
| 112 | 95 | return (token, userData, userAbilities) |
| 113 | 96 |
components/k2auth/k2auth/views.py
| ... | ... | @@ -32,9 +32,12 @@ |
| 32 | 32 | session.add(user) |
| 33 | 33 | session.commit() |
| 34 | 34 | token, userData, userAbilities = user.get_token() |
| 35 | + print(userAbilities) | |
| 36 | + | |
| 35 | 37 | return {'accessToken': token, "userData": userData, "userAbilities": userAbilities} |
| 36 | 38 | except: |
| 37 | 39 | return jsonify({'status': '400', 'message': "Missing required fields"}), 400 |
| 40 | + | |
| 38 | 41 | |
| 39 | 42 | |
| 40 | 43 | def login(self): |
components/k2auth/setup.py
db/database.db
No preview for this file type
k2/__pycache__/k2rout.cpython-310.pyc
No preview for this file type
k2/k2rout.py
| ... | ... | @@ -15,7 +15,7 @@ |
| 15 | 15 | import sys |
| 16 | 16 | from .k2admmenu import K2admin_menus, K2admin_Menus_Prava |
| 17 | 17 | from sqlalchemy import text |
| 18 | -from flask_jwt_extended import get_jwt_identity | |
| 18 | +from flask_jwt_extended import get_jwt_identity, jwt_required | |
| 19 | 19 | |
| 20 | 20 | |
| 21 | 21 | |
| ... | ... | @@ -472,7 +472,6 @@ |
| 472 | 472 | @components_bp.route('/api/main-menu/') |
| 473 | 473 | def get_admin_menu(): |
| 474 | 474 | current_user = get_jwt_identity() |
| 475 | - print(current_user) | |
| 476 | 475 | role_id = current_user['user_role'] |
| 477 | 476 | filter_menu = [] |
| 478 | 477 | response = requests.get(f"{k2.domain}api/add-to-menu") |
| ... | ... | @@ -481,6 +480,7 @@ |
| 481 | 480 | for item in response.json(): |
| 482 | 481 | filtered_children = [] |
| 483 | 482 | for im in item['children']: |
| 483 | + | |
| 484 | 484 | if im['to'] in menu_items_list: |
| 485 | 485 | filtered_children.append(im) |
| 486 | 486 | if filtered_children: |
routes.py
| ... | ... | @@ -4,8 +4,10 @@ |
| 4 | 4 | app.register_blueprint(components_bp) |
| 5 | 5 | from components.k2test.k2test.views import k2test |
| 6 | 6 | app.register_blueprint(k2test, url_prefix='/k2test') |
| 7 | + | |
| 7 | 8 | from components.k2auth.k2auth.views import k2auth |
| 8 | 9 | app.register_blueprint(k2auth, url_prefix='/k2auth') |
| 10 | + | |
| 9 | 11 | from components.k2adm.k2adm.views import k2adm |
| 10 | 12 | app.register_blueprint(k2adm, url_prefix='/k2adm') |