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
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