[0.2.7.3][ci]
This commit is contained in:
@@ -463,7 +463,11 @@ def get_users(request):
|
||||
ukeys = {str(x).strip() for x in (user.get("key") or []) if str(x).strip()}
|
||||
except Exception:
|
||||
ukeys = set()
|
||||
return k in ukeys
|
||||
try:
|
||||
umkeys = {str(x).strip() for x in (user.get("manage_key") or []) if str(x).strip()}
|
||||
except Exception:
|
||||
umkeys = set()
|
||||
return (k in ukeys) or (k in umkeys)
|
||||
filtered = [u for u in filtered if match_key(u)]
|
||||
if q:
|
||||
filtered = [u for u in filtered if q in str(u.get("username", ""))]
|
||||
@@ -1139,18 +1143,54 @@ def keys_for_filter_view(request):
|
||||
if uid is None:
|
||||
return JsonResponse({"status": "error", "message": "未登录"}, status=401)
|
||||
is_admin = int(request.session.get("permission", 1)) == 0
|
||||
if is_admin:
|
||||
lst = get_keys_list()
|
||||
return JsonResponse({"status": "success", "data": lst})
|
||||
me = get_user_by_id(uid) or {}
|
||||
seen = set()
|
||||
out = []
|
||||
for v in list(me.get("manage_key") or []) + list(me.get("key") or []):
|
||||
s = str(v).strip()
|
||||
try:
|
||||
users = get_all_users() or []
|
||||
except Exception:
|
||||
users = []
|
||||
|
||||
def norm(v):
|
||||
return str(v).strip().strip(";")
|
||||
|
||||
def add(out, seen, v):
|
||||
s = norm(v)
|
||||
if not s or s in seen:
|
||||
continue
|
||||
return
|
||||
seen.add(s)
|
||||
out.append(s)
|
||||
|
||||
if is_admin:
|
||||
out = []
|
||||
seen = set()
|
||||
for v in get_keys_list() or []:
|
||||
add(out, seen, v)
|
||||
for u in users:
|
||||
for v in list(u.get("manage_key") or []) + list(u.get("key") or []):
|
||||
add(out, seen, v)
|
||||
return JsonResponse({"status": "success", "data": out})
|
||||
|
||||
me = get_user_by_id(uid) or {}
|
||||
mgr_keys = {norm(x) for x in (me.get("manage_key") or []) if norm(x)}
|
||||
visible_users = []
|
||||
if mgr_keys:
|
||||
for u in users:
|
||||
try:
|
||||
ukeys = {norm(x) for x in (u.get("key") or []) if norm(x)}
|
||||
except Exception:
|
||||
ukeys = set()
|
||||
if ukeys & mgr_keys:
|
||||
visible_users.append(u)
|
||||
if str(me.get("user_id")) not in {str(u.get("user_id")) for u in visible_users}:
|
||||
visible_users.append(me)
|
||||
else:
|
||||
visible_users = [me]
|
||||
|
||||
out = []
|
||||
seen = set()
|
||||
for v in list(me.get("manage_key") or []) + list(me.get("key") or []):
|
||||
add(out, seen, v)
|
||||
for u in visible_users:
|
||||
for v in list(u.get("manage_key") or []) + list(u.get("key") or []):
|
||||
add(out, seen, v)
|
||||
return JsonResponse({"status": "success", "data": out})
|
||||
|
||||
@require_http_methods(["POST"])
|
||||
|
||||
Reference in New Issue
Block a user