Commit dba3393541152b943c2b50373ccff262049bfcc2

Authored by Яна Степаненко
1 parent e3b1c2ee47

fix register

Showing 10 changed files with 4 additions and 3 deletions Inline Diff

__pycache__/main.cpython-310.pyc
No preview for this file type
__pycache__/routes.cpython-310.pyc
No preview for this file type
components/adm/__pycache__/__init__.cpython-310.pyc
No preview for this file type
components/adm/adm/__pycache__/views.cpython-310.pyc
No preview for this file type
components/adm/adm/views.py
1 import hashlib 1 import hashlib
2 import uuid 2 import uuid
3 from flask import Blueprint, request, jsonify 3 from flask import Blueprint, request, jsonify
4 from flask import current_app as k2 4 from flask import current_app as k2
5 from flask_jwt_extended import jwt_required, get_jwt_identity 5 from flask_jwt_extended import jwt_required, get_jwt_identity
6 # from flask_sqlalchemy import session 6 # from flask_sqlalchemy import session
7 # from sqlalchemy.orm import sessionmaker 7 # from sqlalchemy.orm import sessionmaker
8 # from k2.k2inst import Component 8 # from k2.k2inst import Component
9 9
10 from .models import k2users 10 from .models import k2users
11 11
12 12
13 adm = Blueprint('adm', __name__, template_folder='templates', static_folder='static', static_url_path='/adm') 13 adm = Blueprint('adm', __name__, template_folder='templates', static_folder='static', static_url_path='/adm')
14 14
15 15
16 @adm.route('/register', methods=["POST"]) 16 @adm.route('/register', methods=["POST"])
17 def register(): 17 def register():
18 params = request.json 18 params = request.json
19 session = k2.extensions['sqlalchemy'].db.session 19 session = k2.extensions['sqlalchemy'].db.session
20 try: 20 exist = session.query(k2users).filter_by(login=request.json['login']).first()
21 if not exist:
21 user = k2users(**params) 22 user = k2users(**params)
22 session.add(user) 23 session.add(user)
23 session.commit() 24 session.commit()
24 token = user.get_token() 25 token = user.get_token()
25 return {'access_token': token} 26 return {'access_token': token}
26 except: 27 else:
27 return jsonify({'error': 'Unauthorized'}), 401 28 return jsonify({'error': 'User exist'}), 401
28 29
29 30
30 @adm.route('/login', methods=["POST"]) 31 @adm.route('/login', methods=["POST"])
31 def login(): 32 def login():
32 params = request.json 33 params = request.json
33 login = params.get('login') 34 login = params.get('login')
34 password = params.get('password') 35 password = params.get('password')
35 user = k2users.authenticate(login, password) 36 user = k2users.authenticate(login, password)
36 if user: 37 if user:
37 token = user.get_token() 38 token = user.get_token()
38 return {'access_token': token} 39 return {'access_token': token}
39 else: 40 else:
40 return jsonify({'error': 'Unauthorized'}), 401 41 return jsonify({'error': 'Unauthorized'}), 401
41 42
42 43
43 @adm.route('/logout', methods=["GET"]) 44 @adm.route('/logout', methods=["GET"])
44 @jwt_required() 45 @jwt_required()
45 def logout(): 46 def logout():
46 response = { 47 response = {
47 'message': 'Logged out successfully' 48 'message': 'Logged out successfully'
48 } 49 }
49 return jsonify(response) 50 return jsonify(response)
50 51
51 52
52 @adm.route('/users', methods=["GET"]) 53 @adm.route('/users', methods=["GET"])
53 @jwt_required() 54 @jwt_required()
54 def grid_users(): 55 def grid_users():
55 return jsonify({"data": "users"}) 56 return jsonify({"data": "users"})
56 57
57 58
58 @adm.route('/roles', methods=["GET"]) 59 @adm.route('/roles', methods=["GET"])
59 @jwt_required() 60 @jwt_required()
60 def grid_roles(): 61 def grid_roles():
61 return jsonify({"data": "roles"}) 62 return jsonify({"data": "roles"})
62 63
63 64
64 @adm.route('/usersclients', methods=["GET"]) 65 @adm.route('/usersclients', methods=["GET"])
65 @jwt_required() 66 @jwt_required()
66 def users_clients(): 67 def users_clients():
67 return jsonify({"data": "roles"}) 68 return jsonify({"data": "roles"})
68 69
69 @adm.route('/menuaaccess', methods=["GET"]) 70 @adm.route('/menuaaccess', methods=["GET"])
70 @jwt_required() 71 @jwt_required()
71 def menu_aaccess(): 72 def menu_aaccess():
72 return jsonify({"data": "roles"}) 73 return jsonify({"data": "roles"})
73 74
74 75
75 @adm.route('/newUser', methods=["GET", "POST"]) 76 @adm.route('/newUser', methods=["GET", "POST"])
76 @jwt_required() 77 @jwt_required()
77 def newUser(): 78 def newUser():
78 session = k2.extensions['sqlalchemy'].db.session 79 session = k2.extensions['sqlalchemy'].db.session
79 exist = session.query(k2users).filter_by(login=request.json['login']).first() 80 exist = session.query(k2users).filter_by(login=request.json['login']).first()
80 if not exist: 81 if not exist:
81 res = k2users( 82 res = k2users(
82 user_id=hashlib.md5(str(uuid.uuid4()).encode()).hexdigest(), 83 user_id=hashlib.md5(str(uuid.uuid4()).encode()).hexdigest(),
83 login=request.json['login'], 84 login=request.json['login'],
84 name=request.json['name'], 85 name=request.json['name'],
85 email=request.json['email'], 86 email=request.json['email'],
86 password=hashlib.md5(request.json['password'].encode()).hexdigest(), 87 password=hashlib.md5(request.json['password'].encode()).hexdigest(),
87 phone=request.json['phone']) 88 phone=request.json['phone'])
88 if res: 89 if res:
89 session.add(res) 90 session.add(res)
90 session.commit() 91 session.commit()
91 return jsonify({'status': 'ok'}) 92 return jsonify({'status': 'ok'})
92 else: 93 else:
93 return jsonify({'error': 'Such user exist'}), 404 94 return jsonify({'error': 'Such user exist'}), 404
94 95
95 96
96 @adm.route('/changePassword', methods=["POST"]) 97 @adm.route('/changePassword', methods=["POST"])
97 @jwt_required() 98 @jwt_required()
98 def changePassword(): 99 def changePassword():
99 session = k2.extensions['sqlalchemy'].db.session 100 session = k2.extensions['sqlalchemy'].db.session
100 current_user = get_jwt_identity() 101 current_user = get_jwt_identity()
101 user = session.query(k2users).filter_by(user_id=current_user).first() 102 user = session.query(k2users).filter_by(user_id=current_user).first()
102 if user.password == hashlib.md5(request.json['old_password'].encode()).hexdigest(): 103 if user.password == hashlib.md5(request.json['old_password'].encode()).hexdigest():
103 if request.json['new_password'] == request.json['re_new_password']: 104 if request.json['new_password'] == request.json['re_new_password']:
104 user.password = hashlib.md5(request.json['new_password'].encode()).hexdigest() 105 user.password = hashlib.md5(request.json['new_password'].encode()).hexdigest()
105 session.commit() 106 session.commit()
106 else: 107 else:
107 return jsonify({'error': 'Пароль не найден в базе'}), 404 108 return jsonify({'error': 'Пароль не найден в базе'}), 404
108 else: 109 else:
109 return jsonify({'error': 'Пароль не совпвдает'}), 404 110 return jsonify({'error': 'Пароль не совпвдает'}), 404
110 return jsonify({'status': 'ok'}) 111 return jsonify({'status': 'ok'})
111 112
112 113
113 @adm.route('/menu-items') 114 @adm.route('/menu-items')
114 def menu_items(): 115 def menu_items():
115 menu = [ 116 menu = [
116 {"heading": 'APPS & PAGES'}, 117 {"heading": 'APPS & PAGES'},
117 { 118 {
118 "title": 'Адміністрування сайту', 119 "title": 'Адміністрування сайту',
119 120
120 "icon": {"icon": 'mdi mdi-database'}, 121 "icon": {"icon": 'mdi mdi-database'},
121 "children": [ 122 "children": [
122 {'title': 'Зміна паролю', 'to': 'adm-changePassword'}, 123 {'title': 'Зміна паролю', 'to': 'adm-changePassword'},
123 {'title': 'Новий користувач', 'to': 'adm-newUser'}, 124 {'title': 'Новий користувач', 'to': 'adm-newUser'},
124 {'title': 'Користувачі', 'to': 'adm-users'}, 125 {'title': 'Користувачі', 'to': 'adm-users'},
125 {'title': 'Користувачі клієнти', 'to': 'adm-usersclients'}, 126 {'title': 'Користувачі клієнти', 'to': 'adm-usersclients'},
126 {'title': 'Права', 'to': 'adm-roles'}, 127 {'title': 'Права', 'to': 'adm-roles'},
127 {'title': 'Доступ до меню', 'to': 'adm-menuaaccess'}, 128 {'title': 'Доступ до меню', 'to': 'adm-menuaaccess'},
128 ], 129 ],
129 }] 130 }]
130 131
131 return menu 132 return menu
132 133
133 134
134 135
135 136
136 137
137 138
components/k2test/k2test/__pycache__/views.cpython-310.pyc
No preview for this file type
k2/__pycache__/__init__.cpython-310.pyc
No preview for this file type
k2/__pycache__/k2cfg.cpython-310.pyc
No preview for this file type
k2/__pycache__/k2inst.cpython-310.pyc
No preview for this file type
k2/__pycache__/k2obj.cpython-310.pyc
No preview for this file type