from learn.models import RolePermission, Feature

def role_permissions(request):

    permissions = {}

    if request.user.is_authenticated:

        # Superuser → full access
        if request.user.is_superuser:

            features = Feature.objects.all()

            for feature in features:
                permissions[feature.feature_key] = {
                    "view": True,
                    "add": True,
                    "edit": True,
                    "delete": True,
                }

            # optional fallback
            permissions["superuser"] = True

        else:
            try:
                role = request.user.userprofile.role

                role_perms = RolePermission.objects.select_related('feature').filter(role=role)

                for perm in role_perms:
                    permissions[perm.feature.feature_key] = {
                        "view": perm.can_view,
                        "add": perm.can_add,
                        "edit": perm.can_edit,
                        "delete": perm.can_delete,
                    }

            except:
                pass

    return {
        "role_permissions": permissions
    }