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