Exemplo n.º 1
0
    def testReadOnly(self, gatewaywrapper):
        """
        In a read-only group, user should NOT be able to Edit or Annotate
        """
        dbhelpers.USERS['read_only_owner'] = dbhelpers.UserEntry(
            'r-_owner',
            'ome',
            firstname='chmod',
            lastname='test',
            groupname="ReadOnly_chmod_test",
            groupperms=READONLY)
        dbhelpers.USERS['read_only_user'] = dbhelpers.UserEntry(
            'r-_user',
            'ome',
            firstname='chmod2',
            lastname='test',
            groupname="ReadOnly_chmod_test",
            groupperms=READONLY)

        dbhelpers.bootstrap(onlyUsers=True)

        # Login as owner...
        gatewaywrapper.doLogin(dbhelpers.USERS['read_only_owner'])
        p = omero.model.ProjectI()
        p.setName(rstring("test_create_read_only_project"))
        p = gatewaywrapper.gateway.getUpdateService().saveAndReturnObject(p)

        # Login as user...
        gatewaywrapper.doLogin(dbhelpers.USERS['read_only_user'])
        project = gatewaywrapper.gateway.getObject("Project", p.id.val)
        self.assertCanEdit(project, False)
        self.assertCanAnnotate(project, False)
Exemplo n.º 2
0
 def setUp(self):
     """ Create a group with User """
     dbhelpers.USERS['history_test_user'] = dbhelpers.UserEntry(
         'history_test_user', 'ome',
         firstname='history', lastname='user',
         groupname="rw_history", groupperms=READWRITE)
     dbhelpers.bootstrap(onlyUsers=True)
Exemplo n.º 3
0
 def setUp(self):
     """ Create a group with owner & member"""
     dbhelpers.USERS['group_owner'] = dbhelpers.UserEntry(
         'group_owner',
         'ome',
         firstname='Group',
         lastname='Owner',
         groupname="ownership_test",
         groupperms='rwr---',
         groupowner=True)
     dbhelpers.USERS['group_member'] = dbhelpers.UserEntry(
         'group_member',
         'ome',
         firstname='Group',
         lastname='Member',
         groupname="ownership_test",
         groupperms='rwr---',
         groupowner=False)
     dbhelpers.bootstrap(onlyUsers=True)
Exemplo n.º 4
0
 def ReadWrite(key, admin=False, groupowner=False):
     dbhelpers.USERS['read_write_%s' % key] = dbhelpers.UserEntry(
         "rw_%s" % key,
         'ome',
         firstname='chmod',
         lastname='test',
         groupname="ReadWrite_chmod_test",
         groupperms=READWRITE,
         groupowner=groupowner,
         admin=admin)
Exemplo n.º 5
0
 def ReadAnn(key, admin=False, groupowner=False):
     dbhelpers.USERS['read_ann_%s' % key] = dbhelpers.UserEntry(
         "ra_%s" % key,
         'ome',
         firstname='chmod',
         lastname='test',
         groupname="ReadAnn_chmod_test",
         groupperms=READANN,
         groupowner=groupowner,
         admin=admin)
Exemplo n.º 6
0
 def ReadOnly(key, admin=False, groupowner=False):
     dbhelpers.USERS['read_only_%s' % key] = dbhelpers.UserEntry(
         "r-_%s" % key,
         'ome',
         firstname='chmod',
         lastname='test',
         groupname="ReadOnly_chmod_test",
         groupperms=READONLY,
         groupowner=groupowner,
         admin=admin)
