def test1179(self): createTestImage(self.root.sf) rdefs = self.root.sf.getQueryService().findAll("RenderingDef", None) if len(rdefs) == 0: raise Exception("Must have at least one rendering def") id = rdefs[0].pixels.id.val # make sure thumbnail is viewed by owner tb = self.root.sf.createThumbnailStore() try: tb.setPixelsId(id) s = tb.getThumbnail(rint(16), rint(16)) assert len(s) > 0 finally: tb.close() share = self.root.sf.getShareService() sid = share.createShare("", None, [], [], [], True) share.activate(sid) # Share is active: we are in the security context of the share tb = self.root.sf.createThumbnailStore() try: tb.setPixelsId(id) s = tb.getThumbnail(rint(16), rint(16)) assert len(s) > 0 except omero.SecurityViolation: assert False, "Pixels was not in share" finally: tb.close() share.deactivate()
def test880(self): try: createTestImage(self.client.sf) i = self.client.sf.getQueryService().findAll("Image", params.theFilter)[0] assert i != None assert i.id != None assert i.details != None except omero.ValidationException, ve: print " test880 - createTestImage has failed. This fixture method needs to be fixed."
def test880(self): try: createTestImage(self.client.sf) i = self.client.sf.getQueryService().findAll( "Image", params.theFilter)[0] assert i != None assert i.id != None assert i.details != None except omero.ValidationException, ve: print " test880 - createTestImage has failed. This fixture method needs to be fixed."
def test1179(self): createTestImage(self.root.sf) rdefs = self.root.sf.getQueryService().findAll("RenderingDef", None) if len(rdefs) == 0: raise Exception("Must have at least one rendering def") share = self.root.sf.getShareService() sid = share.createShare("", None, [], [], [], True) share.activate(sid) tb = self.root.sf.createThumbnailStore() try: tb.setPixelsId(rdefs[0].pixels.id.val) except omero.SecurityViolation: assert False, "Pixels was not in share"
def test880(self): try: createTestImage(self.client.sf) i = self.client.sf.getQueryService().findAll( "Image", params.theFilter)[0] assert i is not None assert i.id is not None assert i.details is not None except omero.ValidationException: print " test880 - createTestImage has failed. "\ "This fixture method needs to be fixed." except IndexError: print " test880 - findAll has failed so assertions "\ "can't be checked. Is this a fail? "
def test13018(self): """ Test that image in share is unavailable when share is inactive or expired """ owner = self.new_client() member, mobj = self.new_client_and_user() createTestImage(owner.sf) image = owner.sf.getQueryService().findAll("Image", None)[0] o_share = owner.sf.getShareService() sid = o_share.createShare("", None, [image], [mobj], [], True) m_share = member.sf.getShareService() m_share.activate(sid) o_share.setActive(sid, False) with pytest.raises(omero.ValidationException): m_share.activate(sid) with pytest.raises(omero.ValidationException): obj = omero.model.ShareI(sid, False) member.sf.setSecurityContext(obj) # test inactive share, if member has no access to the image s = o_share.getShare(sid) with pytest.raises(Glacier2.PermissionDeniedException): self.new_client(session=s.uuid) # activate again o_share.setActive(sid, True) # test that the image is now loadable again. t_conn = self.new_client(session=s.uuid) t_conn.sf.getQueryService().find("Image", image.id.val) # test expired share, if member has no access to the image expiration = long(time.time() * 1000) + 500 o_share.setExpiration(sid, rtime(expiration)) self.assert_expiration(expiration, o_share.getShare(sid)) time.sleep(0.5) # Forced closing o_session = owner.sf.getSessionService() o_session.closeSession(o_share.getShare(sid)) with pytest.raises(Glacier2.PermissionDeniedException): self.new_client(session=s.uuid)
def testBasicUsage(self): gateway = self.client.sf.createGateway() gateway.getProjects([0],False) try: # query below does not find image if created with self.createTestImage() even though it # uses 'identical' code to createTestImage(self.client.sf), which uses script_utils #iid = self.createTestImage().getId().getValue() iid = createTestImage(self.client.sf) print iid, type(iid) query = self.client.sf.getQueryService() params = omero.sys.Parameters() params.map = {} params.map["oid"] = rlong(iid) params.theFilter = omero.sys.Filter() params.theFilter.offset = rint(0) params.theFilter.limit = rint(1) pixel = query.findByQuery("select p from Pixels as p left outer join fetch p.image as i where i.id=:oid", params) print pixel imgid = pixel.image.id.val print imgid gateway.getRenderedImage(pixel.id.val, 0, 0) except omero.ValidationException, ve: print " testBasicUsage - createTestImage has failed. This fixture method needs to be fixed."
def testBasicUsage(self): gateway = self.client.sf.createGateway() gateway.getProjects([0], False) try: # query below does not find image if created with self.createTestImage() even though it # uses 'identical' code to createTestImage(self.client.sf), which uses script_utils #iid = self.createTestImage().getId().getValue() iid = createTestImage(self.client.sf) print iid, type(iid) query = self.client.sf.getQueryService() params = omero.sys.Parameters() params.map = {} params.map["oid"] = rlong(iid) params.theFilter = omero.sys.Filter() params.theFilter.offset = rint(0) params.theFilter.limit = rint(1) pixel = query.findByQuery( "select p from Pixels as p left outer join fetch p.image as i where i.id=:oid", params) print pixel imgid = pixel.image.id.val print imgid gateway.getRenderedImage(pixel.id.val, 0, 0) except omero.ValidationException, ve: print " testBasicUsage - createTestImage has failed. This fixture method needs to be fixed."
def test8704(self): # Owner of share owner, owner_obj = self.new_client_and_user(perms="rw----") # Different group! member, member_obj = self.new_client_and_user(perms="rw----") member_suuid = \ member.sf.getAdminService().getEventContext().sessionUuid owner_suuid = \ owner.sf.getAdminService().getEventContext().sessionUuid member_groupId = member.sf.getAdminService().getEventContext().groupId owner_groupId = owner.sf.getAdminService().getEventContext().groupId # just in case assert member_suuid != owner_suuid # just in case assert owner_obj.id.val != member_obj.id.val # create image by owner owner_update = owner.sf.getUpdateService() image_id = createTestImage(owner.sf) p = omero.sys.Parameters() p.map = {"id": rlong(long(image_id))} sql = "select im from Image im join fetch im.details.owner " \ "join fetch im.details.group where im.id=:id order by im.name" image = owner.sf.getQueryService().findAllByQuery( sql, p, {'omero.group': str(owner_groupId)})[0] rdefs = owner.sf.getQueryService().findAll("RenderingDef", None) # create image by member member_update = member.sf.getUpdateService() image2 = self.new_image() image2 = member_update.saveAndReturnObject(image2) share = owner.sf.getShareService() sid = self.create_share(share, objects=[image], experimenters=[member_obj]) self.assert_access(owner, sid) self.assert_access(member, sid) member_share = member.sf.getShareService() share_obj = member_share.getShare(sid) # Activation shouldn't be needed any more as # we pass {'omero.share': <sid>} # member_share.activate(long(sid)) # And the member should be able to use omero.share:sid member_query = member.sf.getQueryService() try: rv = member.sf.getQueryService().find("Image", image.id.val, None) except omero.SecurityViolation, sv: pass
def test8704(self): # Owner of share owner, owner_obj = self.new_client_and_user(perms="rw----") # Different group! member, member_obj = self.new_client_and_user(perms="rw----") member_suuid = member.sf.getAdminService().getEventContext().sessionUuid owner_suuid = owner.sf.getAdminService().getEventContext().sessionUuid member_groupId = member.sf.getAdminService().getEventContext().groupId owner_groupId = owner.sf.getAdminService().getEventContext().groupId # just in case assert member_suuid != owner_suuid # just in case assert owner_obj.id.val != member_obj.id.val # create image by owner owner_update = owner.sf.getUpdateService() image_id = createTestImage(owner.sf) p = omero.sys.Parameters() p.map = {"id": rlong(long(image_id))} sql = ( "select im from Image im join fetch im.details.owner " "join fetch im.details.group where im.id=:id order by im.name" ) image = owner.sf.getQueryService().findAllByQuery(sql, p, {"omero.group": str(owner_groupId)})[0] rdefs = owner.sf.getQueryService().findAll("RenderingDef", None) # create image by member member_update = member.sf.getUpdateService() image2 = self.new_image() image2 = member_update.saveAndReturnObject(image2) share = owner.sf.getShareService() sid = self.create_share(share, objects=[image], experimenters=[member_obj]) self.assert_access(owner, sid) self.assert_access(member, sid) member_share = member.sf.getShareService() share_obj = member_share.getShare(sid) # Activation shouldn't be needed any more as # we pass {'omero.share': <sid>} # member_share.activate(long(sid)) # And the member should be able to use omero.share:sid member_query = member.sf.getQueryService() try: rv = member.sf.getQueryService().find("Image", image.id.val, None) except omero.SecurityViolation, sv: pass
def testThumbs(self): privateGroup = self.new_group(perms='rw----') readOnlyGroup = self.new_group(perms='rwr---') collaborativeGroup = self.new_group(perms='rwra--') #new user (group owner) newOwner = self.new_user(group=privateGroup) self.add_groups(newOwner, [readOnlyGroup, collaborativeGroup], owner=True) #new user1 user1 = self.new_user(group=privateGroup) self.add_groups(user1, [readOnlyGroup, collaborativeGroup]) #new user2 user2 = self.new_user(group=privateGroup) self.add_groups(user2, [readOnlyGroup, collaborativeGroup]) ## login as user1 (into their default group) # create image in private group client_share1 = self.new_client( user=user1, password=user1.omeName.val) privateImageId = createTestImage(client_share1.sf) # if we don't get thumbnail, test fails when another user does self.getThumbnail(client_share1.sf, privateImageId) # change user into read-only group. Use object Ids for this, # NOT objects from a different context a = client_share1.sf.getAdminService() me = a.getExperimenter(a.getEventContext().userId) a.setDefaultGroup(me, omero.model.ExperimenterGroupI(readOnlyGroup.id.val, False)) self.set_context(client_share1, readOnlyGroup.id.val) # create image and get thumbnail (in read-only group) readOnlyImageId = createTestImage(client_share1.sf) self.getThumbnail(client_share1.sf, readOnlyImageId) # change user into collaborative group. Use object Ids for this, NOT objects from a different context a.setDefaultGroup(me, omero.model.ExperimenterGroupI(collaborativeGroup.id.val, False)) self.set_context(client_share1, collaborativeGroup.id.val) # create image and get thumbnail (in collaborative group) collaborativeImageId = createTestImage(client_share1.sf) self.getThumbnail(client_share1.sf, collaborativeImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(client_share1.sf, privateImageId) is None assert self.getThumbnail(client_share1.sf, readOnlyImageId) is None # now check that the 'owner' of each group can see all 3 thumbnails. ## login as owner (into private group) owner_client = self.new_client( user=newOwner, password=newOwner.omeName.val) group_ctx = {"omero.group": str(privateGroup)} self.getThumbnail(owner_client.sf, privateImageId, *group_ctx) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(owner_client.sf, readOnlyImageId) is None assert self.getThumbnail(owner_client.sf, collaborativeImageId) is None # change owner into read-only group. o = client_share1.sf.getAdminService() me = o.getExperimenter(o.getEventContext().userId) o.setDefaultGroup(me, omero.model.ExperimenterGroupI(readOnlyGroup.id.val, False)) self.set_context(owner_client, readOnlyGroup.id.val) self.getThumbnail(owner_client.sf, readOnlyImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(owner_client.sf, privateImageId) is None assert self.getThumbnail(owner_client.sf, collaborativeImageId) is None # change owner into collaborative group. o.setDefaultGroup(me, omero.model.ExperimenterGroupI(collaborativeGroup.id.val, False)) self.set_context(owner_client, collaborativeGroup.id.val) self.getThumbnail(owner_client.sf, collaborativeImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(owner_client.sf, privateImageId) is None assert self.getThumbnail(owner_client.sf, readOnlyImageId) is None # now check that the 'user2' of each group can see all thumbnails except private. ## login as user2 (into private group) user2_client = self.new_client(user=user2, password=user2.omeName.val) # check that we can't get thumbnails for any images in private group assert self.getThumbnail(user2_client.sf, privateImageId) is None assert self.getThumbnail(user2_client.sf, readOnlyImageId) is None assert self.getThumbnail(user2_client.sf, collaborativeImageId) is None # change owner into read-only group. u = user2_client.sf.getAdminService() me = u.getExperimenter(u.getEventContext().userId) u.setDefaultGroup(me, omero.model.ExperimenterGroupI(readOnlyGroup.id.val, False)) self.set_context(user2_client, readOnlyGroup.id.val) self.getThumbnail(user2_client.sf, readOnlyImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(user2_client.sf, privateImageId) is None assert self.getThumbnail(user2_client.sf, collaborativeImageId) is None # change owner into collaborative group. u.setDefaultGroup(me, omero.model.ExperimenterGroupI(collaborativeGroup.id.val, False)) self.set_context(user2_client, collaborativeGroup.id.val) self.getThumbnail(user2_client.sf, collaborativeImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(user2_client.sf, privateImageId) is None assert self.getThumbnail(user2_client.sf, readOnlyImageId) is None
def testThumbs(self): privateGroup = self.new_group(perms='rw----') readOnlyGroup = self.new_group(perms='rwr---') collaborativeGroup = self.new_group(perms='rwra--') #new user (group owner) newOwner = self.new_user(group=privateGroup) self.add_groups(newOwner, [readOnlyGroup, collaborativeGroup], owner=True) #new user1 user1 = self.new_user(group=privateGroup) self.add_groups(user1, [readOnlyGroup, collaborativeGroup]) #new user2 user2 = self.new_user(group=privateGroup) self.add_groups(user2, [readOnlyGroup, collaborativeGroup]) ## login as user1 (into their default group) # create image in private group client_share1 = self.new_client(user=user1, password="******") privateImageId = createTestImage(client_share1.sf) # if we don't get thumbnail, test fails when another user does self.getThumbnail(client_share1.sf, privateImageId) # change user into read-only group. Use object Ids for this, # NOT objects from a different context a = client_share1.sf.getAdminService() me = a.getExperimenter(a.getEventContext().userId) a.setDefaultGroup( me, omero.model.ExperimenterGroupI(readOnlyGroup.id.val, False)) self.set_context(client_share1, readOnlyGroup.id.val) # create image and get thumbnail (in read-only group) readOnlyImageId = createTestImage(client_share1.sf) self.getThumbnail(client_share1.sf, readOnlyImageId) # change user into collaborative group. Use object Ids for this, NOT objects from a different context a.setDefaultGroup( me, omero.model.ExperimenterGroupI(collaborativeGroup.id.val, False)) self.set_context(client_share1, collaborativeGroup.id.val) # create image and get thumbnail (in collaborative group) collaborativeImageId = createTestImage(client_share1.sf) self.getThumbnail(client_share1.sf, collaborativeImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(client_share1.sf, privateImageId) is None assert self.getThumbnail(client_share1.sf, readOnlyImageId) is None # now check that the 'owner' of each group can see all 3 thumbnails. ## login as owner (into private group) owner_client = self.new_client(user=newOwner, password="******") group_ctx = {"omero.group": str(privateGroup)} self.getThumbnail(owner_client.sf, privateImageId, *group_ctx) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(owner_client.sf, readOnlyImageId) is None assert self.getThumbnail(owner_client.sf, collaborativeImageId) is None # change owner into read-only group. o = client_share1.sf.getAdminService() me = o.getExperimenter(o.getEventContext().userId) o.setDefaultGroup( me, omero.model.ExperimenterGroupI(readOnlyGroup.id.val, False)) self.set_context(owner_client, readOnlyGroup.id.val) self.getThumbnail(owner_client.sf, readOnlyImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(owner_client.sf, privateImageId) is None assert self.getThumbnail(owner_client.sf, collaborativeImageId) is None # change owner into collaborative group. o.setDefaultGroup( me, omero.model.ExperimenterGroupI(collaborativeGroup.id.val, False)) self.set_context(owner_client, collaborativeGroup.id.val) self.getThumbnail(owner_client.sf, collaborativeImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(owner_client.sf, privateImageId) is None assert self.getThumbnail(owner_client.sf, readOnlyImageId) is None # now check that the 'user2' of each group can see all thumbnails except private. ## login as user2 (into private group) user2_client = self.new_client(user=user2, password="******") # check that we can't get thumbnails for any images in private group assert self.getThumbnail(user2_client.sf, privateImageId) is None assert self.getThumbnail(user2_client.sf, readOnlyImageId) is None assert self.getThumbnail(user2_client.sf, collaborativeImageId) is None # change owner into read-only group. u = user2_client.sf.getAdminService() me = u.getExperimenter(u.getEventContext().userId) u.setDefaultGroup( me, omero.model.ExperimenterGroupI(readOnlyGroup.id.val, False)) self.set_context(user2_client, readOnlyGroup.id.val) self.getThumbnail(user2_client.sf, readOnlyImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(user2_client.sf, privateImageId) is None assert self.getThumbnail(user2_client.sf, collaborativeImageId) is None # change owner into collaborative group. u.setDefaultGroup( me, omero.model.ExperimenterGroupI(collaborativeGroup.id.val, False)) self.set_context(user2_client, collaborativeGroup.id.val) self.getThumbnail(user2_client.sf, collaborativeImageId) # check that we can't get thumbnails for images in other groups assert self.getThumbnail(user2_client.sf, privateImageId) is None assert self.getThumbnail(user2_client.sf, readOnlyImageId) is None
def test8704(self): # Owner of share owner, owner_obj = self.new_client_and_user(perms="rw----") # Different group! member, member_obj = self.new_client_and_user(perms="rw----") member_suuid = \ member.sf.getAdminService().getEventContext().sessionUuid owner_suuid = \ owner.sf.getAdminService().getEventContext().sessionUuid member.sf.getAdminService().getEventContext().groupId owner_groupId = owner.sf.getAdminService().getEventContext().groupId # just in case assert member_suuid != owner_suuid # just in case assert owner_obj.id.val != member_obj.id.val # create image by owner owner.sf.getUpdateService() image_id = createTestImage(owner.sf) p = omero.sys.Parameters() p.map = {"id": rlong(long(image_id))} sql = "select im from Image im join fetch im.details.owner " \ "join fetch im.details.group where im.id=:id order by im.name" image = owner.sf.getQueryService().findAllByQuery( sql, p, {'omero.group': str(owner_groupId)})[0] rdefs = owner.sf.getQueryService().findAll("RenderingDef", None) # create image by member image2 = self.make_image(client=member) sid = self.create_share(objects=[image], experimenters=[member_obj], client=owner) self.assert_access(owner, sid) self.assert_access(member, sid) member_share = member.sf.getShareService() member_share.getShare(sid) # Activation shouldn't be needed any more as # we pass {'omero.share': <sid>} # member_share.activate(long(sid)) # And the member should be able to use omero.share:sid member_query = member.sf.getQueryService() try: rv = member.sf.getQueryService().find("Image", image.id.val, None) except omero.SecurityViolation: pass else: assert False, "Error: Member shouldn't access image in share!" rv = member_query.find("Image", image.id.val, {'omero.share': str(sid)}) # Not sure which group to set # 'omero.group':str(image.details.group.id.val) # or 'omero.group':str(member_groupId) assert image.id.val == rv.id.val member_tb = member.sf.createThumbnailStore() try: member_tb.setPixelsId(rdefs[0].pixels.id.val, {'omero.share': str(sid)}) finally: member_tb.close() # join share user_client = self.new_client(session=member_suuid) try: # Deactivation shouldn't be needed any more # as we pass {'omero.share': <sid>} # user_client.sf.getShareService().deactivate() user_query = user_client.sf.getQueryService() rv = user_query.find( "Image", image2.id.val, {'omero.group': str(image2.details.group.id.val)}) assert image2.id.val == rv.id.val finally: user_client.__del__()
def test8704(self): # Owner of share owner, owner_obj = self.new_client_and_user(perms="rw----") # Different group! member, member_obj = self.new_client_and_user(perms="rw----") member_suuid = \ member.sf.getAdminService().getEventContext().sessionUuid owner_suuid = \ owner.sf.getAdminService().getEventContext().sessionUuid member.sf.getAdminService().getEventContext().groupId owner_groupId = owner.sf.getAdminService().getEventContext().groupId # just in case assert member_suuid != owner_suuid # just in case assert owner_obj.id.val != member_obj.id.val # create image by owner owner.sf.getUpdateService() image_id = createTestImage(owner.sf) p = omero.sys.Parameters() p.map = {"id": rlong(long(image_id))} sql = "select im from Image im join fetch im.details.owner " \ "join fetch im.details.group where im.id=:id order by im.name" image = owner.sf.getQueryService().findAllByQuery( sql, p, {'omero.group': str(owner_groupId)})[0] rdefs = owner.sf.getQueryService().findAll("RenderingDef", None) # create image by member image2 = self.make_image(client=member) sid = self.create_share( objects=[image], experimenters=[member_obj], client=owner) self.assert_access(owner, sid) self.assert_access(member, sid) member_share = member.sf.getShareService() member_share.getShare(sid) # Activation shouldn't be needed any more as # we pass {'omero.share': <sid>} # member_share.activate(long(sid)) # And the member should be able to use omero.share:sid member_query = member.sf.getQueryService() try: rv = member.sf.getQueryService().find("Image", image.id.val, None) except omero.SecurityViolation: pass else: assert False, "Error: Member shouldn't access image in share!" rv = member_query.find("Image", image.id.val, {'omero.share': str(sid)}) # Not sure which group to set # 'omero.group':str(image.details.group.id.val) # or 'omero.group':str(member_groupId) assert image.id.val == rv.id.val member_tb = member.sf.createThumbnailStore() member_tb.setPixelsId(rdefs[0].pixels.id.val, {'omero.share': str(sid)}) # join share user_client = self.new_client(session=member_suuid) try: # Deactivation shouldn't be needed any more # as we pass {'omero.share': <sid>} # user_client.sf.getShareService().deactivate() user_query = user_client.sf.getQueryService() rv = user_query.find("Image", image2.id.val, {'omero.group': str(image2.details.group.id.val)}) assert image2.id.val == rv.id.val finally: user_client.__del__()