Example #1
0
    def save(self):
        is_anony = self.cleaned_data['is_anony']
        is_public = self.cleaned_data['is_public']
        content = self.cleaned_data['content']

        if is_anony or not self.user.is_authenticated():
            new_secret = Secret(content=content, is_public=is_public)
        else:
            new_secret = Secret(author=self.user,
                                content=content,
                                is_public=is_public)
        new_secret.save()
        return new_secret
Example #2
0
def load_link(request):
    global analytics
    form = forms.Secret(request.POST)

    if form.is_valid():
        analytics.secret(Analytics.ACTION_FORM_SECRET, Analytics.LABEL_VALID)
        saved = False

        while not saved:
            id = generate_id()
            secret = get_secret(id)

            if not secret:
                secret = Secret()
                secret.secret = form.cleaned_data['secret']
                secret.id = id
                secret.save()
                saved = True
                secret_link = request.build_absolute_uri() + id
                analytics.secret(Analytics.ACTION_VIEW, Analytics.LABEL_LINK)
    else:
        analytics.secret(Analytics.ACTION_FORM_SECRET, Analytics.LABEL_INVALID)
        secret_link = "Something went wrong"

    display_data = {'secret_link': secret_link}
    return view.display_secret(request,
                               page='secret_link.html',
                               data=display_data,
                               ga_page='secret_link/')
    def validate(self, data):

        # Encrypt plaintext using master key from view
        if data.get('plaintext'):
            s = Secret(plaintext=data['plaintext'])
            s.encrypt(self.context['master_key'])
            data['ciphertext'] = s.ciphertext
            data['hash'] = s.hash

        # Enforce model validation
        super().validate(data)

        return data