Plain
Get Started Source + Docs Dev Updates
Contribute BSD-3 v0.101.1
Log in
Get Started Source + Docs Dev Updates Contribute BSD-3 v0.101.1
Documentation
Core
assets
chores
cli
csrf
forms
http
internal
logs
packages
preflight
runtime
server
signals
skills
templates
test
urls
utils
views
CHANGELOG.md
README.md
debug.py
exceptions.py
json.py
paginator.py
signing.py
validators.py
wsgi.py
Packages
admin
assets
cards
impersonate
constants.py
middleware.py
permissions.py
requests.py
settings.py
urls.py
views.py
migrations
templates
views
CHANGELOG.md
README.md
builtin_views.py
config.py
dates.py
middleware.py
models.py
templates.py
toolbar.py
urls.py
utils.py
api
auth
cache
code
dev
elements
email
esbuild
flags
htmx
jobs
loginlink
models
oauth
observer
pages
pageviews
passwords
pytest
redirection
scan
sessions
start
support
tailwind
toolbar
tunnel
vendor
Core
assets
chores
cli
csrf
forms
http
internal
logs
packages
preflight
runtime
server
signals
skills
templates
test
urls
utils
views
CHANGELOG.md
README.md
debug.py
exceptions.py
json.py
paginator.py
signing.py
validators.py
wsgi.py
Packages
admin
assets
cards
impersonate
constants.py
middleware.py
permissions.py
requests.py
settings.py
urls.py
views.py
migrations
templates
views
CHANGELOG.md
README.md
builtin_views.py
config.py
dates.py
middleware.py
models.py
templates.py
toolbar.py
urls.py
utils.py
api
auth
cache
code
dev
elements
email
esbuild
flags
htmx
jobs
loginlink
models
oauth
observer
pages
pageviews
passwords
pytest
redirection
scan
sessions
start
support
tailwind
toolbar
tunnel
vendor
Loading
Docs plain-admin plain admin impersonate permissions.py
Raw LLM
 1from typing import Any
 2
 3from . import settings
 4
 5
 6def can_be_impersonator(user: Any) -> bool:
 7    return settings.IMPERSONATE_ALLOWED(user)
 8
 9
10def can_impersonate_user(impersonator: Any, target_user: Any) -> bool:
11    if not can_be_impersonator(impersonator):
12        return False
13
14    # You can't impersonate admin users
15    if target_user.is_admin:
16        return False
17
18    return True
On this page