from django.http import HttpResponse
from django.shortcuts import redirect


# using in the views for logging user and registering user
def unauthenticated_user(view_func):
    def wrapper_func(request, *args, **kwargs):
        
        if request.user.is_authenticated:
            return redirect('survey:home')
        else:
            return view_func(request, *args, **kwargs)
    return wrapper_func


# defining admin roles and customer roles and redirecting them
def allowed_users(allowed_roles=[]):
    def decorator(view_func):
        def wrapper_func(request, *args, **kwargs):

            group = None
            # checking if user is part of a group
            if request.user.groups.exists():
                group = request.user.groups.all()[0].name

            # if admin' is in allowed_roles then return this function
            if group in allowed_roles:
                return view_func(request, *args, **kwargs)
            else:
                return HttpResponse('You are not authorized to view this page')
        return wrapper_func
    return decorator



def admin_only(view_func):
    def wrapper_function(request, *args, **kwargs):
        group = None
        if request.user.groups.exists():
            group = request.user.groups.all()[0].name
        
        if group == 'seller':
            return redirect('survey:home')
        if group == 'bidder':
            return redirect('survey:home')

        if group == 'admin':
            return view_func(request, *args, **kwargs)


    return wrapper_function