def _updateGroup(request, conn, gid): # update group experimenters = list(conn.getObjects("Experimenter")) group = conn.getObject("ExperimenterGroup", gid) name_check = conn.checkGroupName(request.REQUEST.get('name'), group.name) form = GroupForm(initial={'experimenters': experimenters}, data=request.POST.copy(), name_check=name_check) if form.is_valid(): name = form.cleaned_data['name'] description = form.cleaned_data['description'] owners = form.cleaned_data['owners'] permissions = form.cleaned_data['permissions'] members = form.cleaned_data['members'] listOfOwners = getSelectedExperimenters(conn, owners) if permissions != int(permissions): perm = setActualPermissions(permissions) else: perm = None conn.updateGroup(group, name, perm, listOfOwners, description) new_members = getSelectedExperimenters(conn, mergeLists(members, owners)) conn.setMembersOfGroup(group, new_members) else: raise Exception(form.errors.as_text())
def test_badUpdateGroup(self): conn = self.rootconn uuid = conn._sessionUuid # create group params = { "name":"webadmin_test_group_private %s" % uuid, "description":"test group", "owners": [0L], "permissions":0 } request = fakeRequest(method="post", params=params) gid = _createGroup(request, conn) # create new users params2 = { "omename":"webadmin_test_user1 %s" % uuid, "first_name":uuid, "middle_name": uuid, "last_name":uuid, "email":"*****@*****.**" % uuid, "institution":"Laboratory", "active":True, "default_group":gid, "other_groups":[gid], "password":"******", "confirmation":"123" } request = fakeRequest(method="post", params=params2) eid = _createExperimenter(request, conn) # check if group updated group = conn.getObject("ExperimenterGroup", gid) ownerIds = [e.id for e in group.getOwners()] memberIds = [e.id for e in group.getMembers()] self.assertEquals(params['owners'], sorted(ownerIds)) self.assertEquals(sorted(mergeLists(params['owners'], [eid])), sorted(memberIds)) # remove user from the group params["members"] = [0] request = fakeRequest(method="post", params=params) try: _updateGroup(request, conn, gid) self.fail("Can't remove user from the group members if this it's hs default group") except omero.ValidationException: pass # check if group updated group = conn.getObject("ExperimenterGroup", gid) memberIds = [e.id for e in group.getMembers()] if eid not in memberIds: self.fail("Can't remove user from the group members if this it's hs default group")
def test_badUpdateGroup(self): conn = self.rootconn uuid = conn._sessionUuid # create group params = { "name": "webadmin_test_group_private %s" % uuid, "description": "test group", "owners": [0L], "permissions": 0 } request = fakeRequest(method="post", params=params) gid = _createGroup(request, conn) # create new users params2 = { "omename": "webadmin_test_user1 %s" % uuid, "first_name": uuid, "middle_name": uuid, "last_name": uuid, "email": "*****@*****.**" % uuid, "institution": "Laboratory", "active": True, "default_group": gid, "other_groups": [gid], "password": "******", "confirmation": "123" } request = fakeRequest(method="post", params=params2) eid = _createExperimenter(request, conn) # check if group updated group = conn.getObject("ExperimenterGroup", gid) ownerIds = [e.id for e in group.getOwners()] memberIds = [e.id for e in group.getMembers()] self.assertEquals(params['owners'], sorted(ownerIds)) self.assertEquals(sorted(mergeLists(params['owners'], [eid])), sorted(memberIds)) # remove user from the group params["members"] = [0] request = fakeRequest(method="post", params=params) _updateGroup(request, conn, gid) # check if group updated group = conn.getObject("ExperimenterGroup", gid) memberIds = [e.id for e in group.getMembers()] if eid not in memberIds: self.fail( "Can't remove user from the group members if this is hs default group" )
def _createGroup(request, conn): #create group experimenters = list(conn.getObjects("Experimenter")) name_check = conn.checkGroupName(request.REQUEST.get('name')) form = GroupForm(initial={'experimenters':experimenters}, data=request.POST.copy(), name_check=name_check) if form.is_valid(): name = form.cleaned_data['name'] description = form.cleaned_data['description'] owners = form.cleaned_data['owners'] members = form.cleaned_data['members'] permissions = form.cleaned_data['permissions'] perm = setActualPermissions(permissions) listOfOwners = getSelectedExperimenters(conn, owners) gid = conn.createGroup(name, perm, listOfOwners, description) new_members = getSelectedExperimenters(conn, mergeLists(members,owners)) group = conn.getObject("ExperimenterGroup", gid) conn.setMembersOfGroup(group, new_members) return gid else: raise Exception(form.errors.as_text())
def test_updateGroups(self): conn = self.rootconn uuid = conn._sessionUuid # default group - helper params = { "name":"webadmin_test_default %s" % uuid, "description":"test group default", "owners": [0L], "permissions":0 } request = fakeRequest(method="post", params=params) default_gid = _createGroup(request, conn) # create new user params = { "omename":"webadmin_test_owner %s" % uuid, "first_name":uuid, "middle_name": uuid, "last_name":uuid, "email":"*****@*****.**" % uuid, "institution":"Laboratory", "active":True, "default_group":default_gid, "other_groups":[default_gid], "password":"******", "confirmation":"123" } request = fakeRequest(method="post", params=params) eid = _createExperimenter(request, conn) # create new user2 params = { "omename":"webadmin_test_member %s" % uuid, "first_name":uuid, "middle_name": uuid, "last_name":uuid, "email":"*****@*****.**" % uuid, "institution":"Laboratory", "active":True, "default_group":default_gid, "other_groups":[default_gid], "password":"******", "confirmation":"123" } request = fakeRequest(method="post", params=params) eid2 = _createExperimenter(request, conn) # create private group params = { "name":"webadmin_test_group_private %s" % uuid, "description":"test group", "permissions":0 } request = fakeRequest(method="post", params=params) gid = _createGroup(request, conn) # check if group created group = conn.getObject("ExperimenterGroup", gid) permissions = getActualPermissions(group) self.assertEquals(params['name'], group.name) self.assertEquals(params['description'], group.description) self.assertEquals(params['permissions'], permissions) # upgrade group to collaborative # read-only group and add new owner and members params = { "name":"webadmin_test_group_read-only %s" % uuid, "description":"test group changed", "owners": [eid], "members": [eid2], "permissions":1 } request = fakeRequest(method="post", params=params) _updateGroup(request, conn, gid) # check if group updated group = conn.getObject("ExperimenterGroup", gid) ownerIds = [e.id for e in group.getOwners()] memberIds = [e.id for e in group.getMembers()] permissions = getActualPermissions(group) self.assertEquals(params['name'], group.name) self.assertEquals(params['description'], group.description) self.assertEquals(params['owners'], sorted(ownerIds)) self.assertEquals(sorted(mergeLists(params['owners'], params['members'])), sorted(memberIds)) self.assertEquals(params['permissions'], permissions) # upgrade group to collaborative # read-ann group and change owners and members params = { "name":"webadmin_test_group_read-only %s" % uuid, "description":"test group changed", "owners": [eid2], "members": [0,eid], "permissions":1 } request = fakeRequest(method="post", params=params) _updateGroup(request, conn, gid) # check if group updated group = conn.getObject("ExperimenterGroup", gid) ownerIds = [e.id for e in group.getOwners()] memberIds = [e.id for e in group.getMembers()] permissions = getActualPermissions(group) self.assertEquals(params['name'], group.name) self.assertEquals(params['description'], group.description) self.assertEquals(params['owners'], sorted(ownerIds)) self.assertEquals(sorted(mergeLists(params['owners'], params['members'])), sorted(memberIds)) self.assertEquals(params['permissions'], permissions)