mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-24 16:24:08 -04:00
API keys hooked up and working. All tests passing.
This commit is contained in:
25
app/notify_client/permission_api_client.py
Normal file
25
app/notify_client/permission_api_client.py
Normal file
@@ -0,0 +1,25 @@
|
||||
import uuid
|
||||
|
||||
from notifications_python_client.base import BaseAPIClient
|
||||
|
||||
|
||||
class PermissionApiClient(BaseAPIClient):
|
||||
def __init__(self, base_url=None, client_id=None, secret=None):
|
||||
super(self.__class__, self).__init__(base_url=base_url or 'base_url',
|
||||
client_id=client_id or 'client_id',
|
||||
secret=secret or 'secret')
|
||||
|
||||
def init_app(self, app):
|
||||
self.base_url = app.config['API_HOST_NAME']
|
||||
self.client_id = app.config['ADMIN_CLIENT_USER_NAME']
|
||||
self.secret = app.config['ADMIN_CLIENT_SECRET']
|
||||
|
||||
def delete_permission(self, permission_id):
|
||||
return self.delete(url='/permission/{}'.format(permission_id))['data']
|
||||
|
||||
def create_permission(self, permission, user_id, service_id):
|
||||
return self.post(
|
||||
url='/permission',
|
||||
data={'permission': permission,
|
||||
'user': user_id,
|
||||
'service': service_id})['data']
|
||||
@@ -89,7 +89,7 @@ class User(UserMixin):
|
||||
self._email_address = fields.get('email_address')
|
||||
self._mobile_number = fields.get('mobile_number')
|
||||
self._password_changed_at = fields.get('password_changed_at')
|
||||
self._permissions = set(fields.get('permissions')) if fields.get('permission') is not None else set()
|
||||
self._permissions = fields.get('permissions')
|
||||
self._failed_login_count = 0
|
||||
self._state = fields.get('state')
|
||||
self.max_failed_login_count = max_failed_login_count
|
||||
@@ -154,18 +154,12 @@ class User(UserMixin):
|
||||
|
||||
@permissions.setter
|
||||
def permissions(self, permissions):
|
||||
if permissions is None:
|
||||
permissions = set()
|
||||
self._permissions = set(permissions)
|
||||
raise AttributeError("Read only property")
|
||||
|
||||
def add_permissions(self, permissions):
|
||||
self._permissions.update(permissions)
|
||||
|
||||
def remove_permissions(self, permissions):
|
||||
self._permissions -= permissions
|
||||
|
||||
def has_permissions(self, permissions):
|
||||
return self._permissions > set(permissions)
|
||||
def has_permissions(self, service_id, permissions):
|
||||
if service_id in self._permissions:
|
||||
return set(self._permissions[service_id]) > set(permissions)
|
||||
return False
|
||||
|
||||
@property
|
||||
def failed_login_count(self):
|
||||
|
||||
Reference in New Issue
Block a user