from django.contrib.auth.decorators import login_required, user_passes_test


def role_required(*roles):
    """Restrict a view to users whose accounts.User.role is in roles."""

    def check(user):
        return user.is_authenticated and (
            user.is_superuser or user.role in roles
        )

    return user_passes_test(check)


seeker_required = role_required('seeker')
company_required = role_required('company')
employer_or_admin_required = role_required('company', 'admin')
admin_required = role_required('admin')
