mirror of
https://github.com/GSA/notifications-admin.git
synced 2025-12-17 18:44:11 -05:00
Rewrite cache decorator to use format string
This is easier to read than having to understand the arguments 1…n of
the cache decorator are ‘magic’, and gives us more flexibility about
how the cache keys are formatted, eg being able to add words in the
middle of them.
Also changes the key format for all templates to be
`service-{service_id}-templates` instead of `templates-{service_id}`
because then it’s clearer what the ID represents.
This commit is contained in:
@@ -39,7 +39,7 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
def get_user(self, user_id):
|
||||
return User(self._get_user(user_id)['data'], max_failed_login_count=self.max_failed_login_count)
|
||||
|
||||
@cache.set('user', 'user_id')
|
||||
@cache.set('user-{user_id}')
|
||||
def _get_user(self, user_id):
|
||||
return self.get("/user/{}".format(user_id))
|
||||
|
||||
@@ -61,7 +61,7 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
users.append(User(user, max_failed_login_count=self.max_failed_login_count))
|
||||
return users
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def update_user_attribute(self, user_id, **kwargs):
|
||||
data = dict(kwargs)
|
||||
disallowed_attributes = set(data.keys()) - ALLOWED_ATTRIBUTES
|
||||
@@ -75,20 +75,20 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
user_data = self.post(url, data=data)
|
||||
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def reset_failed_login_count(self, user_id):
|
||||
url = "/user/{}/reset-failed-login-count".format(user_id)
|
||||
user_data = self.post(url, data={})
|
||||
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def update_password(self, user_id, password):
|
||||
data = {"_password": password}
|
||||
url = "/user/{}/update-password".format(user_id)
|
||||
user_data = self.post(url, data=data)
|
||||
return User(user_data['data'], max_failed_login_count=self.max_failed_login_count)
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def verify_password(self, user_id, password):
|
||||
try:
|
||||
url = "/user/{}/verify/password".format(user_id)
|
||||
@@ -118,7 +118,7 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
endpoint = '/user/{0}/email-already-registered'.format(user_id)
|
||||
self.post(endpoint, data=data)
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def check_verify_code(self, user_id, code, code_type):
|
||||
data = {'code_type': code_type, 'code': code}
|
||||
endpoint = '/user/{}/verify/code'.format(user_id)
|
||||
@@ -154,20 +154,20 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
resp = self.get(endpoint)
|
||||
return [User(data) for data in resp['data']]
|
||||
|
||||
@cache.delete('service', 'service_id')
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('service-{service_id}')
|
||||
@cache.delete('user-{user_id}')
|
||||
def add_user_to_service(self, service_id, user_id, permissions):
|
||||
# permissions passed in are the combined admin roles, not db permissions
|
||||
endpoint = '/service/{}/users/{}'.format(service_id, user_id)
|
||||
data = [{'permission': x} for x in translate_permissions_from_admin_roles_to_db(permissions)]
|
||||
self.post(endpoint, data=data)
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def add_user_to_organisation(self, org_id, user_id):
|
||||
resp = self.post('/organisations/{}/users/{}'.format(org_id, user_id), data={})
|
||||
return User(resp['data'], max_failed_login_count=self.max_failed_login_count)
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def set_user_permissions(self, user_id, service_id, permissions):
|
||||
# permissions passed in are the combined admin roles, not db permissions
|
||||
data = [{'permission': x} for x in translate_permissions_from_admin_roles_to_db(permissions)]
|
||||
@@ -191,7 +191,7 @@ class UserApiClient(NotifyAdminAPIClient):
|
||||
else:
|
||||
return user
|
||||
|
||||
@cache.delete('user', 'user_id')
|
||||
@cache.delete('user-{user_id}')
|
||||
def _activate_user(self, user_id):
|
||||
return self.post("/user/{}/activate".format(user_id), data=None)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user