Skip to content

Commit 652dcbb

Browse files
committed
perf: 固定常用的PageAdmin的unique_id值
1 parent 7e8e4b8 commit 652dcbb

File tree

5 files changed

+17
-5
lines changed

5 files changed

+17
-5
lines changed

fastapi_user_auth/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__version__ = "0.6.0a7"
1+
__version__ = "0.6.1a1"
22
__url__ = "https://github.com/amisadmin/fastapi_user_auth"
33

44
import gettext

fastapi_user_auth/admin/actions.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,8 @@ async def get_form_item(self, request: Request, modelfield: ModelField) -> Union
133133
item = await super().get_form_item(request, modelfield)
134134
from fastapi_user_auth.admin import RoleAdmin # 防止循环导入
135135

136-
role_admin = self.admin.app.get_admin_or_create(RoleAdmin)
136+
# role_admin = self.admin.app.get_admin_or_create(RoleAdmin)
137+
role_admin, _ = self.admin.app.get_page_schema_child(unique_id=RoleAdmin.unique_id)
137138
if item.name == "role_keys": # 为角色树形选择器数据指定API源
138139
# value
139140
item.source = f"post:{role_admin.router_path}/list?page=1&perPage=100"

fastapi_user_auth/admin/admin.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ def attach_page_head(page: Page) -> Page:
7272

7373

7474
class UserLoginFormAdmin(FormAdmin):
75+
unique_id = "Auth>UserLoginFormAdmin"
7576
page = Page(title=_("User Login"))
7677
page_path = "/login"
7778
page_parser_mode = "html"
@@ -135,6 +136,7 @@ async def has_page_permission(self, request: Request, obj: PageSchemaAdmin = Non
135136

136137

137138
class UserRegFormAdmin(FormAdmin):
139+
unique_id = "Auth>UserRegFormAdmin"
138140
user_model: Type[BaseUser] = User
139141
page = Page(title=_("User Register"))
140142
page_path = "/reg"
@@ -215,6 +217,7 @@ async def has_page_permission(self, request: Request, obj: PageSchemaAdmin = Non
215217

216218

217219
class UserInfoFormAdmin(FormAdmin):
220+
unique_id = "Auth>UserInfoFormAdmin"
218221
page_schema = None
219222
user_model: Type[BaseUser] = User
220223
page = Page(title=_("User Profile"))
@@ -233,7 +236,7 @@ async def get_form(self, request: Request) -> Form:
233236
formitems = [
234237
await self.get_form_item(request, modelfield)
235238
for k, modelfield in self.user_model.__fields__.items()
236-
if k not in self.schema.__fields__
239+
if k not in self.schema.__fields__.keys() | {"delete_time"}
237240
]
238241
form.body.extend(formitem.update_from_kwargs(disabled=True) for formitem in formitems if formitem)
239242
return form
@@ -253,6 +256,7 @@ async def has_page_permission(self, request: Request, obj: PageSchemaAdmin = Non
253256

254257

255258
class UserAdmin(AuthFieldModelAdmin, AuthSelectModelAdmin, SoftDeleteModelAdmin, FootableModelAdmin):
259+
unique_id = "Auth>UserAdmin"
256260
page_schema = PageSchema(label=_("User"), icon="fa fa-user")
257261
model: Type[BaseUser] = None
258262
exclude = ["password"]
@@ -312,6 +316,7 @@ async def on_update_pre(self, request: Request, obj, item_id: List[int], **kwarg
312316

313317

314318
class RoleAdmin(AutoTimeModelAdmin, FootableModelAdmin):
319+
unique_id = "Auth>RoleAdmin"
315320
page_schema = PageSchema(label=_("Role"), icon="fa fa-group")
316321
model = Role
317322
ordering = [Role.id.desc()]
@@ -349,6 +354,7 @@ async def get_select(self, request: Request) -> Select:
349354

350355

351356
class CasbinRuleAdmin(ReadOnlyModelAdmin):
357+
unique_id = "Auth>CasbinRuleAdmin"
352358
page_schema = PageSchema(label="CasbinRule", icon="fa fa-lock")
353359
model = CasbinRule
354360
list_filter = [CasbinRule.ptype, CasbinRule.v0, CasbinRule.v1, CasbinRule.v2, CasbinRule.v3, CasbinRule.v4, CasbinRule.v5]
@@ -389,6 +395,7 @@ async def _load_policy():
389395

390396

391397
class LoginHistoryAdmin(ReadOnlyModelAdmin):
398+
unique_id = "Auth>LoginHistoryAdmin"
392399
page_schema = PageSchema(label="登录历史", icon="fa fa-history")
393400
model = LoginHistory
394401
search_fields = [LoginHistory.login_name, LoginHistory.ip, LoginHistory.login_status, LoginHistory.user_agent]

fastapi_user_auth/admin/app.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
from fastapi_amis_admin.utils.translation import i18n as _
88
from starlette.requests import Request
99

10-
from fastapi_user_auth.admin import CasbinRuleAdmin, LoginHistoryAdmin
10+
from fastapi_user_auth.admin import CasbinRuleAdmin
11+
from fastapi_user_auth.admin import LoginHistoryAdmin as DefaultLoginHistoryAdmin
1112
from fastapi_user_auth.admin import RoleAdmin as DefaultRoleAdmin
1213
from fastapi_user_auth.admin import UserAdmin as DefaultUserAdmin
1314
from fastapi_user_auth.admin import UserInfoFormAdmin as DefaultUserInfoFormAdmin
@@ -19,6 +20,7 @@
1920

2021

2122
class UserAuthApp(AdminApp, AuthRouter):
23+
unique_id = "Auth>UserAuthApp"
2224
page_schema = PageSchema(label=_("User Authentication"), icon="fa fa-lock", sort=99)
2325
router_prefix = "/auth"
2426
# default admin
@@ -27,6 +29,7 @@ class UserAuthApp(AdminApp, AuthRouter):
2729
UserInfoFormAdmin: Type[DefaultUserInfoFormAdmin] = DefaultUserInfoFormAdmin
2830
UserAdmin: Type[DefaultUserAdmin] = DefaultUserAdmin
2931
RoleAdmin: Type[ModelAdmin] = DefaultRoleAdmin
32+
LoginHistoryAdmin: Type[ModelAdmin] = DefaultLoginHistoryAdmin
3033

3134
def __init__(self, app: "AdminApp"):
3235
AdminApp.__init__(self, app)
@@ -56,7 +59,7 @@ def __init__(self, app: "AdminApp"):
5659
self.UserInfoFormAdmin,
5760
self.UserAdmin,
5861
self.RoleAdmin,
59-
LoginHistoryAdmin,
62+
self.LoginHistoryAdmin,
6063
CasbinRuleAdmin,
6164
)
6265

fastapi_user_auth/admin/site.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323

2424
class AuthAdminSite(AdminSite):
25+
unique_id = "AuthAdminSite"
2526
auth: Auth = None
2627
UserAuthApp: Type[DefaultUserAuthApp] = DefaultUserAuthApp
2728

0 commit comments

Comments
 (0)