huace-aigc-auth-client 1.1.10__py3-none-any.whl → 1.1.15__py3-none-any.whl

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.
@@ -67,16 +67,76 @@ from .legacy_adapter import (
67
67
  create_sync_config,
68
68
  create_default_field_mappings,
69
69
  )
70
+ # fastapi 相关功能是可选的,如果未安装 fastapi 则跳过
71
+ try:
72
+ from .webhook import (
73
+ register_webhook_router,
74
+ verify_webhook_signature,
75
+ )
76
+ _fastapi_available = True
77
+ except ImportError:
78
+ _fastapi_available = False
79
+ # 提供占位符,避免 __all__ 导出时出错
80
+ register_webhook_router = None
81
+ verify_webhook_signature = None
70
82
 
71
- from .webhook import (
72
- register_webhook_router,
73
- verify_webhook_signature,
74
- )
83
+ # Flask 相关功能是可选的,如果未安装 flask 则跳过
84
+ try:
85
+ from .webhook_flask import (
86
+ create_flask_webhook_blueprint,
87
+ register_flask_webhook_routes,
88
+ )
89
+ _flask_available = True
90
+ except ImportError:
91
+ _flask_available = False
92
+ # 提供占位符,避免 __all__ 导出时出错
93
+ create_flask_webhook_blueprint = None
94
+ register_flask_webhook_routes = None
95
+
96
+ def setLogger(log):
97
+ """
98
+ 统一设置所有模块的 logger
99
+
100
+ Args:
101
+ log: logging.Logger 实例
102
+
103
+ 使用示例:
104
+ import logging
105
+ from huace_aigc_auth_client import setLogger
106
+
107
+ logger = logging.getLogger("my_app")
108
+ logger.setLevel(logging.INFO)
109
+
110
+ # 设置 SDK 所有模块使用该 logger
111
+ setLogger(logger)
112
+ """
113
+ try:
114
+ from .sdk import setLogger as sdk_setLogger
115
+ sdk_setLogger(log)
116
+ except Exception as e:
117
+ print(f"Failed to set logger for sdk module: {e}")
118
+
119
+ try:
120
+ from .legacy_adapter import setLogger as legacy_setLogger
121
+ legacy_setLogger(log)
122
+ except Exception as e:
123
+ print(f"Failed to set logger for legacy_adapter module: {e}")
124
+
125
+ if _fastapi_available:
126
+ try:
127
+ from .webhook import setLogger as webhook_setLogger
128
+ webhook_setLogger(log)
129
+ except Exception as e:
130
+ print(f"Failed to set logger for webhook module: {e}")
131
+
132
+ # 只在 flask 可用时设置 flask 模块的 logger
133
+ if _flask_available:
134
+ try:
135
+ from .webhook_flask import setLogger as webhook_flask_setLogger
136
+ webhook_flask_setLogger(log)
137
+ except Exception as e:
138
+ print(f"Failed to set logger for webhook_flask module: {e}")
75
139
 
76
- from .webhook_flask import (
77
- create_flask_webhook_blueprint,
78
- register_flask_webhook_routes,
79
- )
80
140
 
