注册码生成以及用户注册
This commit is contained in:
@@ -604,3 +604,67 @@ def user_manage(request):
|
||||
user_id_qs = request.GET.get("user_id")
|
||||
context = {"user_id": user_id_qs or session_user_id}
|
||||
return render(request, "elastic/users.html", context)
|
||||
|
||||
@require_http_methods(["GET"])
|
||||
@ensure_csrf_cookie
|
||||
def registration_code_manage_page(request):
|
||||
session_user_id = request.session.get("user_id")
|
||||
if session_user_id is None:
|
||||
from django.shortcuts import redirect
|
||||
return redirect("/accounts/login/")
|
||||
if int(request.session.get("permission", 1)) != 0:
|
||||
from django.shortcuts import redirect
|
||||
return redirect("/main/home/")
|
||||
user_id_qs = request.GET.get("user_id")
|
||||
context = {"user_id": user_id_qs or session_user_id}
|
||||
return render(request, "elastic/registration_codes.html", context)
|
||||
|
||||
@require_http_methods(["GET"])
|
||||
def get_keys_list_view(request):
|
||||
if request.session.get("user_id") is None:
|
||||
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
|
||||
if int(request.session.get("permission", 1)) != 0:
|
||||
return JsonResponse({"status": "error", "message": "无权限"}, status=403)
|
||||
lst = get_keys_list()
|
||||
return JsonResponse({"status": "success", "data": lst})
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@csrf_protect
|
||||
def add_key_view(request):
|
||||
if request.session.get("user_id") is None:
|
||||
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
|
||||
if int(request.session.get("permission", 1)) != 0:
|
||||
return JsonResponse({"status": "error", "message": "无权限"}, status=403)
|
||||
try:
|
||||
payload = json.loads(request.body.decode("utf-8"))
|
||||
except Exception:
|
||||
return JsonResponse({"status": "error", "message": "JSON无效"}, status=400)
|
||||
key_name = (payload.get("key") or "").strip()
|
||||
if not key_name:
|
||||
return JsonResponse({"status": "error", "message": "key不能为空"}, status=400)
|
||||
ok = ensure_key_in_list(key_name)
|
||||
if not ok:
|
||||
return JsonResponse({"status": "error", "message": "key已存在或写入失败"}, status=409)
|
||||
return JsonResponse({"status": "success"})
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
@csrf_protect
|
||||
def generate_registration_code_view(request):
|
||||
if request.session.get("user_id") is None:
|
||||
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
|
||||
if int(request.session.get("permission", 1)) != 0:
|
||||
return JsonResponse({"status": "error", "message": "无权限"}, status=403)
|
||||
try:
|
||||
payload = json.loads(request.body.decode("utf-8"))
|
||||
except Exception:
|
||||
return JsonResponse({"status": "error", "message": "JSON无效"}, status=400)
|
||||
keys = list(payload.get("keys") or [])
|
||||
manage_keys = list(payload.get("manage_keys") or [])
|
||||
try:
|
||||
days = int(payload.get("expires_in_days", 30))
|
||||
except Exception:
|
||||
days = 30
|
||||
result = generate_registration_code(keys=keys, manage_keys=manage_keys, expires_in_days=days, created_by=request.session.get("user_id"))
|
||||
if not result:
|
||||
return JsonResponse({"status": "error", "message": "生成失败"}, status=500)
|
||||
return JsonResponse({"status": "success", "data": result})
|
||||
|
||||
Reference in New Issue
Block a user