def permissions(self, permissions): if isinstance(permissions, list): self._permissions = permissions else: self._permissions = permissions.split(',') self._permissions = translate_permissions_from_db_to_admin_roles( self.permissions)
def test_translate_permissions_from_db_to_admin_roles(): db_perms = [ 'send_texts', 'send_emails', 'send_letters', 'manage_templates', 'some_unknown_permission' ] roles = translate_permissions_from_db_to_admin_roles(db_perms) assert roles == { 'send_messages', 'manage_templates', 'some_unknown_permission' }
def test_translate_permissions_from_db_to_admin_roles(): db_perms = [ "send_texts", "send_emails", "send_letters", "manage_templates", "some_unknown_permission", ] roles = translate_permissions_from_db_to_admin_roles(db_perms) assert roles == { "send_messages", "manage_templates", "some_unknown_permission" }
def permissions(self, permissions_by_service): """ Permissions is a dict {'service_id': ['permission a', 'permission b', 'permission c']} The api currently returns some granular permissions that we don't set or use separately (but may want to in the future): * send_texts, send_letters and send_emails become send_messages * manage_user and manage_settings become users either have all three permissions for a service or none of them, they're not helpful to distinguish between on the front end. So lets collapse them into "send_messages" and "manage_service". If we want to split them out later, we'll need to rework this function. """ self._permissions = { service: translate_permissions_from_db_to_admin_roles(permissions) for service, permissions in permissions_by_service.items() }