コード例 #1
0
ファイル: utils.py プロジェクト: amrishkhan05/shuup
def create_user_consent_for_all_documents(shop, user):
    """
    Create user consent for all available GDPR documents
    """
    from shuup.gdpr.models import GDPRUserConsent, GDPRSettings

    if not GDPRSettings.get_for_shop(
            shop).enabled or is_documents_consent_in_sync(shop, user):
        return

    from shuup.simple_cms.models import Page, PageType
    consent_documents = Page.objects.visible(shop).filter(
        page_type=PageType.GDPR_CONSENT_DOCUMENT)
    GDPRUserConsent.create_for_user(user, shop, consent_documents)
コード例 #2
0
ファイル: providers.py プロジェクト: kafura0/OranKids
    def get_fields(self, **kwargs):
        request = kwargs.get("request", None)
        gdpr_settings = get_gdpr_settings(request)
        if not gdpr_settings:
            return []

        user_consent = None
        if request.user.is_authenticated():
            user_consent = GDPRUserConsent.get_for_user(
                request.user, request.shop)

        fields = []
        for page in get_active_consent_pages(request.shop):
            # user already has consented to this page, ignore it
            if user_consent and not user_consent.should_reconsent_to_page(
                    page):
                continue

            key = "accept_{}".format(page.id)
            field = forms.BooleanField(label=mark_safe(
                ugettext(
                    "I have read and accept the <a href='{}' target='_blank' class='gdpr_consent_doc_check'>{}</a>"
                ).format(reverse("shuup:cms_page", kwargs=dict(url=page.url)),
                         page.title)),
                                       required=True,
                                       error_messages=dict(
                                           required=self.error_message))
            definition = FormFieldDefinition(name=key, field=field)
            fields.append(definition)
        return fields
コード例 #3
0
def create_user_consent_for_all_documents(shop, user):
    """
    Create user consent for all available GDPR documents
    """
    from shuup.gdpr.models import GDPRUserConsent, GDPRSettings

    gdpr_settings = GDPRSettings.get_for_shop(shop)
    if not gdpr_settings.enabled or is_documents_consent_in_sync(shop, user):
        return

    consent_documents = get_active_consent_pages(shop)
    return GDPRUserConsent.ensure_for_user(user, shop, consent_documents)
コード例 #4
0
def is_documents_consent_in_sync(shop, user):
    """
    Returns whether the user has consent to the lastest document versions
    """
    from shuup.gdpr.models import GDPRSettings
    gdpr_settings = GDPRSettings.get_for_shop(shop)
    if not gdpr_settings.enabled:
        return True  # nothing to do.

    from shuup.gdpr.models import GDPRUserConsent
    last_user_consent = GDPRUserConsent.get_for_user(user, shop)
    if not last_user_consent:
        return False
    return not last_user_consent.should_reconsent(shop, user)