更新注册码管理及页面动画
This commit is contained in:
@@ -197,6 +197,55 @@ def get_registration_code(code: str):
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
def list_registration_codes():
|
||||
try:
|
||||
search = RegistrationCodeDocument.search()
|
||||
body = {
|
||||
"sort": [{"created_at": {"order": "desc"}}],
|
||||
"query": {"exists": {"field": "code"}}
|
||||
}
|
||||
search = search.update_from_dict(body)
|
||||
resp = search.execute()
|
||||
out = []
|
||||
now = datetime.now(timezone.utc)
|
||||
for hit in resp:
|
||||
try:
|
||||
if not getattr(hit, 'code', None):
|
||||
continue
|
||||
except Exception:
|
||||
continue
|
||||
exp = getattr(hit, 'expires_at', None)
|
||||
try:
|
||||
if hasattr(exp, 'isoformat'):
|
||||
exp_dt = exp
|
||||
else:
|
||||
exp_dt = datetime.fromisoformat(str(exp))
|
||||
except Exception:
|
||||
exp_dt = None
|
||||
active = bool(exp_dt and exp_dt > now)
|
||||
out.append({
|
||||
"code": getattr(hit, 'code', ''),
|
||||
"keys": list(getattr(hit, 'keys', []) or []),
|
||||
"manage_keys": list(getattr(hit, 'manage_keys', []) or []),
|
||||
"created_at": getattr(hit, 'created_at', None),
|
||||
"expires_at": getattr(hit, 'expires_at', None),
|
||||
"created_by": getattr(hit, 'created_by', None),
|
||||
"active": active,
|
||||
})
|
||||
return out
|
||||
except Exception:
|
||||
return []
|
||||
|
||||
def revoke_registration_code(code: str):
|
||||
try:
|
||||
doc = RegistrationCodeDocument.get(id=str(code))
|
||||
now = datetime.now(timezone.utc).isoformat()
|
||||
doc.expires_at = now
|
||||
doc.save()
|
||||
return True
|
||||
except Exception:
|
||||
return False
|
||||
|
||||
def get_doc_id(data):
|
||||
"""
|
||||
根据数据内容生成唯一ID(用于去重)
|
||||
|
||||
Reference in New Issue
Block a user