Exemplo n.º 7
0
    def testAuthorCanEdit(self, gatewaywrapper, author_testimg_generated):
        """
        Tests whether the default Users created by default setUp() canEdit
        their Images etc.
        """

        image = author_testimg_generated
        imageId = image.id
        gatewaywrapper.gateway.getAdminService().getEventContext()

        group = gatewaywrapper.gateway.getGroupFromContext()
        image_gid = image.getDetails().getGroup().id
        image.getDetails().getGroup().name

        # Author should be able to Edit and Annotate their own data
        assert image.canEdit(), "Author can edit their own image"
        assert image.canAnnotate(), "Author can annotate their own image"

        # Login as Admin
        gatewaywrapper.loginAsAdmin()
        gatewaywrapper.gateway.SERVICE_OPTS.setOmeroGroup('-1')
        i = gatewaywrapper.gateway.getObject("Image", imageId)
        assert i.canEdit(), "Admin can edit Author's image"
        assert i.canAnnotate(), "Admin can annotate Author's image"

        # Login as default "User"
        # NB: seems this user is not in same group as Author's image.
        gatewaywrapper.loginAsUser()
        gatewaywrapper.gateway.SERVICE_OPTS.setOmeroGroup('-1')
        i = gatewaywrapper.gateway.getObject("Image", imageId)
        assert None == i, \
            "User cannot access Author's image in Read-only group"

        # Create new user in the same group
        gatewaywrapper.loginAsAdmin()
        # groupname = image_gname
        chmod_test_user = dbhelpers.UserEntry('chmod_test_user6',
                                              'foobar',
                                              firstname='User',
                                              lastname='Chmod')
        chmod_test_user.create(gatewaywrapper.gateway, dbhelpers.ROOT.passwd)
        admin = gatewaywrapper.gateway.getAdminService()
        user = admin.lookupExperimenter('chmod_test_user6')
        group = admin.getGroup(image_gid)
        admin.addGroups(user, [group])

        gatewaywrapper.doLogin(chmod_test_user)
        user = gatewaywrapper.gateway.getUser()
        # switch into group
        assert gatewaywrapper.gateway.setGroupForSession(image_gid)
        assert image_gid == gatewaywrapper.gateway.getEventContext().groupId,\
            "Confirm in same group as image"
        i = gatewaywrapper.gateway.getObject("Image", imageId)
        assert i is not None, \
            "User cannot access Author's image in Read-only group: %s" % i
Exemplo n.º 8
0
 def setUp(self):
     """ Create a group with Admin & Owner members"""
     # readonly with an Admin user
     dbhelpers.USERS['chmod_group_admin'] = dbhelpers.UserEntry(
         'r-_chmod_admin',
         'ome',
         firstname='chmod',
         lastname='admin',
         groupname="ReadOnly_chmod_group",
         groupperms=READONLY,
         admin=True)
     dbhelpers.USERS['chmod_group_owner'] = dbhelpers.UserEntry(
         'r-_chmod_owner',
         'ome',
         firstname='chmod',
         lastname='owner',
         groupname="ReadOnly_chmod_group",
         groupperms=READONLY,
         groupowner=True)
     dbhelpers.bootstrap(onlyUsers=True)
Exemplo n.º 9
0
 def setUp(self):
     """ Create a group with User """
     dbhelpers.USERS['history_test_user'] = dbhelpers.UserEntry(
         'history_test_user',
         'ome',
         firstname='history',
         lastname='user',
         groupname="rw_history",
         groupperms=READWRITE)
     # Calling the superclass setUp processes the dbhelpers.USERS etc to populate DB
     super(HistoryTest, self).setUp()
