def test_updateGroups(self): conn = self.rootconn uuid = conn._sessionUuid # private 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 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":gid, "other_groups":[gid], "password":"******", "confirmation":"123" } request = fakeRequest(method="post", params=params) eid = _createExperimenter(request, conn) # upgrade group to collaborative # read-only group and add new owner params = { "name":"webadmin_test_group_read-only %s" % uuid, "description":"test group changed", "owners": [0, eid], "permissions":1, "readonly":True } request = fakeRequest(method="post", params=params) _updateGroup(request, conn, gid) # check if updated controller = BaseGroup(conn, gid) perm = controller.getActualPermissions() self.assertEquals(params['name'], controller.group.name) self.assertEquals(params['description'], controller.group.description) self.assertEquals(sorted(params['owners']), sorted(controller.owners)) self.assertEquals(params['permissions'], perm) self.assertEquals(params['readonly'], controller.isReadOnly())
def _updateGroup(request, conn, gid): # update group controller = BaseGroup(conn, gid) name_check = conn.checkGroupName(request.REQUEST.get('name'), controller.group.name) form = GroupForm(initial={'experimenters':controller.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'] readonly = toBoolean(form.cleaned_data['readonly']) controller.updateGroup(name, owners, permissions, readonly, description) else: raise Exception(form.errors.as_text())
def test_createGroupsWithNonASCII(self): conn = self.rootconn uuid = conn._sessionUuid # private group params = { "name":u"русский_алфавит %s" % uuid, "description":u"Frühstück-Śniadanie. Tschüß-Cześć", "owners": [0L], "permissions":0 } request = fakeRequest(method="post", params=params) gid = _createGroup(request, conn) # check if group created controller = BaseGroup(conn, gid) perm = controller.getActualPermissions() self.assertEquals(params['name'], controller.group.name) self.assertEquals(params['description'], controller.group.description) self.assertEquals(sorted(params['owners']), sorted(controller.owners)) self.assertEquals(params['permissions'], perm) self.assertEquals(False, controller.isReadOnly())
def test_createGroups(self): conn = self.rootconn uuid = conn._sessionUuid # private 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) # check if group created controller = BaseGroup(conn, gid) perm = controller.getActualPermissions() self.assertEquals(params['name'], controller.group.name) self.assertEquals(params['description'], controller.group.description) self.assertEquals(sorted(params['owners']), sorted(controller.owners)) self.assertEquals(params['permissions'], perm) self.assertEquals(False, controller.isReadOnly()) # read-only group params = { "name":"webadmin_test_group_read-only %s" % uuid, "description":"test group", "owners": [0L], "permissions":1, "readonly":True } request = fakeRequest(method="post", params=params) gid = _createGroup(request, conn) # check if group created controller = BaseGroup(conn, gid) perm = controller.getActualPermissions() self.assertEquals(params['name'], controller.group.name) self.assertEquals(params['description'], controller.group.description) self.assertEquals(sorted(params['owners']), sorted(controller.owners)) self.assertEquals(params['permissions'], perm) self.assertEquals(params['readonly'], controller.isReadOnly())
def test_updateMembersOfGroup(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) ###################################### # 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 two new users params = { "omename":"webadmin_test_user1 %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) eid1 = _createExperimenter(request, conn) # create few new users params = { "omename":"webadmin_test_user2 %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) # make other users a member of the group # add them to group params = { 'available':[], 'members':[0,eid1,eid2] } request = fakeRequest(method="post", params=params) controller = BaseGroup(conn, gid) controller.containedExperimenters() form = ContainedExperimentersForm(initial={'members':controller.members, 'available':controller.available}) if not form.is_valid(): #available = form.cleaned_data['available'] available = request.POST.getlist('available') #members = form.cleaned_data['members'] members = request.POST.getlist('members') controller.setMembersOfGroup(available, members) # check if updated controller = BaseGroup(conn, gid) controller.containedExperimenters() self.assertEquals(sorted(params['members']), sorted([e.id for e in controller.members])) # remove them from the group params = { 'available':[eid1,eid2], 'members':[0] } request = fakeRequest(method="post", params=params) controller = BaseGroup(conn, gid) controller.containedExperimenters() form = ContainedExperimentersForm(initial={'members':controller.members, 'available':controller.available}) if not form.is_valid(): #available = form.cleaned_data['available'] available = request.POST.getlist('available') #members = form.cleaned_data['members'] members = request.POST.getlist('members') controller.setMembersOfGroup(available, members) # check if updated controller = BaseGroup(conn, gid) controller.containedExperimenters() self.assertEquals(sorted(params['members']), sorted([e.id for e in controller.members]))