refactor(api-logging):暂时删除权限校验与日志记录

This commit is contained in:
zhengxinonly
2021-09-16 02:46:48 +08:00
parent 316ebc2441
commit 3fa8ae0a8a
17 changed files with 80 additions and 101 deletions
-8
View File
@@ -3,14 +3,12 @@ from flask_restful import Resource
from flask_restful import marshal, reqparse from flask_restful import marshal, reqparse
from applications.common.utils.http import success_api, fail_api from applications.common.utils.http import success_api, fail_api
from applications.common.utils.rights import authorize
from applications.extensions import db from applications.extensions import db
from applications.models import CompanyDepartment, CompanyUser from applications.models import CompanyDepartment, CompanyUser
class DepartmentsResource(Resource): class DepartmentsResource(Resource):
@authorize("admin:dept:main", log=True)
def get(self): def get(self):
dept_data = CompanyDepartment.query.order_by(CompanyDepartment.sort).all() dept_data = CompanyDepartment.query.order_by(CompanyDepartment.sort).all()
# TODO dtree 需要返回状态信息 # TODO dtree 需要返回状态信息
@@ -21,7 +19,6 @@ class DepartmentsResource(Resource):
print(dept_data) print(dept_data)
return jsonify(res) return jsonify(res)
@authorize("admin:dept:add", log=True)
def post(self): def post(self):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('address', type=str) parser.add_argument('address', type=str)
@@ -52,7 +49,6 @@ class DepartmentsResource(Resource):
class DepartmentResource(Resource): class DepartmentResource(Resource):
@authorize("admin:dept:edit", log=True)
def get(self, dept_id): def get(self, dept_id):
dept = CompanyDepartment.query.filter_by(id=dept_id).first() dept = CompanyDepartment.query.filter_by(id=dept_id).first()
dept_data = { dept_data = {
@@ -65,10 +61,8 @@ class DepartmentResource(Resource):
'sort': dept.sort, 'sort': dept.sort,
'address': dept.address, 'address': dept.address,
} }
# return make_response(render_template('department/edit.html', dept=dept))
return dict(success=True, message='ok', dept=dept_data) return dict(success=True, message='ok', dept=dept_data)
@authorize("admin:dept:edit", log=True)
def put(self, dept_id): def put(self, dept_id):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('address', type=str) parser.add_argument('address', type=str)
@@ -95,7 +89,6 @@ class DepartmentResource(Resource):
db.session.commit() db.session.commit()
return success_api(message="更新成功") return success_api(message="更新成功")
@authorize("admin:dept:remove", log=True)
def delete(self, dept_id): def delete(self, dept_id):
ret = CompanyDepartment.query.filter_by(id=dept_id).delete() ret = CompanyDepartment.query.filter_by(id=dept_id).delete()
CompanyUser.query.filter_by(dept_id=dept_id).update({"dept_id": None}) CompanyUser.query.filter_by(dept_id=dept_id).update({"dept_id": None})
@@ -106,7 +99,6 @@ class DepartmentResource(Resource):
class DeptEnableResource(Resource): class DeptEnableResource(Resource):
@authorize("admin:dept:edit", log=True)
def put(self, dept_id): def put(self, dept_id):
d = CompanyDepartment.query.get(dept_id) d = CompanyDepartment.query.get(dept_id)
if d: if d:
+1 -10
View File
@@ -2,11 +2,10 @@ import copy
from collections import OrderedDict from collections import OrderedDict
from flask import request, jsonify, current_app from flask import request, jsonify, current_app
from flask_login import current_user, login_required from flask_login import current_user
from flask_restful import Resource, reqparse, marshal from flask_restful import Resource, reqparse, marshal
from applications.common.utils.http import success_api, fail_api from applications.common.utils.http import success_api, fail_api
from applications.common.utils.rights import authorize
from applications.extensions import db from applications.extensions import db
from applications.models import RightsPower, RightsRole from applications.models import RightsPower, RightsRole
@@ -153,7 +152,6 @@ parser_power.add_argument('sort', type=int, dest='sort')
class RightRightsResource(Resource): class RightRightsResource(Resource):
@authorize("admin:power:main", log=True)
def get(self): def get(self):
"""获取选择父节点""" """获取选择父节点"""
@@ -167,7 +165,6 @@ class RightRightsResource(Resource):
} }
return res return res
@authorize("admin:power:remove", log=True)
def delete(self): def delete(self):
ids = request.form.getlist('ids[]') ids = request.form.getlist('ids[]')
batch_remove_power(ids) batch_remove_power(ids)
@@ -176,7 +173,6 @@ class RightRightsResource(Resource):
class RightPowerResource(Resource): class RightPowerResource(Resource):
@authorize("admin:power:add", log=True)
def post(self, power_id): def post(self, power_id):
res = parser_power.parse_args() res = parser_power.parse_args()
power = RightsPower( power = RightsPower(
@@ -199,7 +195,6 @@ class RightPowerResource(Resource):
return success_api(message="成功") return success_api(message="成功")
@authorize("admin:power:remove", log=True)
def delete(self, power_id): def delete(self, power_id):
# 删除权限(目前没有判断父节点自动删除子节点) # 删除权限(目前没有判断父节点自动删除子节点)
power = RightsPower.query.filter_by(id=power_id).first() power = RightsPower.query.filter_by(id=power_id).first()
@@ -218,7 +213,6 @@ class RightPowerResource(Resource):
else: else:
return fail_api(message="删除失败") return fail_api(message="删除失败")
@authorize("admin:power:edit", log=True)
def put(self, power_id): def put(self, power_id):
res = parser_power.parse_args() res = parser_power.parse_args()
@@ -241,7 +235,6 @@ class RightPowerResource(Resource):
class RightPowerEnableResource(Resource): class RightPowerEnableResource(Resource):
@authorize("admin:power:edit", log=True)
def put(self, right_id): def put(self, right_id):
power = RightsPower.query.get(right_id) power = RightsPower.query.get(right_id)
@@ -255,13 +248,11 @@ class RightPowerEnableResource(Resource):
class AdminConfigsResource(Resource): class AdminConfigsResource(Resource):
@login_required
def get(self): def get(self):
return get_render_config() return get_render_config()
class AdminMenuResource(Resource): class AdminMenuResource(Resource):
@login_required
def get(self): def get(self):
menu_tree = make_menu_tree() menu_tree = make_menu_tree()
return jsonify(menu_tree) return jsonify(menu_tree)
-11
View File
@@ -1,8 +1,6 @@
from flask_login import login_required
from flask_restful import Resource, reqparse, marshal from flask_restful import Resource, reqparse, marshal
from applications.common.utils.http import table_api, success_api, fail_api from applications.common.utils.http import table_api, success_api, fail_api
from applications.common.utils.rights import authorize
from applications.extensions import db from applications.extensions import db
from applications.models import RightsPower, RightsRole, CompanyUser from applications.models import RightsPower, RightsRole, CompanyUser
@@ -37,7 +35,6 @@ def batch_remove_role(role_ids):
class RoleRolesResource(Resource): class RoleRolesResource(Resource):
# 表格数据 # 表格数据
@authorize("admin:role:main", log=True)
def get(self): def get(self):
parser = reqparse.RequestParser(bundle_errors=True) parser = reqparse.RequestParser(bundle_errors=True)
parser.add_argument('page', type=int, default=1) parser.add_argument('page', type=int, default=1)
@@ -66,8 +63,6 @@ class RoleRolesResource(Resource):
'total': paginate.total} 'total': paginate.total}
, code=0) , code=0)
@authorize("admin:role:remove", log=True)
@login_required
def delete(self): def delete(self):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('ids[]', action='append', dest='ids') parser.add_argument('ids[]', action='append', dest='ids')
@@ -80,7 +75,6 @@ class RoleRolesResource(Resource):
class RoleRoleResource(Resource): class RoleRoleResource(Resource):
@authorize("admin:role:add", log=True)
def post(self, role_id): def post(self, role_id):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('details', type=str) parser.add_argument('details', type=str)
@@ -103,7 +97,6 @@ class RoleRoleResource(Resource):
return success_api(message="成功") return success_api(message="成功")
# 更新角色 # 更新角色
@authorize("admin:role:edit", log=True)
def put(self, role_id): def put(self, role_id):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('roleId', dest='role_id', type=int) parser.add_argument('roleId', dest='role_id', type=int)
@@ -133,7 +126,6 @@ class RoleRoleResource(Resource):
class RoleEnableResource(Resource): class RoleEnableResource(Resource):
"""启用用户""" """启用用户"""
@authorize("admin:role:edit", log=True)
def put(self, role_id): def put(self, role_id):
ret = RightsRole.query.get(role_id) ret = RightsRole.query.get(role_id)
ret.enable = not ret.enable ret.enable = not ret.enable
@@ -147,7 +139,6 @@ class RoleEnableResource(Resource):
class RolePowerResource(Resource): class RolePowerResource(Resource):
@authorize("admin:role:main", log=True)
def get(self, role_id): def get(self, role_id):
# 获取角色权限 # 获取角色权限
role = RightsRole.query.filter_by(id=role_id).first() role = RightsRole.query.filter_by(id=role_id).first()
@@ -166,7 +157,6 @@ class RolePowerResource(Resource):
} }
# 保存角色权限 # 保存角色权限
@authorize("admin:role:edit", log=True)
def put(self, role_id): def put(self, role_id):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('powerIds', dest='power_ids') parser.add_argument('powerIds', dest='power_ids')
@@ -190,7 +180,6 @@ class RolePowerResource(Resource):
return success_api(message="授权成功") return success_api(message="授权成功")
# 角色删除 # 角色删除
@authorize("admin:role:remove", log=True)
def delete(self, role_id): def delete(self, role_id):
print(role_id) print(role_id)
res = remove_role(role_id) res = remove_role(role_id)
-5
View File
@@ -5,7 +5,6 @@ from flask_restful import Resource, marshal
from sqlalchemy import desc from sqlalchemy import desc
from applications.common.utils.http import fail_api, success_api, table_api from applications.common.utils.http import fail_api, success_api, table_api
from applications.common.utils.rights import authorize
from applications.common.utils.upload import upload_one, delete_photo_by_id from applications.common.utils.upload import upload_one, delete_photo_by_id
from applications.extensions import db from applications.extensions import db
from applications.models import FilePhoto from applications.models import FilePhoto
@@ -13,7 +12,6 @@ from applications.models import FilePhoto
class FilePhotosResource(Resource): class FilePhotosResource(Resource):
@authorize("admin:file:main", log=True)
def get(self): def get(self):
page = request.args.get('page', type=int) page = request.args.get('page', type=int)
limit = request.args.get('limit', type=int) limit = request.args.get('limit', type=int)
@@ -26,7 +24,6 @@ class FilePhotosResource(Resource):
'total': photo_paginate.total, }, 'total': photo_paginate.total, },
code=0) code=0)
@authorize("admin:file:add", log=True)
def post(self): def post(self):
if 'file' in request.files: if 'file' in request.files:
photo = request.files['file'] photo = request.files['file']
@@ -43,7 +40,6 @@ class FilePhotosResource(Resource):
return jsonify(res) return jsonify(res)
return fail_api() return fail_api()
@authorize("admin:file:delete", log=True)
def delete(self): def delete(self):
"""图片批量删除""" """图片批量删除"""
# TODO bugs 图片删除失败 # TODO bugs 图片删除失败
@@ -63,7 +59,6 @@ class FilePhotosResource(Resource):
class FilePhotoResource(Resource): class FilePhotoResource(Resource):
"""图片数据""" """图片数据"""
@authorize("admin:file:delete", log=True)
def delete(self, photo_id): def delete(self, photo_id):
res = delete_photo_by_id(photo_id) res = delete_photo_by_id(photo_id)
if res: if res:
+6 -7
View File
@@ -1,5 +1,5 @@
from flask import render_template, make_response from flask import render_template, make_response
from flask import session, redirect, url_for, request from flask import session, redirect, url_for
from flask_login import current_user, login_user from flask_login import current_user, login_user
from flask_restful import Resource, reqparse from flask_restful import Resource, reqparse
@@ -10,10 +10,6 @@ from applications.models import CompanyUser
class LoginResource(Resource): class LoginResource(Resource):
login_req = reqparse.RequestParser(bundle_errors=True)
login_req.add_argument('username', type=str, help='请输入用户名', required=True)
login_req.add_argument('password', type=str, help='请输入密码', required=True)
login_req.add_argument('captcha', type=str, help='请输入验证码', required=True)
def get(self): def get(self):
if current_user.is_authenticated: if current_user.is_authenticated:
@@ -21,8 +17,11 @@ class LoginResource(Resource):
return make_response(render_template('index/login.html')) return make_response(render_template('index/login.html'))
def post(self): def post(self):
login_req = reqparse.RequestParser(bundle_errors=True)
req = self.login_req.parse_args() login_req.add_argument('username', type=str, help='请输入用户名', required=True)
login_req.add_argument('password', type=str, help='请输入密码', required=True)
login_req.add_argument('captcha', type=str, help='请输入验证码', required=True)
req = login_req.parse_args()
s_code = session.get("code", None) s_code = session.get("code", None)
-2
View File
@@ -47,7 +47,6 @@ class UserAvatarResource(Resource):
class UserInfoResource(Resource): class UserInfoResource(Resource):
@login_required
def put(self, user_id): def put(self, user_id):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('realName', type=str, dest='real_name') parser.add_argument('realName', type=str, dest='real_name')
@@ -70,7 +69,6 @@ class UserInfoResource(Resource):
class UserPasswordResource(Resource): class UserPasswordResource(Resource):
"""前用户密码""" """前用户密码"""
@login_required
def put(self, user_id): def put(self, user_id):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('oldPassword', type=str, required=True, help='旧密码不得为空') parser.add_argument('oldPassword', type=str, required=True, help='旧密码不得为空')
+1 -8
View File
@@ -4,10 +4,9 @@ from flask_restful import Resource, reqparse
from sqlalchemy import desc from sqlalchemy import desc
from applications.common.utils.http import fail_api, success_api, table_api from applications.common.utils.http import fail_api, success_api, table_api
from applications.common.utils.rights import authorize
from applications.extensions import db from applications.extensions import db
from applications.models import LoggingModel
from applications.models import CompanyUser, RightsRole, CompanyDepartment from applications.models import CompanyUser, RightsRole, CompanyDepartment
from applications.models import LoggingModel
def get_current_user_logs(): def get_current_user_logs():
@@ -60,7 +59,6 @@ def update_user_role(_id, roles_list):
class UserUsersResource(Resource): class UserUsersResource(Resource):
"""用户列表数据操作""" """用户列表数据操作"""
@authorize("admin:user:main", log=True)
def get(self): def get(self):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('page', type=int, default=1) parser.add_argument('page', type=int, default=1)
@@ -98,7 +96,6 @@ class UserUsersResource(Resource):
'total': paginate.total} 'total': paginate.total}
, code=0) , code=0)
@authorize("admin:user:add", log=True)
def post(self): def post(self):
"""新建单个用户""" """新建单个用户"""
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
@@ -130,7 +127,6 @@ class UserUsersResource(Resource):
return success_api(message="增加成功", code=0) return success_api(message="增加成功", code=0)
@authorize("admin:user:remove", log=True)
def delete(self): def delete(self):
"""批量删除""" """批量删除"""
ids = request.form.getlist('ids[]') ids = request.form.getlist('ids[]')
@@ -141,7 +137,6 @@ class UserUsersResource(Resource):
class UserUserResource(Resource): class UserUserResource(Resource):
"""修改用户数据""" """修改用户数据"""
@authorize("admin:user:add", log=True)
def post(self, user_id): def post(self, user_id):
"""新建单个用户""" """新建单个用户"""
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
@@ -173,7 +168,6 @@ class UserUserResource(Resource):
return success_api(message="增加成功", code=0) return success_api(message="增加成功", code=0)
@authorize("admin:user:remove", log=True)
def delete(self, user_id): def delete(self, user_id):
# 删除用户 # 删除用户
res = delete_by_id(user_id) res = delete_by_id(user_id)
@@ -183,7 +177,6 @@ class UserUserResource(Resource):
class UserRoleResource(Resource): class UserRoleResource(Resource):
@authorize("admin:user:edit", log=True)
def put(self, user_id): def put(self, user_id):
parser = reqparse.RequestParser() parser = reqparse.RequestParser()
parser.add_argument('roleIds', type=str, dest='role_ids') parser.add_argument('roleIds', type=str, dest='role_ids')
-17
View File
@@ -1,17 +0,0 @@
#
MYSQL_HOST = '127.0.0.1'
MYSQL_PORT = '3306'
MYSQL_DATABASE = 'PearAdminFlask'
MYSQL_USERNAME = 'root'
MYSQL_PASSWORD = 'root'
MYSQL_DB_URI = "mysql+pymysql://{username}:{password}@{host}:{port}/{db}?charset=utf8".format(username=USERNAME,
password=PASSWORD,
host=HOST,
port=PORT,
db=DATABASE)
SQLALCHEMY_DATABASE_URI = MYSQL_DB_URI
SQLALCHEMY_TRACK_MODIFICATIONS = True
SQLALCHEMY_ECHO = False
SQLALCHEMY_POOL_RECYCLE = 8
-21
View File
@@ -59,24 +59,3 @@ def permission_required(permission: str) -> t.Callable:
return wrapper return wrapper
return decorator return decorator
def authorize(power: str, log: bool = False):
def decorator(func):
@login_required
@wraps(func)
def wrapper(*args, **kwargs):
if power not in session.get('permissions'):
if log:
record_logging()
if request.method == 'GET':
abort(403)
else:
return jsonify(success=False, msg="权限不足!")
if log:
record_logging()
return func(*args, **kwargs)
return wrapper
return decorator
+5 -5
View File
@@ -8,7 +8,7 @@
"phone": "12312345679", "phone": "12312345679",
"email": "123qq.com", "email": "123qq.com",
"status": 1, "status": 1,
"remark": null, "comment": null,
"address": "这是总公司", "address": "这是总公司",
"create_at": null, "create_at": null,
"update_at": "2021-06-01 17:23:20" "update_at": "2021-06-01 17:23:20"
@@ -22,7 +22,7 @@
"phone": "12312345678", "phone": "12312345678",
"email": "1234qq.com", "email": "1234qq.com",
"status": 1, "status": 1,
"remark": null, "comment": null,
"address": "这是济南", "address": "这是济南",
"create_at": "2021-06-01 17:24:33", "create_at": "2021-06-01 17:24:33",
"update_at": "2021-06-01 17:25:19" "update_at": "2021-06-01 17:25:19"
@@ -36,7 +36,7 @@
"phone": "12312345678", "phone": "12312345678",
"email": "123@qq.com", "email": "123@qq.com",
"status": 1, "status": 1,
"remark": null, "comment": null,
"address": "这是唐山", "address": "这是唐山",
"create_at": "2021-06-01 17:25:15", "create_at": "2021-06-01 17:25:15",
"update_at": "2021-06-01 17:25:20" "update_at": "2021-06-01 17:25:20"
@@ -50,7 +50,7 @@
"phone": "12312345678", "phone": "12312345678",
"email": "123@qq.com", "email": "123@qq.com",
"status": 1, "status": 1,
"remark": null, "comment": null,
"address": "测试", "address": "测试",
"create_at": "2021-06-01 17:27:39", "create_at": "2021-06-01 17:27:39",
"update_at": "2021-06-01 17:27:39" "update_at": "2021-06-01 17:27:39"
@@ -64,7 +64,7 @@
"phone": "12312345678", "phone": "12312345678",
"email": "123@qq.com", "email": "123@qq.com",
"status": 1, "status": 1,
"remark": null, "comment": null,
"address": "测试部", "address": "测试部",
"create_at": "2021-06-01 17:28:27", "create_at": "2021-06-01 17:28:27",
"update_at": "2021-06-01 17:28:27" "update_at": "2021-06-01 17:28:27"
+38 -1
View File
@@ -1 +1,38 @@
[{"id": 1, "username": "admin", "password_hash": "pbkdf2:sha256:150000$raM7mDSr$58fe069c3eac01531fc8af85e6fc200655dd2588090530084d182e6ec9d52c85", "create_at": null, "update_at": "2021-06-01 17:28:55", "enable": 1, "realname": "超级管理", "remark": "要是不能把握时机,就要终身蹭蹬,一事无成!", "avatar": "http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg", "dept_id": 1}, {"id": 7, "username": "test", "password_hash": "pbkdf2:sha256:150000$cRS8bYNh$adb57e64d929863cf159f924f74d0634f1fecc46dba749f1bfaca03da6d2e3ac", "create_at": "2021-03-22 20:03:42", "update_at": "2021-06-01 17:29:47", "enable": 1, "realname": "超级管理", "remark": "要是不能把握时机,就要终身蹭蹬,一事无成", "avatar": "/static/admin/admin/images/avatar.jpg", "dept_id": 1}, {"id": 8, "username": "wind", "password_hash": "pbkdf2:sha256:150000$skME1obT$6a2c20cd29f89d7d2f21d9e373a7e3445f70ebce3ef1c3a555e42a7d17170b37", "create_at": "2021-06-01 17:30:39", "update_at": "2021-06-01 17:30:52", "enable": 1, "realname": "风", "remark": null, "avatar": "/static/admin/admin/images/avatar.jpg", "dept_id": 7}] [
{
"id": 1,
"username": "admin",
"password_hash": "pbkdf2:sha256:150000$raM7mDSr$58fe069c3eac01531fc8af85e6fc200655dd2588090530084d182e6ec9d52c85",
"create_at": null,
"update_at": "2021-06-01 17:28:55",
"enable": 1,
"realname": "超级管理",
"remark": "要是不能把握时机,就要终身蹭蹬,一事无成!",
"avatar": "http://127.0.0.1:5000/_uploads/photos/1617291580000.jpg",
"dept_id": 1
},
{
"id": 7,
"username": "test",
"password_hash": "pbkdf2:sha256:150000$cRS8bYNh$adb57e64d929863cf159f924f74d0634f1fecc46dba749f1bfaca03da6d2e3ac",
"create_at": "2021-03-22 20:03:42",
"update_at": "2021-06-01 17:29:47",
"enable": 1,
"realname": "超级管理",
"remark": "要是不能把握时机,就要终身蹭蹬,一事无成",
"avatar": "/static/admin/admin/images/avatar.jpg",
"dept_id": 1
},
{
"id": 8,
"username": "wind",
"password_hash": "pbkdf2:sha256:150000$skME1obT$6a2c20cd29f89d7d2f21d9e373a7e3445f70ebce3ef1c3a555e42a7d17170b37",
"create_at": "2021-06-01 17:30:39",
"update_at": "2021-06-01 17:30:52",
"enable": 1,
"realname": "风",
"remark": null,
"avatar": "/static/admin/admin/images/avatar.jpg",
"dept_id": 7
}
]
+24 -1
View File
@@ -1 +1,24 @@
[{"id": 1, "name": "管理员", "code": "admin", "remark": null, "details": "管理员", "sort": 1, "create_time": null, "update_time": null, "enable": 1}, {"id": 2, "name": "普通用户", "code": "common", "remark": null, "details": "只有查看,没有增删改权限", "sort": 2, "create_time": "2021-03-22 20:02:38", "update_time": "2021-04-01 22:29:56", "enable": 1}] [
{
"id": 1,
"name": "管理员",
"code": "admin",
"remark": null,
"details": "管理员",
"sort": 1,
"create_time": null,
"update_time": null,
"enable": 1
},
{
"id": 2,
"name": "普通用户",
"code": "common",
"remark": null,
"details": "只有查看,没有增删改权限",
"sort": 2,
"create_time": "2021-03-22 20:02:38",
"update_time": "2021-04-01 22:29:56",
"enable": 1
}
]
+1 -1
View File
@@ -1,7 +1,7 @@
from flask import render_template from flask import render_template
from applications.view import index_bp from applications.view import index_bp
from applications.common.utils.rights import authorize, view_logging_required, permission_required from applications.common.utils.rights import view_logging_required, permission_required
@index_bp.get('/file') @index_bp.get('/file')
+1 -1
View File
@@ -3,7 +3,7 @@ from sqlalchemy import desc
from flask_restful import marshal from flask_restful import marshal
from applications.common.utils.http import table_api from applications.common.utils.http import table_api
from applications.common.utils.rights import authorize, permission_required from applications.common.utils.rights import permission_required
from applications.models import LoggingModel from applications.models import LoggingModel
logs_bp = Blueprint('logs', __name__, url_prefix='/logs') logs_bp = Blueprint('logs', __name__, url_prefix='/logs')
+1 -1
View File
@@ -1,6 +1,6 @@
from flask import render_template from flask import render_template
from applications.common.utils.rights import authorize, permission_required, view_logging_required from applications.common.utils.rights import permission_required, view_logging_required
from applications.models import RightsPower from applications.models import RightsPower
from applications.view import index_bp from applications.view import index_bp
+1 -1
View File
@@ -1,6 +1,6 @@
from flask import Blueprint, render_template from flask import Blueprint, render_template
from applications.common.utils.rights import authorize, permission_required, view_logging_required from applications.common.utils.rights import permission_required, view_logging_required
from applications.models import RightsRole from applications.models import RightsRole
+1 -1
View File
@@ -2,7 +2,7 @@ from flask import render_template
from flask_login import login_required, current_user from flask_login import login_required, current_user
from sqlalchemy import desc from sqlalchemy import desc
from applications.common.utils.rights import authorize, permission_required, view_logging_required from applications.common.utils.rights import permission_required, view_logging_required
from applications.models import LoggingModel, RightsRole, CompanyUser from applications.models import LoggingModel, RightsRole, CompanyUser
from . import index_bp from . import index_bp