Exemplo n.º 10
0
    def testAuthorCanEdit(self):
        """
        Tests whether the default Users created by default setUp() canEdit their Images etc.
        """

        image = self.image
        imageId = image.id
        ctx = self.gateway.getAdminService().getEventContext()

        group = self.gateway.getGroupFromContext()
        image_gid = image.getDetails().getGroup().id
        image_gname = image.getDetails().getGroup().name

        # Author should be able to Edit and Annotate their own data
        self.assertTrue(image.canEdit(), "Author can edit their own image")
        self.assertTrue(image.canAnnotate(),
                        "Author can annotate their own image")

        # Login as Admin
        self.loginAsAdmin()
        self.gateway.SERVICE_OPTS.setOmeroGroup('-1')
        i = self.gateway.getObject("Image", imageId)
        self.assertTrue(i.canEdit(), "Admin can edit Author's image")
        self.assertTrue(i.canAnnotate(), "Admin can annotate Author's image")

        # Login as default "User" - NB: seems this user is not in same group as Author's image.
        self.loginAsUser()
        self.gateway.SERVICE_OPTS.setOmeroGroup('-1')
        i = self.gateway.getObject("Image", imageId)
        self.assertEqual(
            None, i, "User cannot access Author's image in Read-only group")

        # Create new user in the same group
        self.loginAsAdmin()
        chmod_test_user = dbhelpers.UserEntry(
            'chmod_test_user6', 'foobar', firstname='User',
            lastname='Chmod')  #groupname = image_gname
        chmod_test_user.create(self.gateway, dbhelpers.ROOT.passwd)
        admin = self.gateway.getAdminService()
        user = admin.lookupExperimenter('chmod_test_user6')
        group = admin.getGroup(image_gid)
        admin.addGroups(user, [group])

        self.doLogin(chmod_test_user)
        user = self.gateway.getUser()
        self.assertTrue(
            self.gateway.setGroupForSession(image_gid))  # switch into group
        self.assertEqual(image_gid,
                         self.gateway.getEventContext().groupId,
                         "Confirm in same group as image")
        i = self.gateway.getObject("Image", imageId)
        self.assertNotEqual(None, i, \
                "User cannot access Author's image in Read-only group: %s" % i)
Exemplo n.º 11
0
    def setUp(self):
        """ Here we're creating 3 groups, each with 2 users with data belonging to the first user in each"""

        # read-only users & data
        dbhelpers.USERS['read_only_owner'] = dbhelpers.UserEntry(
            'r-_owner',
            'ome',
            firstname='chmod',
            lastname='test',
            groupname="ReadOnly_chmod_test",
            groupperms=READONLY)
        dbhelpers.USERS['read_only_user'] = dbhelpers.UserEntry(
            'r-_user',
            'ome',
            firstname='chmod2',
            lastname='test',
            groupname="ReadOnly_chmod_test",
            groupperms=READONLY)

        # Calling the superclass setUp processes the dbhelpers.USERS and dbhelpers.PROJECTS etc to populate DB
        super(ManualCreateEditTest, self).setUp()
Exemplo n.º 12
0
 def setUp(self):
     """ Create a group with Admin & Owner members"""
     # readonly with an Admin user
     dbhelpers.USERS['chmod_group_admin'] = dbhelpers.UserEntry(
         'r-_chmod_admin',
         'ome',
         firstname='chmod',
         lastname='admin',
         groupname="ReadOnly_chmod_group",
         groupperms=READONLY,
         admin=True)
     dbhelpers.USERS['chmod_group_owner'] = dbhelpers.UserEntry(
         'r-_chmod_owner',
         'ome',
         firstname='chmod',
         lastname='owner',
         groupname="ReadOnly_chmod_group",
         groupperms=READONLY,
         groupowner=True)
     # Calling the superclass setUp processes the dbhelpers.USERS etc to populate DB
     super(ChmodGroupTest, self).setUp()
Exemplo n.º 13
0
"""
   Library for gateway tests

   Copyright 2009 Glencoe Software, Inc. All rights reserved.
   Use is subject to license terms supplied in LICENSE.txt

"""

import omero
from omero.rtypes import rstring

from omero.gateway.scripts import dbhelpers

dbhelpers.USERS = {
    'user':
    dbhelpers.UserEntry('weblitz_test_user', 'foobar', 'User', 'Weblitz'),
    'author':
    dbhelpers.UserEntry('weblitz_test_author', 'foobar', 'Author', 'Weblitz'),
}

dbhelpers.PROJECTS = {
    'testpr1': dbhelpers.ProjectEntry('weblitz_test_priv_project', 'author'),
    'testpr2': dbhelpers.ProjectEntry('weblitz_test_priv_project2', 'author'),
}

dbhelpers.DATASETS = {
    'testds1': dbhelpers.DatasetEntry('weblitz_test_priv_dataset', 'testpr1'),
    'testds2': dbhelpers.DatasetEntry('weblitz_test_priv_dataset2', 'testpr1'),
    'testds3': dbhelpers.DatasetEntry('weblitz_test_priv_dataset3', 'testpr2'),
}