Download apps/core/security/admin_access.py from jun2024/fachuan: direct link, hf CLI and curl.
- Browser
- Download file 904 Bytes
-
https://huggingface.co/spaces/jun2024/fachuan/resolve/main/apps/core/security/admin_access.py
- Command line
-
hf download hf://spaces/jun2024/fachuan/apps/core/security/admin_access.py
-
curl -L -o admin_access.py https://huggingface.co/spaces/jun2024/fachuan/resolve/main/apps/core/security/admin_access.py
904 Bytes
| """Module for admin access.""" | |
| from __future__ import annotations | |
| from typing import Any | |
| from django.http import HttpRequest | |
| from apps.core.exceptions import PermissionDenied | |
| def get_request_user(request: HttpRequest) -> Any | None: | |
| user = getattr(request, "user", None) | |
| if user and getattr(user, "is_authenticated", False): | |
| return user | |
| return getattr(request, "auth", None) | |
| def is_admin_user(user: Any | None) -> bool: | |
| return bool( | |
| user | |
| and ( | |
| getattr(user, "is_admin", False) or getattr(user, "is_superuser", False) or getattr(user, "is_staff", False) | |
| ) | |
| ) | |
| def ensure_admin_request( | |
| request: HttpRequest, | |
| *, | |
| message: str = "无权限执行该操作", | |
| code: str = "PERMISSION_DENIED", | |
| ) -> None: | |
| if is_admin_user(get_request_user(request)): | |
| return | |
| raise PermissionDenied(message=message, code=code) | |