正在显示
3 个修改的文件
包含
50 行增加
和
24 行删除
... | ... | @@ -93,7 +93,9 @@ class DataManager(BlueprintApi): |
93 | 93 | log = OAuthLog(user_id=user.id, username=user.username, |
94 | 94 | auth_type=AuthEnum.Other.name.lower(), |
95 | 95 | message="认证成功", create_time=datetime.now(), |
96 | - operate_type=OperateEnum.Login) | |
96 | + operate_type=OperateEnum.Login, | |
97 | + displayname=user.displayname, ip=request.remote_addr | |
98 | + ) | |
97 | 99 | db.session.add(log) |
98 | 100 | db.session.commit() |
99 | 101 | |
... | ... | @@ -145,7 +147,9 @@ class DataManager(BlueprintApi): |
145 | 147 | log = OAuthLog(user_id=user.id, username=user.username, |
146 | 148 | auth_type=AuthEnum.Other.name.lower(), |
147 | 149 | message="注销成功", create_time=datetime.now(), |
148 | - operate_type=OperateEnum.Logout, token=access_token) | |
150 | + operate_type=OperateEnum.Logout, token=access_token, | |
151 | + displayname=user.displayname, ip=request.remote_addr | |
152 | + ) | |
149 | 153 | db.session.add(log) |
150 | 154 | db.session.commit() |
151 | 155 | |
... | ... | @@ -263,6 +267,7 @@ class DataManager(BlueprintApi): |
263 | 267 | @bp.route("/oa/callback", methods=["GET"]) |
264 | 268 | def oa_callback(): |
265 | 269 | try: |
270 | + print(request.remote_addr) | |
266 | 271 | client = oauth2.WebApplicationClient( |
267 | 272 | configure.OA["client_id"]) |
268 | 273 | |
... | ... | @@ -341,9 +346,11 @@ class DataManager(BlueprintApi): |
341 | 346 | response.set_cookie('id_token', id_token, |
342 | 347 | max_age=configure.expiretime) |
343 | 348 | |
344 | - log = OAuthLog(user_id=user.id, username=user_name, auth_type=AuthEnum.Other.name.lower(), | |
349 | + log = OAuthLog(user_id=user.id, username=user_name, | |
350 | + auth_type=AuthEnum.Other.name.lower(), | |
345 | 351 | message="三方认证成功", create_time=datetime.now(), |
346 | - operate_type=OperateEnum.Login, token=access_token) | |
352 | + operate_type=OperateEnum.Login, token=access_token, | |
353 | + displayname=display_name, ip=request.remote_addr) | |
347 | 354 | db.session.add(log) |
348 | 355 | db.session.commit() |
349 | 356 | ... | ... |
1 | 1 | # coding=utf-8 |
2 | -#author: qianyingz | |
2 | +# author: qianyingz | |
3 | 3 | # createtime: 2022/03/09 |
4 | -#email: qianyingz@chinadci.com | |
5 | -from datetime import datetime | |
4 | +# email: qianyingz@chinadci.com | |
5 | +from tokenize import String | |
6 | +from numpy import number | |
7 | +from sqlalchemy import or_ | |
6 | 8 | from .models import * |
7 | 9 | from app.util.component.ApiTemplate import ApiTemplate |
8 | -import time | |
10 | +import json | |
9 | 11 | |
10 | 12 | |
11 | 13 | class Api(ApiTemplate): |
... | ... | @@ -22,10 +24,31 @@ class Api(ApiTemplate): |
22 | 24 | # 业务逻辑 |
23 | 25 | page_index = int(self.para.get("page_index", "0")) |
24 | 26 | page_size = int(self.para.get("page_size", "1000")) |
25 | - #name = self.para.get("name") | |
26 | - sort_key = self.para.get("sort_key") | |
27 | + # name = self.para.get("name") | |
28 | + order_by = self.para.get("order_by") | |
29 | + filter_param = self.para.get("filter_param", "") | |
30 | + filter_param_json = {} if filter_param == "" else json.loads( | |
31 | + filter_param) | |
32 | + kw = filter_param_json["kw"] if "kw" in filter_param_json else None | |
33 | + type = filter_param_json["type"] if "type" in filter_param_json else None | |
27 | 34 | |
28 | 35 | log_query = OAuthLog.query |
36 | + | |
37 | + if kw != None: | |
38 | + if isinstance(kw, str): | |
39 | + filter_username_query = log_query.filter(OAuthLog.username.like( | |
40 | + "%" + kw + "%")) | |
41 | + filter_display_query = log_query.filter( | |
42 | + OAuthLog.displayname.like("%" + kw + "%")) | |
43 | + log_query = filter_username_query.union( | |
44 | + filter_display_query) | |
45 | + | |
46 | + if type != None: | |
47 | + if isinstance(type, (str,int)): | |
48 | + log_query = log_query.filter(OAuthLog.operate_type == type) | |
49 | + elif isinstance(type, list): | |
50 | + log_query = log_query.filter(OAuthLog.operate_type.in_(type)) | |
51 | + | |
29 | 52 | log_query = log_query.order_by(OAuthLog.create_time.desc()) |
30 | 53 | |
31 | 54 | count = log_query.count() |
... | ... | @@ -40,14 +63,6 @@ class Api(ApiTemplate): |
40 | 63 | "auth_type": t.auth_type, |
41 | 64 | "displayname": t.displayname}, logs))} |
42 | 65 | |
43 | - # if id: | |
44 | - # tmp_user = User.query.filter_by(id=id).first() | |
45 | - # res["data"] = {"guid": tmp_user.id, "username": tmp_user.username, | |
46 | - # "role": tmp_user.role, "company": tmp_user.company, | |
47 | - # "position": tmp_user.position, "email": tmp_user.email, | |
48 | - # "phone": tmp_user.phone, "display_name": tmp_user.display_name, | |
49 | - # "status": tmp_user.status} | |
50 | - # else: | |
51 | 66 | # # 获取集合 |
52 | 67 | # userLinq = User.query.order_by(User.id.desc()) |
53 | 68 | # if name: |
... | ... | @@ -83,10 +98,14 @@ class Api(ApiTemplate): |
83 | 98 | "type": "int", |
84 | 99 | "description": "条数", |
85 | 100 | "default": 1000}, |
86 | - {"name": "sort_key", | |
101 | + {"name": "order_by", | |
87 | 102 | "in": "query", |
88 | 103 | "type": "string", |
89 | - "description": "排序"} | |
104 | + "description": "排序"}, | |
105 | + {"name": "filter_param", | |
106 | + "in": "query", | |
107 | + "type": "json", | |
108 | + "description": "过滤"} | |
90 | 109 | ], |
91 | 110 | "responses": { |
92 | 111 | 200: { | ... | ... |
1 | -from sqlalchemy import Column, Integer, Text, Time, ForeignKey, column | |
1 | +from sqlalchemy import Column, Integer, Text, Time, ForeignKey, DateTime | |
2 | 2 | from app.models import db |
3 | 3 | from authlib.integrations.sqla_oauth2 import ( |
4 | 4 | OAuth2ClientMixin, |
... | ... | @@ -21,8 +21,8 @@ class User (db.Model): |
21 | 21 | position = Column(Text) |
22 | 22 | phone = Column(Text) |
23 | 23 | email = Column(Text) |
24 | - create_time = Column(Time) | |
25 | - update_time = Column(Time) | |
24 | + create_time = Column(DateTime) | |
25 | + update_time = Column(DateTime) | |
26 | 26 | role = Column(Text) |
27 | 27 | displayname = Column(Text, nullable=True) # 昵称 |
28 | 28 | # 用户来源,默认dmap平台用户 |
... | ... | @@ -89,6 +89,6 @@ class OAuthLog(db.Model): |
89 | 89 | # 登录方式:password,三方登录 |
90 | 90 | auth_type = Column(Text) |
91 | 91 | message = Column(Text) # 登录返回提示 |
92 | - create_time = Column(Time) # 记录创建时间 | |
92 | + create_time = Column(DateTime) # 记录创建时间 | |
93 | 93 | operate_type = Column(Integer, nullable=False) # 操作类型,登录,注销 |
94 | 94 | token = Column(Text) | ... | ... |
请
注册
或
登录
后发表评论