def get_active_terms_not_agreed_to(user):
        """Checks to see if a specified user has agreed to all the latest terms and conditions"""

        if TERMS_EXCLUDE_USERS_WITH_PERM is not None:
            if user.has_perm(TERMS_EXCLUDE_USERS_WITH_PERM) and not user.is_superuser:
                # Django's has_perm() returns True if is_superuser, we don't want that
                return []

        not_agreed_terms = cache.get('tandc.not_agreed_terms_' + user.get_username())
        if not_agreed_terms is None:
            try:
                LOGGER.debug("Not Agreed Terms")
                not_agreed_terms = TermsAndConditions.get_active_terms_list().exclude(
                    userterms__in=UserTermsAndConditions.objects.filter(user=user)
                ).order_by('slug')

                cache.set('tandc.not_agreed_terms_' + user.get_username(), not_agreed_terms, TERMS_CACHE_SECONDS)
            except (TypeError, UserTermsAndConditions.DoesNotExist):
                return []

        return not_agreed_terms
Checks to see if a specified user has agreed to all the latest terms and conditions