Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions backend/app/admin/api/v1/sys/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
# -*- coding: utf-8 -*-
from fastapi import APIRouter

from backend.app.admin.api.v1.sys.config import router as config_router
from backend.app.admin.api.v1.sys.data_rule import router as data_rule_router
from backend.app.admin.api.v1.sys.dept import router as dept_router
from backend.app.admin.api.v1.sys.dict_data import router as dict_data_router
Expand All @@ -16,7 +15,6 @@

router = APIRouter(prefix='/sys')

router.include_router(config_router, prefix='/configs', tags=['系统参数配置'])
router.include_router(dept_router, prefix='/depts', tags=['系统部门'])
router.include_router(dict_data_router, prefix='/dict-datas', tags=['系统字典数据'])
router.include_router(dict_type_router, prefix='/dict-types', tags=['系统字典类型'])
Expand Down
5 changes: 1 addition & 4 deletions backend/app/admin/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,10 @@ class AdminSettings(BaseSettings):
CAPTCHA_LOGIN_REDIS_PREFIX: str = 'fba:login:captcha'
CAPTCHA_LOGIN_EXPIRE_SECONDS: int = 60 * 5 # 3 分钟

# 参数配置
CONFIG_BUILT_IN_TYPES: list[str] = ['website', 'protocol', 'policy']


@lru_cache
def get_admin_settings() -> AdminSettings:
"""获取 admin 参数配置"""
"""获取 admin 配置"""
return AdminSettings()


Expand Down
1 change: 0 additions & 1 deletion backend/app/admin/model/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from backend.app.admin.model.config import Config
from backend.app.admin.model.data_rule import DataRule
from backend.app.admin.model.dept import Dept
from backend.app.admin.model.dict_data import DictData
Expand Down
2 changes: 2 additions & 0 deletions backend/plugin/config/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2 changes: 2 additions & 0 deletions backend/plugin/config/api/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2 changes: 2 additions & 0 deletions backend/plugin/config/api/v1/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2 changes: 2 additions & 0 deletions backend/plugin/config/api/v1/sys/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@

from fastapi import APIRouter, Depends, Path, Query

from backend.app.admin.schema.config import (
CreateConfigParam,
GetConfigDetail,
SaveBuiltInConfigParam,
UpdateConfigParam,
)
from backend.app.admin.service.config_service import config_service
from backend.common.pagination import DependsPagination, PageData, paging_data
from backend.common.response.response_schema import ResponseModel, ResponseSchemaModel, response_base
from backend.common.security.jwt import DependsJwtAuth
from backend.common.security.permission import RequestPermission
from backend.common.security.rbac import DependsRBAC
from backend.database.db import CurrentSession
from backend.plugin.config.schema.config import (
CreateConfigParam,
GetConfigDetail,
SaveBuiltInConfigParam,
UpdateConfigParam,
)
from backend.plugin.config.service.config_service import config_service

router = APIRouter()

Expand Down
21 changes: 21 additions & 0 deletions backend/plugin/config/conf.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from functools import lru_cache

from pydantic_settings import BaseSettings


class ConfigSettings(BaseSettings):
"""参数配置"""

# 参数
CONFIG_BUILT_IN_TYPES: list[str] = ['website', 'protocol', 'policy']


@lru_cache
def get_config_settings() -> ConfigSettings:
"""获取参数配置"""
return ConfigSettings()


config_settings = get_config_settings()
2 changes: 2 additions & 0 deletions backend/plugin/config/crud/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy_crud_plus import CRUDPlus

from backend.app.admin.conf import admin_settings
from backend.app.admin.model import Config
from backend.app.admin.schema.config import CreateConfigParam, UpdateConfigParam
from backend.plugin.config.conf import config_settings
from backend.plugin.config.model import Config
from backend.plugin.config.schema.config import CreateConfigParam, UpdateConfigParam


class CRUDConfig(CRUDPlus[Config]):
Expand All @@ -22,7 +22,7 @@ async def get(self, db: AsyncSession, pk: int) -> Config | None:
:param pk: 参数配置 ID
:return:
"""
return await self.select_model_by_column(db, id=pk, type__not_in=admin_settings.CONFIG_BUILT_IN_TYPES)
return await self.select_model_by_column(db, id=pk, type__not_in=config_settings.CONFIG_BUILT_IN_TYPES)

async def get_by_type(self, db: AsyncSession, type: str) -> Sequence[Config]:
"""
Expand Down Expand Up @@ -63,7 +63,7 @@ async def get_list(self, name: str | None = None, type: str | None = None) -> Se
:param type: 参数配置类型
:return:
"""
filters = {'type__not_in': admin_settings.CONFIG_BUILT_IN_TYPES}
filters = {'type__not_in': config_settings.CONFIG_BUILT_IN_TYPES}
if name is not None:
filters.update(name__like=f'%{name}%')
if type is not None:
Expand Down Expand Up @@ -100,7 +100,7 @@ async def delete(self, db: AsyncSession, pk: list[int]) -> int:
:return:
"""
return await self.delete_model_by_column(
db, allow_multiple=True, id__in=pk, type__not_in=admin_settings.CONFIG_BUILT_IN_TYPES
db, allow_multiple=True, id__in=pk, type__not_in=config_settings.CONFIG_BUILT_IN_TYPES
)


Expand Down
3 changes: 3 additions & 0 deletions backend/plugin/config/model/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from backend.plugin.config.model.config import Config
6 changes: 6 additions & 0 deletions backend/plugin/config/plugin.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[app]
include = 'admin'

[api.config]
prefix = '/configs'
tags = '系统参数配置'
2 changes: 2 additions & 0 deletions backend/plugin/config/schema/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
2 changes: 2 additions & 0 deletions backend/plugin/config/service/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@

from sqlalchemy import Select

from backend.app.admin.conf import admin_settings
from backend.app.admin.crud.crud_config import config_dao
from backend.app.admin.model import Config
from backend.app.admin.schema.config import (
from backend.common.exception import errors
from backend.database.db import async_db_session
from backend.plugin.config.conf import config_settings
from backend.plugin.config.crud.crud_config import config_dao
from backend.plugin.config.model import Config
from backend.plugin.config.schema.config import (
CreateConfigParam,
SaveBuiltInConfigParam,
UpdateConfigParam,
)
from backend.common.exception import errors
from backend.database.db import async_db_session


class ConfigService:
Expand Down Expand Up @@ -83,7 +83,7 @@ async def create(*, obj: CreateConfigParam) -> None:
:return:
"""
async with async_db_session.begin() as db:
if obj.type in admin_settings.CONFIG_BUILT_IN_TYPES:
if obj.type in config_settings.CONFIG_BUILT_IN_TYPES:
raise errors.ForbiddenError(msg='非法类型参数')
config = await config_dao.get_by_key(db, obj.key)
if config:
Expand Down