[Mailman-Developers] edithtml bug...

Corbett J. Klempay cklempay@acm.jhu.edu
Wed, 19 Aug 1998 11:04:11 -0400 (EDT)


Geez...a patch and everything!

Yes, I have yet to try editing the HTML under b5, but I experienced this
same problem under b4, actually.  It would not accept any password...I
don't know if perhaps it was something related to the Linux whackness that
Ken unraveled the other week or not...but I'll be sure to try this one out
when I get a chance.

-------------------------------------------------------------------------------
Corbett J. Klempay			         Quote of the Week:
http://www2.acm.jhu.edu/~cklempay  "There are two things a real man likes - 
                                    danger and play. And he likes women
                                    because she is the most dangerous of 
                                    playthings."

PGP Fingerprint: 7DA2 DB6E 7F5E 8973 A8E7  347B 2429 7728 76C2 BEA1
-------------------------------------------------------------------------------

On Wed, 19 Aug 1998, The Dragon De Monsyne wrote:

> 
> 	I just stumbled upon a bug that prevents edithtml from working in
> 1.0b5. (It refuses to accept any password. )
> 
> Here's a patch:
> 
> *** /usr/src/mailman-1.0b5/Mailman/HTMLFormatter.py	Mon Jul 27 17:48:31 1998
> --- HTMLFormatter.py	Wed Aug 19 09:16:34 1998
> ***************
> *** 29,39 ****
>   
>   class HTMLFormatter:
>       def InitVars(self):
>           if self._internal_name:
> !             self._template_dir = os.path.join(mm_cfg.LIST_DATA_DIR,
> !                                               self._internal_name)
>           else:
> !             self._template_dir = mm_cfg.TEMPLATE_DIR
>   
>       def GetMailmanFooter(self):
>   	owners_html = Container()
> --- 29,47 ----
>   
>   class HTMLFormatter:
>       def InitVars(self):
> +         pass
> + #        if self._internal_name:
> + #            self._template_dir = os.path.join(mm_cfg.LIST_DATA_DIR,
> + #                                              self._internal_name)
> + #        else:
> + #            self._template_dir = mm_cfg.TEMPLATE_DIR
> + 
> +     def GetTemplateDir(self):
>           if self._internal_name:
> !             return os.path.join(mm_cfg.LIST_DATA_DIR, self._internal_name)
>           else:
> !             return mm_cfg.TEMPLATE_DIR
> ! 
>   
>       def GetMailmanFooter(self):
>   	owners_html = Container()
> ***************
> *** 58,65 ****
>   
>       def SnarfHTMLTemplate(self, file):
>           # XXX: hack, blech, yuk
> !         HTMLFormatter.InitVars(self)
> ! 	filename = os.path.join(self._template_dir, file)
>   	f = open(filename,'r')
>   	str = f.read()
>   	f.close()
> --- 66,74 ----
>   
>       def SnarfHTMLTemplate(self, file):
>           # XXX: hack, blech, yuk
> !         # HTMLFormatter.InitVars(self)
> !         # Yoiks! that was ugly! -ddm
> ! 	filename = os.path.join(self.GetTemplateDir(), file)
>   	f = open(filename,'r')
>   	str = f.read()
>   	f.close()
> ***************
> *** 332,342 ****
>   	    return item[-5:] == '.html'
>   
>   	files = filter(ExtensionFilter, os.listdir(mm_cfg.TEMPLATE_DIR))
> ! 	Utils.MakeDirTree(self._template_dir)
>   	for filename in files:
>   	    file1 = open(os.path.join(mm_cfg.TEMPLATE_DIR, filename), 'r')
>   	    text = file1.read()
>   	    file1.close()
> ! 	    file2 = open(os.path.join(self._template_dir, filename), 'w+')
>   	    file2.write(text)
>   	    file2.close()
> --- 341,351 ----
>   	    return item[-5:] == '.html'
>   
>   	files = filter(ExtensionFilter, os.listdir(mm_cfg.TEMPLATE_DIR))
> ! 	Utils.MakeDirTree(self.GetTemplateDir())
>   	for filename in files:
>   	    file1 = open(os.path.join(mm_cfg.TEMPLATE_DIR, filename), 'r')
>   	    text = file1.read()
>   	    file1.close()
> ! 	    file2 = open(os.path.join(self.GetTemplateDir(), filename), 'w+')
>   	    file2.write(text)
>   	    file2.close()
> *** /usr/src/mailman-1.0b5/Mailman/Cgi/edithtml.py	Mon Jul 27 17:48:31 1998
> --- Cgi/edithtml.py	Wed Aug 19 09:26:59 1998
> ***************
> *** 20,26 ****
>   
>   import sys
>   import os, cgi, string, types
> ! from Mailman import Utils, MailList
>   from Mailman import htmlformat
>   
>   
> --- 20,26 ----
>   
>   import sys
>   import os, cgi, string, types
> ! from Mailman import Utils, MailList, Errors
>   from Mailman import htmlformat
>   
>   
> ***************
> *** 38,44 ****
>                        ('subscribe.html',   'Subscribe results page'),
>                        ('options.html',     'User specific options page'),
>                        ('handle_opts.html', 'Changing user options results page'),
> !                      ('archives.html',    'Archives index page')
>                       )
>   
>   
> --- 38,44 ----
>                        ('subscribe.html',   'Subscribe results page'),
>                        ('options.html',     'User specific options page'),
>                        ('handle_opts.html', 'Changing user options results page'),
> !                      ('roster.html', 'List roster page')
>                       )
>   
>   
> ***************
> *** 56,62 ****
>   
>       try:
>           list = MailList.MailList(list_name, lock=0)
> !     except:
>           doc.AddItem(htmlformat.Header(2, "%s : No such list" % list_name))
>           print doc.Format()
>           sys.exit(0)
> --- 56,62 ----
>   
>       try:
>           list = MailList.MailList(list_name, lock=0)
> !     except Errors.MMUnknownListError:
>           doc.AddItem(htmlformat.Header(2, "%s : No such list" % list_name))
>           print doc.Format()
>           sys.exit(0)
> ***************
> *** 110,116 ****
>                   try:
>                       list.ConfirmAdminPassword(cgi_data['adminpw'].value)
>                       ChangeHTML(list, cgi_data, template_name, doc)
> !                 except:
>                       m = 'Error: Incorrect admin password.'
>                       doc.AddItem(htmlformat.Header(3, 
>                                                     htmlformat.Italic(
> --- 110,116 ----
>                   try:
>                       list.ConfirmAdminPassword(cgi_data['adminpw'].value)
>                       ChangeHTML(list, cgi_data, template_name, doc)
> !                 except Errors.MMBadPasswordError:
>                       m = 'Error: Incorrect admin password.'
>                       doc.AddItem(htmlformat.Header(3, 
>                                                     htmlformat.Italic(
> ***************
> *** 130,136 ****
>               pass
>   
>   
> - 
>   def InitDocument():
>       return htmlformat.HeadlessDocument()
>   
> --- 130,135 ----
> ***************
> *** 176,182 ****
>   	doc.AddItem('<hr>')
>   	return
>       code = cgi_info['html_code'].value
> !     f = open(os.path.join(list._template_dir, template_name), 'w')
>       f.write(code)
>       f.close()
>       doc.AddItem(htmlformat.Header(3, 'HTML successfully updated.'))
> --- 175,181 ----
>   	doc.AddItem('<hr>')
>   	return
>       code = cgi_info['html_code'].value
> !     f = open(os.path.join(list.GetTemplateDir(), template_name), 'w')
>       f.write(code)
>       f.close()
>       doc.AddItem(htmlformat.Header(3, 'HTML successfully updated.'))
> 
> 
> 
> 	-The Dragon De Monsyne
> 
> 
> _______________________________________________
> Mailman-Developers maillist  -  Mailman-Developers@python.org
> http://www.python.org/mailman/listinfo/mailman-developers
>