import os from oso_cloud import Oso # Set up the Oso client oso = Oso(url='https://cloud.osohq.com', api_key=os.environ.get('OSO_AUTH')) def user(identifier): return resource('User', identifier) def resource(type, identifier): return {'type': type, 'id': str(identifier)} def main(): oso.tell('has_group', user('Michelle'), 'AbacusProfile/contract_admin') oso.tell('has_group', user('Elaine'), 'AbacusProfile/royalties') oso.tell( 'has_content_group', user('Conrad'), 'ContentProfile/distribution_reviewer', resource('ContentType', 'digital_audio'), ) oso.tell( 'has_role', user('Oliver'), 'DocumentsProfile/documents_payee_management', resource('Account', 999), ) oso.tell( 'has_content_role', user('Oliver'), 'ContentProfile/label_artist_user', resource('Account', 999), resource('ContentType', 'digital_audio'), ) oso.tell( 'has_content_group', user('Conrad'), 'ContentProfile/distribution_reviewer', resource('ContentType', 'digital_audio'), ) oso.tell( 'has_content_role', user('Paul'), 'ContentProfile/label_artist_user', resource('Account', 888), resource('ContentType', 'digital_audio'), ) oso.tell( 'has_content_role', user('Paul'), 'ContentProfile/label_artist_user', resource('Account', 888), resource('ContentType', 'sr/performance'), ) oso.tell( 'has_content_role', user('Allan'), 'ContentProfile/label_artist_user', resource('Account', 888), resource('ContentType', 'sr/performance'), ) oso.tell( 'has_content_role', user('Allan'), 'ContentProfile/label_artist_user', resource('Account', 222), resource('ContentType', 'digital_audio'), ) if __name__ == "__main__": main()