from django.contrib.auth.mixins import LoginRequiredMixin
from django.contrib.auth import views as auth_views
from django.urls import reverse_lazy, resolve
from django.utils.translation import gettext_lazy as _
from django.shortcuts import redirect


class UserView(LoginRequiredMixin):
    login_url = "/login/"
    wallet = False

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context.update({
            'title': self.title,
            'subtitle': self.subtitle,
            'icon': self.icon,
            'section': self.section,
            'path': resolve(self.request.path).url_name,
            'user': self.request.user,
            'wallet': self.wallet,
        })
        return context


class AdminView(UserView):

    def get(self, request, *args, **kwargs):
        if not request.user.is_admin:
            url = reverse_lazy('idhub:user_dashboard')
            return redirect(url)

        return super().get(request, *args, **kwargs)