Ejemplo n.º 1
0
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())
Ejemplo n.º 2
0
 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")
Ejemplo n.º 3
0
    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"
            )
Ejemplo n.º 4
0
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())
Ejemplo n.º 5
0
 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)