def METHOD_NAME(self, req, args, client):
    # Retrieve group id
    gid = args.grp.lookup(client)
    if gid is None:
        self.ctx.die(196, "Failed to find group: %s" % args.grp.orig)
    # Retrieve group
    import omero
    try:
        group = client.sf.getAdminService().getGroup(gid)
    except omero.ApiUsageException:
        self.ctx.die(196, "Failed to find group: %s" % args.grp.orig)
    # Check session owner is member of the target group
    uid = self.ctx.get_event_context().userId
    admin = self.is_admin(client)
    ids = [x.child.id.val for x in group.copyGroupExperimenterMap()]
    # check if the user is an admin
    if uid not in ids and not admin:
        self.ctx.die(197, "Current user is not member of group: %s" %
                     group.id.val)
    # Set requests group
    if isinstance(req, omero.cmd.DoAll):
        for request in req.requests:
            if isinstance(request, omero.cmd.SkipHead):
                request.request.groupId = gid
            else:
                request.groupId = gid
    else:
        if isinstance(req, omero.cmd.SkipHead):
            req.request.groupId = gid
        else:
            req.groupId = gid
    super(ChgrpControl, self).METHOD_NAME(req, args, client)