Files
@ 541f423a3d1c
Branch filter:
Location: website/conservancy/__init__.py - annotation
541f423a3d1c
1.2 KiB
text/x-python
Add transparent background to T-shirt image
ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 d0464e870c1a ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 813446c568bd ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 ce6be591bde2 | import hashlib
class ParameterValidator:
def __init__(self, given_hash_or_params, params_hash_key=None):
from django.conf import settings
if params_hash_key is None:
self.given_hash = given_hash_or_params
else:
self.given_hash = given_hash_or_params.get(params_hash_key)
seed = settings.SECRET_KEY.encode('utf-8')
self.hasher = hashlib.sha256(seed)
if isinstance(self.given_hash, str):
self.hash_type = type(self.given_hash)
else:
self.hash_type = type(self.hasher.hexdigest())
self.valid = None
if not (self.given_hash and seed):
self.fail()
def __enter__(self):
self.valid = self.valid and None
return self
def __exit__(self, exc_type, exc_value, exc_tb):
if exc_type is None:
self.check()
else:
self.fail()
def validate(self, data):
self.valid = self.valid and None
self.hasher.update(data)
def check(self):
if self.valid or (self.valid is None):
self.valid = self.hash_type(self.hasher.hexdigest()) == self.given_hash
return self.valid
def fail(self):
self.valid = False
|