Nie wiem czy zrozumiałem dobrze Twój problem. ale możesz dodać dekoratory do wybranych widoków, które mają być dostępne tylko dla zalogowanych użytkowników.
from django.contrib.auth.decorators import login_required
Jak masz widoki funkcyjne FBV to dajesz w views.py:
@login_required
def widok_tylko_dla_zalogowanych(request):
...
Jak masz widoki klasowe CBV to dajesz w urls.py:
url('/secret_page/', login_required(views.WidokTylkoDlaZagowanych.as_view())),
W ustawieniach panelu admina możesz nadać użytkownikom różne prawa i połączyć ich w rózne grupy o zróżnicowanych uprawnieniach. Jeśli potrzebujesz więcej, to są specjalne libki zewnętrzne do tego.
--
Jeśli chodzi o samo potwierdzenie e-maila przez użytkownika to zajrzyj tu:
Django Sign Up and login with confirmation Email | Python - GeeksforGeeks
https://www.geeksforgeeks.org/django-sign-up-and-login-with-confirmation-email-python/
PyLessons
https://pylessons.com/django-email-confirm
Django User Registration with Email Confirmation - javatpoint
https://www.javatpoint.com/django-user-registration-with-email-confirmation