def reset_access_credentials(self): access_key = generate_random_string()[:64] secret_key = generate_random_string()[:64] secret_hash, secret_salt = generate_hash_and_salt(secret_key) self.access_key_id = access_key self.access_key_secret = secret_hash self.access_key_secret_salt = secret_salt self.save() return access_key, secret_key
def reset_access_credentials(self) -> (str, str): access_key = generate_random_string()[:64] secret_key = generate_random_string()[:64] secret_hash, secret_salt = generate_hash_and_salt(secret_key) self.access_key_id = access_key.decode() self.access_key_secret = secret_hash.decode() self.access_key_secret_salt = secret_salt.decode() self.save() return access_key.decode(), secret_key.decode()
def generate(cls, researcher: Researcher, **kwargs) -> "ApiKey": """ Create ApiKey with newly generated credentials credentials. """ access_key = generate_random_string()[:64] secret_key = generate_random_string()[:64] secret_hash, secret_salt = generate_hash_and_salt(secret_key) api_key = cls.objects.create( access_key_id=access_key.decode(), access_key_secret=secret_hash.decode(), access_key_secret_salt=secret_salt.decode(), researcher=researcher, **kwargs, ) api_key._access_key_secret_plaintext = secret_key.decode() return api_key
def add_admin_user_if_not_exists(apps, schema_editor): Researcher = apps.get_model('database', 'Researcher') if Researcher.objects.count() == 0: access_key = generate_random_string()[:64] secret_key = generate_random_string()[:64] secret_hash, secret_salt = generate_hash_and_salt(secret_key) access_key_id = access_key access_key_secret = secret_hash access_key_secret_salt = secret_salt password, salt = generate_hash_and_salt("abc123") r = Researcher(username="******", password=password, salt=salt, admin=True, access_key_id=access_key_id, access_key_secret=access_key_secret, access_key_secret_salt=access_key_secret_salt) r.save()