lesscode-py 0.4.17__tar.gz → 0.4.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/PKG-INFO +1 -1
- lesscode-py-0.4.18/lesscode/utils/custom_type.py +34 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/wrapper.py +1 -26
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/version.py +1 -1
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/base_handler.py +19 -51
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/web_server.py +3 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode_py.egg-info/PKG-INFO +1 -1
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode_py.egg-info/SOURCES.txt +1 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/README.md +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/base_connection_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/base_sql_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/clickhouse/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/clickhouse/clickhouse_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/clickhouse/clickhouse_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/condition_wrapper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/connection_info.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/db_function.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/dm/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/dm/dm_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/dm/dm_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/ds_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/elasticsearch/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/elasticsearch/elasticsearch_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/elasticsearch/elasticsearch_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/es/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/es/es_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/es/es_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/es/es_request.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/generic/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/generic/generic_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/generic/generic_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/init_connection_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/mongodb/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/mongodb/base_model.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/mongodb/mongodb_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/mongodb/mongodb_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/mysql/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/mysql/mysql_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/mysql/mysql_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/nebula/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/nebula/nebula_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/nebula/nebula_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/neo4j/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/neo4j/neo4j_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/neo4j/neo4j_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/page.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/postgresql/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/postgresql/postgresql_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/postgresql/postgresql_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/redis/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/redis/redis_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/redis/redis_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/redis_cluster/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/redis_cluster/redis_cluster_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/redis_cluster/redis_cluster_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/relational_db_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/sqlalchemy/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/sqlalchemy/sqlalchemy_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/sqlalchemy/sqlalchemy_model_service.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/sqlalchemy/sqlalchemy_pool.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/extend_handlers/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/extend_handlers/doc/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/extend_handlers/doc/swagger_interface_doc_handler.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/extend_handlers/not_found_handler.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/mq/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/mq/kafka/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/mq/kafka/kafka_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/mq/rabbitmq/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/mq/rabbitmq/rabbitmq_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/sentry/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/sentry/sentry_monitor.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/task/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/task/job_info.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/task/task_helper.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/CacheUtil.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/cache_utils.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/doc/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/doc/interface_doc.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/es_log/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/es_log/record_log.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/json.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/oss/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/oss/aliyun_oss.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/oss/ks3_oss.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/request.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/utils/upms_util.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/__init__.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/base_server_send_event_handler.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/base_websocket_handler.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/business_exception.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/native_handler.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/response_result.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/router_mapping.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/web/status_code.py +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode_py.egg-info/dependency_links.txt +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode_py.egg-info/top_level.txt +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/setup.cfg +0 -0
- {lesscode-py-0.4.17 → lesscode-py-0.4.18}/setup.py +0 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
class User:
|
|
2
|
+
"""
|
|
3
|
+
用户对象类
|
|
4
|
+
"""
|
|
5
|
+
|
|
6
|
+
def __init__(self):
|
|
7
|
+
# '账号id',
|
|
8
|
+
self.id = None
|
|
9
|
+
# 用户名
|
|
10
|
+
self.username = None
|
|
11
|
+
# '密码',
|
|
12
|
+
self.password = None
|
|
13
|
+
# '显示名',
|
|
14
|
+
self.display_name = None
|
|
15
|
+
# 手机号,
|
|
16
|
+
self.phone_no = None
|
|
17
|
+
# 邮箱
|
|
18
|
+
self.email = None
|
|
19
|
+
# 组织机构id',
|
|
20
|
+
self.org_id = None
|
|
21
|
+
# '1正常(激活);2未激活(管理员新增,首次登录需要改密码); 3锁定(登录错误次数超限,锁定时长可配置); 4休眠(长期未登录(字段,时长可配置),定时) 5禁用-账号失效;
|
|
22
|
+
self.account_status = None
|
|
23
|
+
# 角色id集合
|
|
24
|
+
self.roleIds = None
|
|
25
|
+
|
|
26
|
+
def __str__(self):
|
|
27
|
+
return (f"User(id={self.id},username={self.username},phone_no={self.phone_no},"
|
|
28
|
+
f"display_name={self.display_name},email={self.email},org_id={self.org_id},"
|
|
29
|
+
f"account_status={self.account_status},roleIds={self.roleIds})")
|
|
30
|
+
|
|
31
|
+
def __repr__(self):
|
|
32
|
+
return (f"User(id={self.id},username={self.username},phone_no={self.phone_no},"
|
|
33
|
+
f"display_name={self.display_name},email={self.email},org_id={self.org_id},"
|
|
34
|
+
f"account_status={self.account_status},roleIds={self.roleIds})")
|
|
@@ -3,36 +3,11 @@ import json
|
|
|
3
3
|
|
|
4
4
|
from tornado.options import options
|
|
5
5
|
|
|
6
|
+
from lesscode.utils.custom_type import User
|
|
6
7
|
from lesscode.web.business_exception import BusinessException
|
|
7
8
|
from lesscode.web.status_code import StatusCode
|
|
8
9
|
|
|
9
10
|
|
|
10
|
-
class User:
|
|
11
|
-
"""
|
|
12
|
-
用户对象类
|
|
13
|
-
"""
|
|
14
|
-
|
|
15
|
-
def __init__(self):
|
|
16
|
-
# '账号id',
|
|
17
|
-
self.id = None
|
|
18
|
-
# 用户名
|
|
19
|
-
self.username = None
|
|
20
|
-
# '密码',
|
|
21
|
-
self.password = None
|
|
22
|
-
# '显示名',
|
|
23
|
-
self.display_name = None
|
|
24
|
-
# 手机号,
|
|
25
|
-
self.phone_no = None
|
|
26
|
-
# 邮箱
|
|
27
|
-
self.email = None
|
|
28
|
-
# 组织机构id',
|
|
29
|
-
self.org_id = None
|
|
30
|
-
# '1正常(激活);2未激活(管理员新增,首次登录需要改密码); 3锁定(登录错误次数超限,锁定时长可配置); 4休眠(长期未登录(字段,时长可配置),定时) 5禁用-账号失效;
|
|
31
|
-
self.account_status = None
|
|
32
|
-
# 角色id集合
|
|
33
|
-
self.roleIds = None
|
|
34
|
-
|
|
35
|
-
|
|
36
11
|
def user_verification(username="admin", **kw):
|
|
37
12
|
def wrapper(func):
|
|
38
13
|
@functools.wraps(func)
|
|
@@ -22,6 +22,7 @@ from tornado.web import RequestHandler, Application
|
|
|
22
22
|
|
|
23
23
|
from lesscode.task.task_helper import TaskHelper
|
|
24
24
|
from lesscode.utils.CacheUtil import async_common_cache, common_cache
|
|
25
|
+
from lesscode.utils.custom_type import User
|
|
25
26
|
from lesscode.utils.es_log.record_log import es_record_log
|
|
26
27
|
from lesscode.utils.json import JSONEncoder
|
|
27
28
|
from lesscode.utils.request import sync_common_request_origin
|
|
@@ -389,21 +390,24 @@ class BaseHandler(RequestHandler):
|
|
|
389
390
|
获取当前用户信息
|
|
390
391
|
:return:
|
|
391
392
|
"""
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
393
|
+
if not options.custom_current_user_switch:
|
|
394
|
+
user_json = self.request.headers.get("User")
|
|
395
|
+
if user_json:
|
|
396
|
+
# TODO 未做加密
|
|
397
|
+
user_info = json.loads(user_json)
|
|
398
|
+
if user_info and isinstance(user_info, dict):
|
|
399
|
+
user = User()
|
|
400
|
+
for key in user_info:
|
|
401
|
+
value = user_info.get(key)
|
|
402
|
+
if value and isinstance(value, str):
|
|
403
|
+
user_info[key] = unquote(value)
|
|
404
|
+
if key == "roleIds" and value and isinstance(value, str):
|
|
405
|
+
user_info[key] = json.loads(value)
|
|
406
|
+
setattr(user, key, user_info[key])
|
|
407
|
+
|
|
408
|
+
return user
|
|
409
|
+
else:
|
|
410
|
+
return options.custom_current_user_func(self)
|
|
407
411
|
return None
|
|
408
412
|
|
|
409
413
|
def redirect(self, url: str, permanent: bool = False, status: int = None) -> None:
|
|
@@ -438,42 +442,6 @@ class BaseHandler(RequestHandler):
|
|
|
438
442
|
data["modify_time"] = datetime.now()
|
|
439
443
|
|
|
440
444
|
|
|
441
|
-
class User:
|
|
442
|
-
"""
|
|
443
|
-
用户对象类
|
|
444
|
-
"""
|
|
445
|
-
|
|
446
|
-
def __init__(self):
|
|
447
|
-
# '账号id',
|
|
448
|
-
self.id = None
|
|
449
|
-
# 用户名
|
|
450
|
-
self.username = None
|
|
451
|
-
# '密码',
|
|
452
|
-
self.password = None
|
|
453
|
-
# '显示名',
|
|
454
|
-
self.display_name = None
|
|
455
|
-
# 手机号,
|
|
456
|
-
self.phone_no = None
|
|
457
|
-
# 邮箱
|
|
458
|
-
self.email = None
|
|
459
|
-
# 组织机构id',
|
|
460
|
-
self.org_id = None
|
|
461
|
-
# '1正常(激活);2未激活(管理员新增,首次登录需要改密码); 3锁定(登录错误次数超限,锁定时长可配置); 4休眠(长期未登录(字段,时长可配置),定时) 5禁用-账号失效;
|
|
462
|
-
self.account_status = None
|
|
463
|
-
# 角色id集合
|
|
464
|
-
self.roleIds = None
|
|
465
|
-
|
|
466
|
-
def __str__(self):
|
|
467
|
-
return (f"User(id={self.id},username={self.username},phone_no={self.phone_no},"
|
|
468
|
-
f"display_name={self.display_name},email={self.email},org_id={self.org_id},"
|
|
469
|
-
f"account_status={self.account_status},roleIds={self.roleIds})")
|
|
470
|
-
|
|
471
|
-
def __repr__(self):
|
|
472
|
-
return (f"User(id={self.id},username={self.username},phone_no={self.phone_no},"
|
|
473
|
-
f"display_name={self.display_name},email={self.email},org_id={self.org_id},"
|
|
474
|
-
f"account_status={self.account_status},roleIds={self.roleIds})")
|
|
475
|
-
|
|
476
|
-
|
|
477
445
|
# 解析param
|
|
478
446
|
def parse_val(val, val_type):
|
|
479
447
|
# inspect.Parameter.empty <class 'NoneType'>
|
|
@@ -6,6 +6,7 @@ import os
|
|
|
6
6
|
import platform
|
|
7
7
|
import sys
|
|
8
8
|
import traceback
|
|
9
|
+
from types import FunctionType
|
|
9
10
|
from typing import Optional
|
|
10
11
|
|
|
11
12
|
import tornado.httpserver
|
|
@@ -67,6 +68,8 @@ define("url_log_enable", default=False, type=bool, help="项目url打印")
|
|
|
67
68
|
define("cronjob_config", default={}, type=dict, help="定时任务配置")
|
|
68
69
|
define("resource_register_enable", default=False, type=bool, help="资源注册开关")
|
|
69
70
|
define("outside_screen_port", default=80, type=int, help="资源注册开关")
|
|
71
|
+
define("custom_current_user_switch", default=False, type=bool, help="自定义用户开关")
|
|
72
|
+
define("custom_current_user_func", default=None, type=FunctionType, help="自定义用户方法函数")
|
|
70
73
|
# 日志初始化配置,配置文件中可修改设置
|
|
71
74
|
options.logging = "DEBUG"
|
|
72
75
|
options.log_rotate_mode = "time"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{lesscode-py-0.4.17 → lesscode-py-0.4.18}/lesscode/db/sqlalchemy/sqlalchemy_model_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|