diff --git a/biscuit/core/menus.py b/biscuit/core/menus.py
index a8914a5a9bf0ee8c27017f9638d90bdd7e3cb501..2cefbd09e5d98eeba855db2fc03d004aa19e0404 100644
--- a/biscuit/core/menus.py
+++ b/biscuit/core/menus.py
@@ -7,6 +7,11 @@ MENUS = {
             'url': '#',
             'root': True,
             'submenu': [
+                {
+                    'name': _('Stop impersonation'),
+                    'url': 'impersonate-stop',
+                    'validators': ['menu_generator.validators.is_authenticated', 'biscuit.core.util.core_helpers.is_impersonate']
+                },
                 {
                     'name': _('Login'),
                     'url': 'login',
@@ -28,6 +33,11 @@ MENUS = {
                     'name': _('Data management'),
                     'url': 'data_management',
                     'validators': ['menu_generator.validators.is_authenticated', 'menu_generator.validators.is_superuser']
+                },
+                {
+                    'name': _('Impersonation'),
+                    'url': 'impersonate-list',
+                    'validators': ['menu_generator.validators.is_authenticated', 'menu_generator.validators.is_superuser']
                 }
             ]
         },
diff --git a/biscuit/core/util/core_helpers.py b/biscuit/core/util/core_helpers.py
index 29f65e3992e24f08a4ad350e0959c45cc7877d0e..4752aec92a3e415a0078cdb8e6db5cf8648d4a81 100644
--- a/biscuit/core/util/core_helpers.py
+++ b/biscuit/core/util/core_helpers.py
@@ -5,6 +5,7 @@ from warnings import warn
 
 from django.apps import apps
 from django.conf import settings
+from django.http import HttpRequest
 
 from django_global_request.middleware import get_request
 
@@ -63,3 +64,8 @@ def get_current_school() -> Optional:
 
     # Raise an exception because not finding a school wreaks havoc
     raise RuntimeError('No school set or found. Check your database.')
+
+
+def is_impersonate(request: HttpRequest) -> bool:
+    if hasattr(request, 'user'):
+        return getattr(request.user, 'is_impersonate', False)