diff --git a/aleksis/core/menus.py b/aleksis/core/menus.py index 8e5e4a0aef23e09c650d6c1749569a69cc1696ac..f50d559f6fc19f27d33c8a2b9a6be548f41ab2ec 100644 --- a/aleksis/core/menus.py +++ b/aleksis/core/menus.py @@ -46,6 +46,12 @@ MENUS = { lambda request: "two_factor" in settings.INSTALLED_APPS, ], }, + { + "name": _("Me"), + "url": "person", + "icon": "insert_emoticon", + "validators": ["menu_generator.validators.is_authenticated"], + }, ], }, { diff --git a/aleksis/core/views.py b/aleksis/core/views.py index 1bdbd632dad7ff51488d8541d65386e8e8be8fdc..5608d1d608efb5f0119c19d27909284bf4afde67 100644 --- a/aleksis/core/views.py +++ b/aleksis/core/views.py @@ -66,12 +66,15 @@ def persons(request: HttpRequest) -> HttpResponse: @login_required -def person(request: HttpRequest, id_: int) -> HttpResponse: +def person(request: HttpRequest, id_: Optional[int] = None) -> HttpResponse: context = {} # Get person and check access try: - person = Person.objects.get(pk=id_) + if id_ is None: + person = request.user.person + else: + person = Person.objects.get(pk=id_) except Person.DoesNotExist as e: # Turn not-found object into a 404 error raise Http404 from e