81
141
  __all__ = [
82
142
  # 核心类
@@ -105,5 +165,7 @@ __all__ = [
105
165
  # Webhook 接收 (Flask)
106
166
  "create_flask_webhook_blueprint",
107
167
  "register_flask_webhook_routes",
168
+ # Logger 设置
169
+ "setLogger",
108
170
  ]
109
- __version__ = "1.1.10"
171
+ __version__ = "1.1.15"
@@ -20,7 +20,9 @@ from enum import Enum
20
20
  from abc import ABC, abstractmethod
21
21
 
22
22
  logger = logging.getLogger(__name__)
23
-
23
+ def setLogger(log):
24
+ global logger
25
+ logger = log
24
26
 
25
27
  class PasswordMode(Enum):
26
28
  """密码处理模式"""
@@ -274,7 +276,13 @@ class LegacySystemAdapter(ABC):
274
276
 
275
277
  for user in users:
276
278
  try:
277
- result = await self.sync_user_to_auth(user)
279
+ # dict 转换为 LegacyUserData 对象
280
+ if isinstance(user, dict):
281
+ legacy_user = LegacyUserData(data=user)
282
+ else:
283
+ legacy_user = user
284
+
285
+ result = await self.sync_user_to_auth(legacy_user)
278
286
  logger.info(f"Sync result for user {user.get('username')}: {result}")
279
287
 
280
288
  if result.get("success"):
@@ -329,7 +337,7 @@ class LegacySystemAdapter(ABC):
329
337
 
330
338
  # 创建或更新用户
331
339
  logger.info(f"Handling {event} event for user: {legacy_data}")
332
- result = await self.upsert_user_async(legacy_data)
340
+ result = await self.upsert_user_async(legacy_data, data)
333
341
 
334
342
  return {
335
343
  "success": True,
@@ -420,7 +428,14 @@ class LegacySystemAdapter(ABC):
420
428
  return (self.config.unified_password, False)
421
429
  elif self.config.password_mode == PasswordMode.CUSTOM_MAPPING:
422
430
  if self.config.password_mapper and legacy_user:
423
- password = self.config.password_mapper(legacy_user.data)
431
+ # 兼容 dict 和 LegacyUserData 两种类型
432
+ if isinstance(legacy_user, dict):
433
+ user_data = legacy_user
434
+ elif isinstance(legacy_user, LegacyUserData):
435
+ user_data = legacy_user.data
436
+ else:
437
+ user_data = legacy_user
438
+ password = self.config.password_mapper(user_data)
424
439
  return (password, self.config.password_is_hashed)
425
440
  return (self.config.unified_password, False)
426
441
  return (self.config.unified_password, False)
@@ -552,7 +567,7 @@ class UserSyncService:
552
567
  legacy_data["password"] = password
553
568
 
554
569
  # 使用 upsert 方法(存在则更新,不存在则创建)
555
- result = await self.adapter.upsert_user_async(legacy_data)
570
+ result = await self.adapter.upsert_user_async(legacy_data, auth_data)
556
571
 
557
572
  return {
558
573
  "success": True,
@@ -19,6 +19,9 @@ from typing import Optional, List, Dict, Any, Callable, Tuple
19
19
  from dataclasses import dataclass
20
20
 
21
21
  logger = logging.getLogger(__name__)
22
+ def setLogger(log):
23
+ global logger
24
+ logger = log
22
25
 
23
26
  # 尝试加载 .env 文件
24
27
  try:
@@ -13,7 +13,9 @@ from typing import Callable, Awaitable, Dict, Any, Optional
13
13
  from fastapi import APIRouter, Request, HTTPException
14
14
 
15
15
  logger = logging.getLogger(__name__)
16
-
16
+ def setLogger(log):
17
+ global logger
18
+ logger = log
17
19
 
18
20
  def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool:
19
21
  """
@@ -14,7 +14,9 @@ from typing import Callable, Dict, Any, Optional
14
14
  from flask import Blueprint, request, jsonify
15
15
 
16
16
  logger = logging.getLogger(__name__)
17
-
17
+ def setLogger(log):
18
+ global logger
19
+ logger = log
18
20
 
19
21
  def verify_webhook_signature(payload: bytes, signature: str, secret: str) -> bool:
20
22
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: huace-aigc-auth-client
3
- Version: 1.1.10
3
+ Version: 1.1.15
4
4
  Summary: 华策AIGC Auth Client - 提供 Token 验证、用户信息获取、权限检查、旧系统接入等功能
5
5
  Author-email: Huace <support@huace.com>
6
6
  License: MIT
@@ -0,0 +1,10 @@
1
+ huace_aigc_auth_client/__init__.py,sha256=KYoil3pbho69Cs0nEPJz2Bli1L8tJ9NjDDBCOU9vWT0,4540
2
+ huace_aigc_auth_client/legacy_adapter.py,sha256=f1_xH6huiPdCnJx1ko-2_kWTHjWKLBK2zyPXqnPiEaY,24049
3
+ huace_aigc_auth_client/sdk.py,sha256=ypClZfQm4Ux4db8XDP51I5Cuk1Uc9F2VPgECpXXphkQ,23272
4
+ huace_aigc_auth_client/webhook.py,sha256=XQZYEbMoqIdqZWCGSTcedeDKJpDbUVSq5g08g-6Qucg,4124
5
+ huace_aigc_auth_client/webhook_flask.py,sha256=Iosu4dBtRhQZM_ytn-bn82MpVsyOiV28FBnt7Tfh31U,7225
6
+ huace_aigc_auth_client-1.1.15.dist-info/licenses/LICENSE,sha256=z7dgC7KljhBLNvKjN15391nMj3aLt0gbud8-Yf1F8EQ,1063
7
+ huace_aigc_auth_client-1.1.15.dist-info/METADATA,sha256=lUBiUG93imjVSuLQBO4GVUZY-DW5xE8xvWwObY5KrGM,22971
8
+ huace_aigc_auth_client-1.1.15.dist-info/WHEEL,sha256=qELbo2s1Yzl39ZmrAibXA2jjPLUYfnVhUNTlyF1rq0Y,92
9
+ huace_aigc_auth_client-1.1.15.dist-info/top_level.txt,sha256=kbv0nQ6PQ0JVneWPH7O2AbtlJnP7AjvFJ6JjM6ZEBxo,23
10
+ huace_aigc_auth_client-1.1.15.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (80.9.0)
2
+ Generator: setuptools (80.10.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,10 +0,0 @@
1
- huace_aigc_auth_client/__init__.py,sha256=BKfCXzmYmlv8k4_PMWNLbNUrvrmeC5OIu7KAez4b24w,2550
2
- huace_aigc_auth_client/legacy_adapter.py,sha256=JQ9OIrzlPjd1JFronX5Ve4voZUbMBaBmGBZ_ThIl6eE,23401
3
- huace_aigc_auth_client/sdk.py,sha256=ha1e_MSzLCsIMrdgcKSh-V5hTVR1rqqrIMWcDmtVMKs,23217
4
- huace_aigc_auth_client/webhook.py,sha256=m-mjXNNqrUClrNpOHRBzty0XKFDBuZp4e_PgLd2t0aA,4070
5
- huace_aigc_auth_client/webhook_flask.py,sha256=JiIsAr6INjGNKVzamyHDWVl7tzdCPOR1WguMLAmt6iI,7171
6
- huace_aigc_auth_client-1.1.10.dist-info/licenses/LICENSE,sha256=z7dgC7KljhBLNvKjN15391nMj3aLt0gbud8-Yf1F8EQ,1063
7
- huace_aigc_auth_client-1.1.10.dist-info/METADATA,sha256=1AgKalGR2m4melynA5ojDFJmsaDmhQcOBpa_Z8AZiWU,22971
8
- huace_aigc_auth_client-1.1.10.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
9
- huace_aigc_auth_client-1.1.10.dist-info/top_level.txt,sha256=kbv0nQ6PQ0JVneWPH7O2AbtlJnP7AjvFJ6JjM6ZEBxo,23
10
- huace_aigc_auth_client-1.1.10.dist-info/RECORD,,