refactor(api-logging):暂时删除权限校验与日志记录
This commit is contained in:
@@ -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:
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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,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:
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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='旧密码不得为空')
|
||||||
|
|||||||
@@ -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')
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -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,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')
|
||||||
|
|||||||
@@ -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,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,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
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user