def testGroupOwners(self): # this is the test of creating private group and updating it # including changes in #1434 uuid = self.uuid() admin = self.root.sf.getAdminService() # create group1 new_gr1 = ExperimenterGroupI() new_gr1.name = rstring("group1_%s" % uuid) new_gr1.ldap = rbool(False) p = PermissionsI() p.setUserRead(True) p.setUserWrite(True) p.setGroupRead(True) p.setGroupAnnotate(False) p.setGroupWrite(False) p.setWorldRead(False) p.setWorldAnnotate(False) p.setWorldWrite(False) new_gr1.details.permissions = p g1_id = admin.createGroup(new_gr1) gr1 = admin.getGroup(g1_id) # create user1 new_exp1 = ExperimenterI() new_exp1.omeName = rstring("user1_%s" % uuid) new_exp1.firstName = rstring("New") new_exp1.lastName = rstring("Test") new_exp1.ldap = rbool(False) new_exp1.email = rstring("*****@*****.**") uuid = self.uuid() uuidGroup = ExperimenterGroupI() uuidGroup.name = rstring(uuid) uuidGroup.ldap = rbool(False) uuidGroupId = admin.createGroup(uuidGroup) uuidGroup = ExperimenterGroupI(uuidGroupId, False) listOfGroups = list() listOfGroups.append(admin.lookupGroup("user")) eid1 = admin.createExperimenterWithPassword( new_exp1, rstring("ome"), uuidGroup, listOfGroups) exp1 = admin.getExperimenter(eid1) # set owner of the group (user is not a member of) admin.addGroupOwners(gr1, [exp1]) # chech if is the leader leaderOfGroups = admin.getLeaderOfGroupIds(exp1) assert gr1.id.val in leaderOfGroups # remove group owner admin.removeGroupOwners(gr1, [exp1]) # chech if no longer is the leader leaderOfGroups = admin.getLeaderOfGroupIds(exp1) assert gr1.id.val not in leaderOfGroups """
def testGroupOwners(self): # this is the test of creating private group and updating it # including changes in #1434 uuid = self.uuid() admin = self.root.sf.getAdminService() # create group1 new_gr1 = ExperimenterGroupI() new_gr1.name = rstring("group1_%s" % uuid) new_gr1.ldap = rbool(False) p = PermissionsI() p.setUserRead(True) p.setUserWrite(True) p.setGroupRead(True) p.setGroupAnnotate(False) p.setGroupWrite(False) p.setWorldRead(False) p.setWorldAnnotate(False) p.setWorldWrite(False) new_gr1.details.permissions = p g1_id = admin.createGroup(new_gr1) gr1 = admin.getGroup(g1_id) # create user1 new_exp1 = ExperimenterI() new_exp1.omeName = rstring("user1_%s" % uuid) new_exp1.firstName = rstring("New") new_exp1.lastName = rstring("Test") new_exp1.ldap = rbool(False) new_exp1.email = rstring("*****@*****.**") uuid = self.uuid() uuidGroup = ExperimenterGroupI() uuidGroup.name = rstring(uuid) uuidGroup.ldap = rbool(False) uuidGroupId = admin.createGroup(uuidGroup) uuidGroup = ExperimenterGroupI(uuidGroupId, False) listOfGroups = list() listOfGroups.append(admin.lookupGroup("user")) eid1 = admin.createExperimenterWithPassword(new_exp1, rstring("ome"), uuidGroup, listOfGroups) exp1 = admin.getExperimenter(eid1) # set owner of the group (user is not a member of) admin.addGroupOwners(gr1, [exp1]) # chech if is the leader leaderOfGroups = admin.getLeaderOfGroupIds(exp1) assert gr1.id.val in leaderOfGroups # remove group owner admin.removeGroupOwners(gr1, [exp1]) # chech if no longer is the leader leaderOfGroups = admin.getLeaderOfGroupIds(exp1) assert gr1.id.val not in leaderOfGroups """
def test1109(self): uuid = self.uuid() admin = self.root.sf.getAdminService() # Replace defaultGroup with something new defaultGroup = self.new_group() # create data # group1 new_gr1 = ExperimenterGroupI() new_gr1.name = rstring("group1_%s" % uuid) new_gr1.ldap = rbool(False) gid = admin.createGroup(new_gr1) # new user1 new_exp = ExperimenterI() new_exp.omeName = rstring("user_%s" % uuid) new_exp.firstName = rstring("New") new_exp.lastName = rstring("Test") new_exp.ldap = rbool(False) new_exp.email = rstring("*****@*****.**") listOfGroups = list() # defaultGroup = admin.lookupGroup("default") Removed in 4.2 listOfGroups.append(admin.getGroup(gid)) listOfGroups.append(admin.lookupGroup("user")) eid = admin.createExperimenter(new_exp, defaultGroup, listOfGroups) # test exp = admin.getExperimenter(eid) # print "exp: ", exp.id.val, " his default group is: ", # admin.getDefaultGroup(exp.id.val).id.val gr1 = admin.getGroup(2) indefault = admin.containedExperimenters(gr1.id.val) # print "members of group %s %i" % (gr1.name.val, gr1.id.val) for m in indefault: if m.id.val == exp.id.val: assert m.copyGroupExperimenterMap()[0].parent.id.val == \ admin.getDefaultGroup(exp.id.val).id.val # print "exp: id=", m.id.val, "; GEM[0]: ", # type(m.copyGroupExperimenterMap()[0].parent), # m.copyGroupExperimenterMap()[0].parent.id.val gr2 = admin.getGroup(gid) members2 = admin.containedExperimenters(gr2.id.val) # print "members of group %s %i" % (gr2.name.val, gr2.id.val) for m in members2: if m.id.val == exp.id.val: copied_id = m.copyGroupExperimenterMap()[0].parent.id.val got_id = admin.getDefaultGroup(exp.id.val).id.val contained = admin.containedGroups(m.id.val) assert copied_id == got_id, \ """ %s != %s. Groups for experimenter %s = %s (graph) or %s (contained) """ % ( copied_id, got_id, exp.id.val, [x.parent.id.val for x in m.copyGroupExperimenterMap()], [y.id.val for y in contained])
def add(self, args): email = args.email login = args.username first = args.firstname middle = args.middlename last = args.lastname inst = args.institution pasw = args.userpassword import omero from omero.rtypes import rbool, rstring from omero_model_ExperimenterI import ExperimenterI as Exp from omero_model_ExperimenterGroupI import ExperimenterGroupI as Grp c = self.ctx.conn(args) e = Exp() e.omeName = rstring(login) e.firstName = rstring(first) e.lastName = rstring(last) e.middleName = rstring(middle) e.email = rstring(email) e.institution = rstring(inst) e.ldap = rbool(False) # Fail-fast if no-password is passed and the server does not accept # empty passwords configService = c.getSession().getConfigService() password_required = configService.getConfigValue( "omero.security.password_required").lower() if args.no_password and password_required != 'false': self.ctx.die( 502, "Server does not allow user creation with empty" " passwords") # Check user existence admin = c.getSession().getAdminService() try: usr = admin.lookupExperimenter(login) if usr: if args.ignore_existing: self.ctx.out("User exists: %s (id=%s)" % (login, usr.id.val)) return else: self.ctx.die( 3, "User exists: %s (id=%s)" % (login, usr.id.val)) except omero.ApiUsageException: pass # Apparently no such user exists [gid, groups] = self.list_groups(admin, args, use_context=False) roles = admin.getSecurityRoles() groups.append(Grp(roles.userGroupId, False)) if args.admin: groups.append(Grp(roles.systemGroupId, False)) group = groups.pop(0) try: if args.no_password: id = admin.createExperimenter(e, group, groups) self.ctx.out("Added user %s (id=%s) without password" % (login, id)) else: if pasw is None: pasw = self._ask_for_password(" for your new user (%s)" % login, strict=True) id = admin.createExperimenterWithPassword( e, rstring(pasw), group, groups) self.ctx.out("Added user %s (id=%s) with password" % (login, id)) except omero.ValidationException as ve: # Possible, though unlikely after previous check if self.exc.is_constraint_violation(ve): self.ctx.die(66, "User already exists: %s" % login) else: self.ctx.die(67, "Unknown ValidationException: %s" % ve.message) except omero.SecurityViolation as se: self.ctx.die(68, "Security violation: %s" % se.message)
def add(self, args): email = args.email login = args.username first = args.firstname middle = args.middlename last = args.lastname inst = args.institution pasw = args.userpassword import omero from omero.rtypes import rbool, rstring from omero_model_ExperimenterI import ExperimenterI as Exp from omero_model_ExperimenterGroupI import ExperimenterGroupI as Grp c = self.ctx.conn(args) e = Exp() e.omeName = rstring(login) e.firstName = rstring(first) e.lastName = rstring(last) e.middleName = rstring(middle) e.email = rstring(email) e.institution = rstring(inst) e.ldap = rbool(False) # Fail-fast if no-password is passed and the server does not accept # empty passwords configService = c.getSession().getConfigService() password_required = configService.getConfigValue( "omero.security.password_required").lower() if args.no_password and password_required != 'false': self.ctx.die(502, "Server does not allow user creation with empty" " passwords") # Check user existence admin = c.getSession().getAdminService() try: usr = admin.lookupExperimenter(login) if usr: if args.ignore_existing: self.ctx.out("User exists: %s (id=%s)" % (login, usr.id.val)) return else: self.ctx.die(3, "User exists: %s (id=%s)" % (login, usr.id.val)) except omero.ApiUsageException: pass # Apparently no such user exists [gid, groups] = self.list_groups(admin, args, use_context=False) roles = admin.getSecurityRoles() groups.append(Grp(roles.userGroupId, False)) if args.admin: groups.append(Grp(roles.systemGroupId, False)) group = groups.pop(0) try: if args.no_password: id = admin.createExperimenter(e, group, groups) self.ctx.out("Added user %s (id=%s) without password" % (login, id)) else: if pasw is None: pasw = self._ask_for_password(" for your new user (%s)" % login, strict=True) id = admin.createExperimenterWithPassword(e, rstring(pasw), group, groups) self.ctx.out("Added user %s (id=%s) with password" % (login, id)) except omero.ValidationException, ve: # Possible, though unlikely after previous check if self.exc.is_constraint_violation(ve): self.ctx.die(66, "User already exists: %s" % login) else: self.ctx.die(67, "Unknown ValidationException: %s" % ve.message)