[Mailman-Users] Re: Config for moderator to edit posts in admindb

Jon Carnes jonc at haht.com
Mon Feb 25 23:44:51 CET 2002


Either that or do it the way that I do - which is edit the source file in
~mailman/data./...

Jon Carnes
----- Original Message -----
From: "Kirez Korgan" <kirez at cornell.edu>
To: "Jon Carnes" <jonc at haht.com>; <Mailman-Users at python.org>
Sent: Monday, February 25, 2002 4:30 PM
Subject: [Mailman-Users] Re: Config for moderator to edit posts in admindb


> This should have been incorporated into v2.0.8... unless there's some
danger
> or problem with it (so I'm concerned there may be).
>
> I'm not intense enough to manage my lists on forked code, and I want to be
> forward-compatible with coming versions of Mailman, so... should I take my
> question to mailman-developers?
>
> Kirez
>
>
> ----- Original Message -----
> From: "Jon Carnes" <jonc at haht.com>
> To: "Kirez Korgan" <kirez at cornell.edu>; <Mailman-Users at python.org>
> Sent: Monday, February 25, 2002 2:24 PM
> Subject: Re: [Mailman-Users] Config for moderator to edit posts in admindb
>
>
> > Google search turned up:
> >
> >
>
http://mail.python.org/pipermail/mailman-developers/2001-October/009686.html
> >
> > This was written for Mailman v2.0.6
> > ===
> > *** Mailman/Cgi/admindb.py.orig Wed Oct 10 13:31:46 2001
> > --- Mailman/Cgi/admindb.py      Wed Oct 10 18:30:25 2001
> > ***************
> > *** 270,275 ****
> > --- 270,277 ----
> >               continue
> >           # get the action comment and reasons if present
> >           commentkey = 'comment-%d' % request_id
> > +         headerskey = 'headers-%d' % request_id
> > +         contentskey = 'fulltext-%d' % request_id
> >           preservekey = 'preserve-%d' % request_id
> >           forwardkey = 'forward-%d' % request_id
> >           forwardaddrkey = 'forward-addr-%d' % request_id
> > ***************
> > *** 278,285 ****
> > --- 280,293 ----
> >           preserve = 0
> >           forward = 0
> >           forwardaddr = ''
> > +         headers = ''
> > +         contents = ''
> >           if cgidata.has_key(commentkey):
> >               comment = cgidata[commentkey].value
> > +         if cgidata.has_key(headerskey):
> > +             headers = cgidata[headerskey].value
> > +         if cgidata.has_key(contentskey):
> > +             contents = cgidata[contentskey].value
> >           if cgidata.has_key(preservekey):
> >               preserve = cgidata[preservekey].value
> >           if cgidata.has_key(forwardkey):
> > ***************
> > *** 290,296 ****
> >           # handle the request id
> >           try:
> >               mlist.HandleRequest(request_id, v, comment,
> > !                                 preserve, forward, forwardaddr)
> >           except (KeyError, Errors.LostHeldMessage):
> >               # that's okay, it just means someone else has already
> updated
> > the
> >               # database, so just ignore this id
> > --- 298,304 ----
> >           # handle the request id
> >           try:
> >               mlist.HandleRequest(request_id, v, comment,
> > !                                 preserve, forward, forwardaddr,
headers,
> > contents)
> >           except (KeyError, Errors.LostHeldMessage):
> >               # that's okay, it just means someone else has already
> updated
> > the
> >               # database, so just ignore this id
> > *** Mailman/ListAdmin.py.orig   Wed Oct 10 13:31:46 2001
> > --- Mailman/ListAdmin.py        Wed Oct 10 18:40:27 2001
> > ***************
> > *** 122,133 ****
> >           return type
> >
> >       def HandleRequest(self, id, value, comment=None, preserve=None,
> > !                       forward=None, addr=None):
> >           self.__opendb()
> >           rtype, data = self.__db[id]
> >           if rtype == HELDMSG:
> >               status = self.__handlepost(data, value, comment, preserve,
> > !                                        forward, addr)
> >           else:
> >               assert rtype == SUBSCRIPTION
> >               status = self.__handlesubscription(data, value, comment)
> > --- 122,133 ----
> >           return type
> >
> >       def HandleRequest(self, id, value, comment=None, preserve=None,
> > !                       forward=None, addr=None, headers=None,
> > contents=None):
> >           self.__opendb()
> >           rtype, data = self.__db[id]
> >           if rtype == HELDMSG:
> >               status = self.__handlepost(data, value, comment, preserve,
> > !                                        forward, addr, headers,
contents)
> >           else:
> >               assert rtype == SUBSCRIPTION
> >               status = self.__handlesubscription(data, value, comment)
> > ***************
> > *** 172,178 ****
> >           data = time.time(), sender, msgsubject, reason, filename,
> msgdata
> >           self.__db[id] = (HELDMSG, data)
> >
> > !     def __handlepost(self, record, value, comment, preserve, forward,
> > addr):
> >           # For backwards compatibility with pre 2.0beta3
> >           if len(record) == 5:
> >               ptime, sender, subject, reason, filename = record
> > --- 172,178 ----
> >           data = time.time(), sender, msgsubject, reason, filename,
> msgdata
> >           self.__db[id] = (HELDMSG, data)
> >
> > !     def __handlepost(self, record, value, comment, preserve, forward,
> > addr, headers, contents):
> >           # For backwards compatibility with pre 2.0beta3
> >           if len(record) == 5:
> >               ptime, sender, subject, reason, filename = record
> > ***************
> > *** 181,186 ****
> > --- 181,202 ----
> >               # New format of record
> >               ptime, sender, subject, reason, filename, msgdata = record
> >           path = os.path.join(mm_cfg.DATA_DIR, filename)
> > +         # Handle editing
> > +         if len(headers)+len(contents):
> > +            fp = open(path)
> > +            unixfrom = fp.readline()
> > +            rest = fp.read()
> > +            # Parse headers and body
> > +            parts = string.split(rest,'\n\n')
> > +            if len(headers) == 0:
> > +                headers = parts[0]
> > +            if len(contents) == 0:
> > +                contents = parts[1]
> > +            fp.close
> > +            # Now write the changed result
> > +            fp = open(path,'w')
> > +            fp.write(unixfrom + headers + '\n\n' + contents)
> > +            fp.close
> >           # Handle message preservation
> >           if preserve:
> >               parts = string.split(os.path.split(path)[1], '-')
> >
> >
> >
> > ===
> > ----- Original Message -----
> > From: "Kirez Korgan" <kirez at cornell.edu>
> > To: "Jon Carnes" <jonc at haht.com>; <Mailman-Users at python.org>
> > Sent: Monday, February 25, 2002 2:21 PM
> > Subject: Re: [Mailman-Users] Config for moderator to edit posts in
admindb
> >
> >
> > > How do I find and install, or re-create, this patch that someone else
> made
> > > to allow the admin to edit the copy of the message and then replace
the
> > > original message with the copy?
> > >
> > > Kirez
> > >
> > >
> > > ----- Original Message -----
> > > From: "Jon Carnes" <jonc at haht.com>
> > > To: "Kirez Korgan" <kirez at cornell.edu>; <Mailman-Users at python.org>
> > > Sent: Monday, February 25, 2002 1:02 PM
> > > Subject: Re: [Mailman-Users] Config for moderator to edit posts in
> admindb
> > >
> > >
> > > > Yes.  Mailman is open source software and is very easy to modify.
> > Someone
> > > > has already made a patch that does exactly that (allows the admin to
> > > > view/edit the copy of the message, and then replaces the original
> > message
> > > > with the copy).
> > > >
> > > > The original message is in ~mailman/held/..
> > > > Each message is stored in a file of the form:
heldmsg-<list_name>-xxxx
> > > >
> > > > If you don't want to hack Mailman, you can let your admins edit the
> > files
> > > > directly.  You can link this directory to a common access point and
> give
> > > > your admins rights to it (or you can mount it via samba...).  Then
> your
> > > > admins can easily edit the messages directly.
> > > >
> > > > Jon Carnes
> > > > ----- Original Message -----
> > > > From: "Kirez Korgan" <kirez at cornell.edu>
> > > > To: <Mailman-Users at python.org>
> > > > Sent: Monday, February 25, 2002 1:34 PM
> > > > Subject: [Mailman-Users] Config for moderator to edit posts in
admindb
> > > >
> > > >
> > > > > It seems that Mailman makes a copy of a message appear in the
> admindb,
> > > for
> > > > > moderators to process (accept or reject).
> > > > >
> > > > > My moderators want to EDIT the message, however.
> > > > >
> > > > > Is it possible to config Mailman so that they can edit the message
> > > through
> > > > > the admindb / viewer?
> > > > >
> > > > > cheers,
> > > > > Kirez
> > > > >
> > > > >
> > > > > ------------------------------------------------------
> > > > > Mailman-Users maillist  -  Mailman-Users at python.org
> > > > > http://mail.python.org/mailman/listinfo/mailman-users
> > > >
> >
> >
> > ------------------------------------------------------
> > Mailman-Users maillist  -  Mailman-Users at python.org
> > http://mail.python.org/mailman/listinfo/mailman-users
>
>
> ------------------------------------------------------
> Mailman-Users maillist  -  Mailman-Users at python.org
> http://mail.python.org/mailman/listinfo/mailman-users





More information about the Mailman-Users mailing list