mirror of
https://github.com/fastapi-practices/fastapi_best_architecture.git
synced 2025-08-15 03:52:54 +08:00

* Add Linux Do OAuth2 login * Adapt to linux do oauth2 email field * Fix get user email logic * Fix lint
91 lines
1.4 KiB
Python
91 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
from enum import Enum
|
|
from enum import IntEnum as SourceIntEnum
|
|
from typing import Type
|
|
|
|
|
|
class _EnumBase:
|
|
@classmethod
|
|
def get_member_keys(cls: Type[Enum]) -> list[str]:
|
|
return [name for name in cls.__members__.keys()]
|
|
|
|
@classmethod
|
|
def get_member_values(cls: Type[Enum]) -> list:
|
|
return [item.value for item in cls.__members__.values()]
|
|
|
|
|
|
class IntEnum(_EnumBase, SourceIntEnum):
|
|
"""整型枚举"""
|
|
|
|
pass
|
|
|
|
|
|
class StrEnum(_EnumBase, str, Enum):
|
|
"""字符串枚举"""
|
|
|
|
pass
|
|
|
|
|
|
class MenuType(IntEnum):
|
|
"""菜单类型"""
|
|
|
|
directory = 0
|
|
menu = 1
|
|
button = 2
|
|
|
|
|
|
class RoleDataScopeType(IntEnum):
|
|
"""数据范围"""
|
|
|
|
all = 1
|
|
custom = 2
|
|
|
|
|
|
class MethodType(StrEnum):
|
|
"""请求方法"""
|
|
|
|
GET = 'GET'
|
|
POST = 'POST'
|
|
PUT = 'PUT'
|
|
DELETE = 'DELETE'
|
|
PATCH = 'PATCH'
|
|
OPTIONS = 'OPTIONS'
|
|
|
|
|
|
class LoginLogStatusType(IntEnum):
|
|
"""登陆日志状态"""
|
|
|
|
fail = 0
|
|
success = 1
|
|
|
|
|
|
class BuildTreeType(StrEnum):
|
|
"""构建树形结构类型"""
|
|
|
|
traversal = 'traversal'
|
|
recursive = 'recursive'
|
|
|
|
|
|
class OperaLogCipherType(IntEnum):
|
|
"""操作日志加密类型"""
|
|
|
|
aes = 0
|
|
md5 = 1
|
|
itsdangerous = 2
|
|
plan = 3
|
|
|
|
|
|
class StatusType(IntEnum):
|
|
"""状态类型"""
|
|
|
|
disable = 0
|
|
enable = 1
|
|
|
|
|
|
class UserSocialType(StrEnum):
|
|
"""用户社交类型"""
|
|
|
|
github = 'GitHub'
|
|
linuxdo = 'LinuxDo'
|