mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-03-20 12:08:09 +08:00
47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
import json
|
||
from typing import Optional
|
||
|
||
from app.db import DbOper
|
||
from app.db.models.user import User
|
||
|
||
|
||
class UserOper(DbOper):
|
||
"""
|
||
用户管理
|
||
"""
|
||
|
||
def get_permissions(self, name: str) -> dict:
|
||
"""
|
||
获取用户权限
|
||
"""
|
||
user = User.get_by_name(self._db, name)
|
||
if user:
|
||
try:
|
||
return json.loads(user.permissions)
|
||
except json.JSONDecodeError:
|
||
return {}
|
||
return {}
|
||
|
||
def get_settings(self, name: str) -> Optional[dict]:
|
||
"""
|
||
获取用户个性化设置,返回None表示用户不存在
|
||
"""
|
||
user = User.get_by_name(self._db, name)
|
||
if user:
|
||
try:
|
||
if user.settings:
|
||
return json.loads(user.settings)
|
||
return {}
|
||
except json.JSONDecodeError:
|
||
return {}
|
||
return None
|
||
|
||
def get_setting(self, name: str, key: str) -> Optional[str]:
|
||
"""
|
||
获取用户个性化设置
|
||
"""
|
||
settings = self.get_settings(name)
|
||
if settings:
|
||
return settings.get(key)
|
||
return None
|