def list_org_roles(actor_id): try: ret = find_roles_by_actor(str(actor_id)) return gateway_json_response(ret) except Exception as e: return build_error_response(e)
def list_org_roles(actor_id): try: ret = find_roles_by_actor(str(actor_id)) return gateway_json_response(ret) except Exception, e: return build_error_response(e)
def extend_user_session_attributes(self, session, actor_obj): if actor_obj and hasattr(actor_obj, "_id"): actor_id = actor_obj._id roles = find_roles_by_actor(actor_id) # dict with org gov names to list of role gov names role_list = ["%s.%s" % (on, rn) for (on, rl) in roles.iteritems() for rn in rl] session["auth_roles"] = sorted(role_list) else: session["auth_roles"] = []
def extend_user_session_attributes(self, session, actor_obj): if actor_obj and hasattr(actor_obj, "_id"): actor_id = actor_obj._id roles = find_roles_by_actor( actor_id) # dict with org gov names to list of role gov names role_list = [ "%s.%s" % (on, rn) for (on, rl) in roles.iteritems() for rn in rl ] session["auth_roles"] = sorted(role_list) else: session["auth_roles"] = []
def test_get_actor_header(self): #Setup data actor = IonObject(RT.ActorIdentity, name='actor1') actor_id, _ = self.rr.create(actor) ion_org = IonObject(RT.Org, name='ION', org_governance_name='ION') ion_org_id, _ = self.rr.create(ion_org) ion_org._id = ion_org_id manager_role = IonObject(RT.UserRole, name='Org Manager', governance_name=ORG_MANAGER_ROLE, description='Org Manager') manager_role_id = self.add_user_role(ion_org, manager_role) member_role = IonObject(RT.UserRole, name='Org Member', governance_name=ORG_MEMBER_ROLE, description='Org Member') # all actors have a defaul org_member_role actor_roles = find_roles_by_actor(actor_id) self.assertDictEqual(actor_roles, {'ION': [ORG_MEMBER_ROLE]}) actor_header = get_actor_header(actor_id) self.assertDictEqual(actor_header, {'ion-actor-id': actor_id, 'ion-actor-roles': {'ION': [ORG_MEMBER_ROLE]}}) #Add Org Manager Role self.rr.create_association(actor_id, PRED.hasRole, manager_role_id) actor_roles = find_roles_by_actor(actor_id) role_header = get_role_message_headers({'ION': [manager_role, member_role]}) self.assertDictEqual(actor_roles, role_header) org2 = IonObject(RT.Org, name='Org 2', org_governance_name='Second_Org') org2_id, _ = self.rr.create(org2) org2._id = org2_id member2_role = IonObject(RT.UserRole, governance_name=ORG_MEMBER_ROLE, name='Org Member', description='Org Member') member2_role_id = self.add_user_role(org2, member2_role) operator2_role = IonObject(RT.UserRole, governance_name='INSTRUMENT_OPERATOR', name='Instrument Operator', description='Instrument Operator') operator2_role_id = self.add_user_role(org2, operator2_role) self.rr.create_association(actor_id, PRED.hasRole, member2_role_id) self.rr.create_association(actor_id, PRED.hasRole, operator2_role_id) actor_roles = find_roles_by_actor(actor_id) role_header = get_role_message_headers({'ION': [manager_role, member_role], 'Second_Org': [operator2_role, member2_role]}) self.assertEqual(len(actor_roles), 2) self.assertEqual(len(role_header), 2) self.assertIn('Second_Org', actor_roles) self.assertIn('Second_Org', role_header) self.assertEqual(len(actor_roles['Second_Org']), 2) self.assertEqual(len(role_header['Second_Org']), 2) self.assertIn('INSTRUMENT_OPERATOR', actor_roles['Second_Org']) self.assertIn('INSTRUMENT_OPERATOR', role_header['Second_Org']) self.assertIn(ORG_MEMBER_ROLE, actor_roles['Second_Org']) self.assertIn(ORG_MEMBER_ROLE, role_header['Second_Org']) self.assertIn('ION', actor_roles) self.assertIn('ION', role_header) self.assertIn(ORG_MANAGER_ROLE, actor_roles['ION']) self.assertIn(ORG_MEMBER_ROLE, actor_roles['ION']) self.assertIn(ORG_MANAGER_ROLE, role_header['ION']) self.assertIn(ORG_MEMBER_ROLE, role_header['ION']) actor_header = get_actor_header(actor_id) self.assertEqual(actor_header['ion-actor-id'], actor_id) self.assertEqual(actor_header['ion-actor-roles'], actor_roles) #Now make sure we can change the name of the Org and not affect the headers org2 = self.rr.read(org2_id) org2.name = 'Updated Org 2' org2_id, _ = self.rr.update(org2) actor_roles = find_roles_by_actor(actor_id) self.assertEqual(len(actor_roles), 2) self.assertEqual(len(role_header), 2) self.assertIn('Second_Org', actor_roles) self.assertIn('Second_Org', role_header) self.assertEqual(len(actor_roles['Second_Org']), 2) self.assertEqual(len(role_header['Second_Org']), 2) self.assertIn('INSTRUMENT_OPERATOR', actor_roles['Second_Org']) self.assertIn('INSTRUMENT_OPERATOR', role_header['Second_Org']) self.assertIn(ORG_MEMBER_ROLE, actor_roles['Second_Org']) self.assertIn(ORG_MEMBER_ROLE, role_header['Second_Org']) self.assertIn('ION', actor_roles) self.assertIn('ION', role_header) self.assertIn(ORG_MANAGER_ROLE, actor_roles['ION']) self.assertIn(ORG_MEMBER_ROLE, actor_roles['ION']) self.assertIn(ORG_MANAGER_ROLE, role_header['ION']) self.assertIn(ORG_MEMBER_ROLE, role_header['ION']) actor_header = get_actor_header(actor_id) self.assertEqual(actor_header['ion-actor-id'], actor_id) self.assertEqual(actor_header['ion-actor-roles'], actor_roles)
def test_get_actor_header(self): #Setup data actor = IonObject(RT.ActorIdentity, name='actor1') actor_id, _ = self.rr.create(actor) ion_org = IonObject(RT.Org, name='ION', org_governance_name='ION') ion_org_id, _ = self.rr.create(ion_org) ion_org._id = ion_org_id manager_role = IonObject(RT.UserRole, name='Org Manager', governance_name=MODERATOR_ROLE, description='Org Manager') manager_role_id = self.add_org_role(ion_org, manager_role) member_role = IonObject(RT.UserRole, name='Org Member', governance_name=MEMBER_ROLE, description='Org Member') # all actors have a defaul MEMBER_ROLE actor_roles = find_roles_by_actor(actor_id) self.assertDictEqual(actor_roles, {'ION': [MEMBER_ROLE]}) actor_header = get_actor_header(actor_id) self.assertDictEqual(actor_header, { 'ion-actor-id': actor_id, 'ion-actor-roles': { 'ION': [MEMBER_ROLE] } }) #Add Org Manager Role self.rr.create_association(actor_id, PRED.hasRole, manager_role_id) actor_roles = find_roles_by_actor(actor_id) role_header = get_role_message_headers( {'ION': [manager_role, member_role]}) self.assertDictEqual(actor_roles, role_header) org2 = IonObject(RT.Org, name='Org 2', org_governance_name='Second_Org') org2_id, _ = self.rr.create(org2) org2._id = org2_id member2_role = IonObject(RT.UserRole, governance_name=MEMBER_ROLE, name='Org Member', description='Org Member') member2_role_id = self.add_org_role(org2, member2_role) operator2_role = IonObject(RT.UserRole, governance_name='OPERATOR', name='Instrument Operator', description='Instrument Operator') operator2_role_id = self.add_org_role(org2, operator2_role) self.rr.create_association(actor_id, PRED.hasRole, member2_role_id) self.rr.create_association(actor_id, PRED.hasRole, operator2_role_id) actor_roles = find_roles_by_actor(actor_id) role_header = get_role_message_headers({ 'ION': [manager_role, member_role], 'Second_Org': [operator2_role, member2_role] }) self.assertEqual(len(actor_roles), 2) self.assertEqual(len(role_header), 2) self.assertIn('Second_Org', actor_roles) self.assertIn('Second_Org', role_header) self.assertEqual(len(actor_roles['Second_Org']), 2) self.assertEqual(len(role_header['Second_Org']), 2) self.assertIn('OPERATOR', actor_roles['Second_Org']) self.assertIn('OPERATOR', role_header['Second_Org']) self.assertIn(MEMBER_ROLE, actor_roles['Second_Org']) self.assertIn(MEMBER_ROLE, role_header['Second_Org']) self.assertIn('ION', actor_roles) self.assertIn('ION', role_header) self.assertIn(MODERATOR_ROLE, actor_roles['ION']) self.assertIn(MEMBER_ROLE, actor_roles['ION']) self.assertIn(MODERATOR_ROLE, role_header['ION']) self.assertIn(MEMBER_ROLE, role_header['ION']) actor_header = get_actor_header(actor_id) self.assertEqual(actor_header['ion-actor-id'], actor_id) self.assertEqual(actor_header['ion-actor-roles'], actor_roles) #Now make sure we can change the name of the Org and not affect the headers org2 = self.rr.read(org2_id) org2.name = 'Updated Org 2' org2_id, _ = self.rr.update(org2) actor_roles = find_roles_by_actor(actor_id) self.assertEqual(len(actor_roles), 2) self.assertEqual(len(role_header), 2) self.assertIn('Second_Org', actor_roles) self.assertIn('Second_Org', role_header) self.assertEqual(len(actor_roles['Second_Org']), 2) self.assertEqual(len(role_header['Second_Org']), 2) self.assertIn('OPERATOR', actor_roles['Second_Org']) self.assertIn('OPERATOR', role_header['Second_Org']) self.assertIn(MEMBER_ROLE, actor_roles['Second_Org']) self.assertIn(MEMBER_ROLE, role_header['Second_Org']) self.assertIn('ION', actor_roles) self.assertIn('ION', role_header) self.assertIn(MODERATOR_ROLE, actor_roles['ION']) self.assertIn(MEMBER_ROLE, actor_roles['ION']) self.assertIn(MODERATOR_ROLE, role_header['ION']) self.assertIn(MEMBER_ROLE, role_header['ION']) actor_header = get_actor_header(actor_id) self.assertEqual(actor_header['ion-actor-id'], actor_id) self.assertEqual(actor_header['ion-actor-roles'], actor_roles)