Code

Added configuration for:
authorrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Mon, 22 Oct 2001 03:25:01 +0000 (03:25 +0000)
committerrichard <richard@57a73879-2fb5-44c3-a270-3262357dd7e2>
Mon, 22 Oct 2001 03:25:01 +0000 (03:25 +0000)
 . anonymous user access and registration (deny/allow)
 . filter "widget" location on index page (top, bottom, both)
Updated some documentation.

git-svn-id: http://svn.roundup-tracker.org/svnroot/roundup/trunk@326 57a73879-2fb5-44c3-a270-3262357dd7e2

CHANGES.txt
doc/announcement.txt
doc/index.html
roundup/cgi_client.py
roundup/htmltemplate.py
roundup/templates/classic/htmlbase.py
roundup/templates/classic/instance_config.py
roundup/templates/classic/interfaces.py
roundup/templates/extended/htmlbase.py
roundup/templates/extended/instance_config.py
roundup/templates/extended/interfaces.py

index 6215187beed35597ddc0e2df43766ce5b59932e7..879c6386466478446db84e434c1a46bc439ec0c9 100644 (file)
@@ -1,7 +1,7 @@
 This file contains the changes to the Roundup system over time. The entries
 are given with the most recent entry first.
 
-2001-10-?? - 0.3.0
+2001-10-22 - 0.3.0 pre 3
 Feature:
  . MailGW now moves 'unread' to 'chatting' on receiving e-mail for an issue.
  . feature #473127: Filenames. I modified the file.index and htmltemplate
index 9efe6422123f126f5ee7d57b69b13e35b4d0cf87..0ce13e8e3c89450450253f25dc9359dab5fb20d7 100644 (file)
@@ -9,8 +9,8 @@ we're releasing this preview for the bleeding-edge users.
 **NOTE** existing users _must_ read the MIGRATION.txt that accompanies the
 source.
 
-This release fixes a nasty bug in the hyperdatabase that was inserted in
-pre-release 1. Users who downloaded that release MUST download this release.
+This release contains a bunch of changes and bug fixes. See the CHANGES
+file for details.
 
 Source and documentation is available at the website:
       http://roundup.sourceforge.net/
index ee5865a39a8816fe0a0219240b28599e27474340..1707bfe2e7a61fbd86c1d7e442cf1f7e3cfc807d 100644 (file)
@@ -260,6 +260,7 @@ entry with the username "anonymous", then unidentified users are
 automatically logged in as that user. This gives them write access.
 </dl>
 <p>
+*** anonymous access and the ANONYMOUS_* configuratins.
 
 <h3>Adding users</h3>
 To add users, use one of the following interfaces:
@@ -1157,7 +1158,7 @@ system on their time.
 
 <p>&nbsp;</p>
 <hr>
-$Id: index.html,v 1.15 2001-10-21 11:39:49 richard Exp $
+$Id: index.html,v 1.16 2001-10-22 03:25:01 richard Exp $
 <p>&nbsp;</p>
 
 </body></html>
index 3f7b4ccc7c0592fd127be12fc644241e50b938f7..88fc686db371986c55a9d9854782ec6d4ddb9fa7 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: cgi_client.py,v 1.37 2001-10-21 07:26:35 richard Exp $
+# $Id: cgi_client.py,v 1.38 2001-10-22 03:25:01 richard Exp $
 
 import os, cgi, pprint, StringIO, urlparse, re, traceback, mimetypes
 import base64, Cookie, time
@@ -39,7 +39,18 @@ class Client:
     'anonymous' user exists, the user is logged in using that user (though
     there is no cookie). This allows them to modify the database, and all
     modifications are attributed to the 'anonymous' user.
+
+
+    Customisation
+    -------------
+      FILTER_POSITION - one of 'top', 'bottom', 'top and bottom'
+      ANONYMOUS_ACCESS - one of 'deny', 'allow'
+      ANONYMOUS_REGISTER - one of 'deny', 'allow'
+
     '''
+    FILTER_POSITION = 'bottom'       # one of 'top', 'bottom', 'top and bottom'
+    ANONYMOUS_ACCESS = 'deny'        # one of 'deny', 'allow'
+    ANONYMOUS_REGISTER = 'deny'      # one of 'deny', 'allow'
 
     def __init__(self, instance, out, env):
         self.instance = instance
@@ -493,7 +504,11 @@ class Client:
 <tr><td></td>
     <td><input type="submit" value="Log In"></td></tr>
 </form>
-
+''')
+        if self.user is None and not self.ANONYMOUS_REGISTER == 'deny':
+            self.write('</table')
+            return
+        self.write('''
 <p>
 <tr><td colspan=2 class="strong-header">New User Registration</td></tr>
 <tr><td colspan=2><em>marked items</em> are optional...</td></tr>
@@ -611,6 +626,10 @@ class Client:
             self.user = user
         self.db.close()
 
+        # make sure totally anonymous access is OK
+        if self.ANONYMOUS_ACCESS == 'deny' and self.user is None:
+            return self.login()
+
         # re-open the database for real, using the user
         self.db = self.instance.open(self.user)
 
@@ -815,6 +834,11 @@ def parsePropsFromForm(db, cl, form, nodeid=0):
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.37  2001/10/21 07:26:35  richard
+# feature #473127: Filenames. I modified the file.index and htmltemplate
+#  source so that the filename is used in the link and the creation
+#  information is displayed.
+#
 # Revision 1.36  2001/10/21 04:44:50  richard
 # bug #473124: UI inconsistency with Link fields.
 #    This also prompted me to fix a fairly long-standing usability issue -
index 8d73e486e872fe544bf42bb8e555b5a188497b19..0a78595a5784b5efe7eb4673e7c84b0c8fd7d339 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: htmltemplate.py,v 1.31 2001-10-21 07:26:35 richard Exp $
+# $Id: htmltemplate.py,v 1.32 2001-10-22 03:25:01 richard Exp $
 
 import os, re, StringIO, urllib, cgi, errno
 
@@ -566,8 +566,9 @@ def index(client, templates, db, classname, filterspec={}, filter=[],
         columns = l
 
     # display the filter section
-    filter_section(w, cl, filter, columns, group, all_filters, all_columns,
-        show_display_form, show_customization)
+    if hasattr(client, 'FILTER_POSITION') and client.FILTER_POSITION in ('top and bottom', 'top'):
+        filter_section(w, cl, filter, columns, group, all_filters, all_columns,
+            show_display_form, show_customization)
 
     # now display the index section
     w('<table width=100% border=0 cellspacing=0 cellpadding=2>\n')
@@ -637,6 +638,11 @@ def index(client, templates, db, classname, filterspec={}, filter=[],
 
     w('</table>')
 
+    # display the filter section
+    if hasattr(client, 'FILTER_POSITION') and client.FILTER_POSITION in ('top and bottom', 'bottom'):
+        filter_section(w, cl, filter, columns, group, all_filters, all_columns,
+            show_display_form, show_customization)
+
 
 def filter_section(w, cl, filter, columns, group, all_filters, all_columns,
         show_display_form, show_customization):
@@ -833,6 +839,11 @@ def newitem(client, templates, db, classname, form, replace=re.compile(
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.31  2001/10/21 07:26:35  richard
+# feature #473127: Filenames. I modified the file.index and htmltemplate
+#  source so that the filename is used in the link and the creation
+#  information is displayed.
+#
 # Revision 1.30  2001/10/21 04:44:50  richard
 # bug #473124: UI inconsistency with Link fields.
 #    This also prompted me to fix a fairly long-standing usability issue -
index 23f010386a4598aab8818919eabeea03cd13af01..45ba1ac1f165bf83b933a56d349d52c1fcfc1e63 100644 (file)
@@ -2,7 +2,7 @@
 # Do Not Edit (Unless You Want To)
 # This file automagically generated by roundup.htmldata.makeHtmlBase
 # 
-fileDOTindex = """<!-- dollarId: file.index,v 1.2 2001/07/29 04:07:37 richard Exp dollar-->
+fileDOTindex = """<!-- dollarId: file.index,v 1.3 2001/10/21 11:42:15 richard Exp dollar-->
 <tr>
     <property name="name">
         <td><display call="link('name', is_download=1)"></td>
index 55c43a6b5e4fc714906b07e4526eec594f655239..176a9816f470bb0b1d469711a920ec474cdabe9a 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: instance_config.py,v 1.6 2001-10-01 06:10:42 richard Exp $
+# $Id: instance_config.py,v 1.7 2001-10-22 03:25:01 richard Exp $
 
 MAIL_DOMAIN=MAILHOST=HTTP_HOST=None
 HTTP_PORT=0
@@ -62,8 +62,18 @@ ADMIN_EMAIL = 'roundup-admin@%s'%MAIL_DOMAIN
 # Somewhere for roundup to log stuff internally sent to stdout or stderr
 LOG = os.path.join(INSTANCE_HOME, 'roundup.log')
 
+# Deny or allow anonymous access to the web interface
+ANONYMOUS_ACCESS = 'deny'
+
+# Deny or allow anonymous users to register through the web interface
+ANONYMOUS_REGISTER = 'deny'
+
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.6  2001/10/01 06:10:42  richard
+# stop people setting up roundup with our addresses as default - need to
+# handle this better in the init
+#
 # Revision 1.5  2001/08/07 00:24:43  richard
 # stupid typo
 #
index 6046b8a977ce9fb62879a9512247608c10151cf7..bd64559384869747a68765348d356d63bed9129b 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: interfaces.py,v 1.7 2001-10-09 07:38:58 richard Exp $
+# $Id: interfaces.py,v 1.8 2001-10-22 03:25:01 richard Exp $
 
 import instance_config
 from roundup import cgi_client, mailgw 
@@ -25,6 +25,9 @@ class Client(cgi_client.Client):
         with any specific extensions 
     ''' 
     TEMPLATES = instance_config.TEMPLATES
+    FILTER_POSITION = instance_config.FILTER_POSITION
+    ANONYMOUS_ACCESS = instance_config.ANONYMOUS_ACCESS
+    ANONYMOUS_REGISTER = instance_config.ANONYMOUS_REGISTER
 
 class MailGW(mailgw.MailGW): 
     ''' derives basic mail gateway implementation from the standard module, 
@@ -36,6 +39,11 @@ class MailGW(mailgw.MailGW):
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.7  2001/10/09 07:38:58  richard
+# Pushed the base code for the extended schema CGI interface back into the
+# code cgi_client module so that future updates will be less painful.
+# Also removed a debugging print statement from cgi_client.
+#
 # Revision 1.6  2001/08/07 00:24:43  richard
 # stupid typo
 #
index f3e438684320042c710164a633b02dbd2198d3a6..ca32455f7c546b4e1d26471fa74321cfadc89e9f 100644 (file)
@@ -2,7 +2,7 @@
 # Do Not Edit (Unless You Want To)
 # This file automagically generated by roundup.htmldata.makeHtmlBase
 # 
-fileDOTindex = """<!-- dollarId: file.index,v 1.1 2001/07/23 04:21:20 richard Exp dollar-->
+fileDOTindex = """<!-- dollarId: file.index,v 1.2 2001/10/21 11:42:15 richard Exp dollar-->
 <tr>
     <property name="name">
         <td><display call="link('name', is_download=1)"></td>
index acdb42a916954bbb63cba293a14caf54f317caf9..643c409818cc4d6bb33fe82c2120b44254ed35b7 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: instance_config.py,v 1.6 2001-10-01 06:10:42 richard Exp $
+# $Id: instance_config.py,v 1.7 2001-10-22 03:25:01 richard Exp $
 
 MAIL_DOMAIN=MAILHOST=HTTP_HOST=None
 HTTP_PORT=0
@@ -62,8 +62,18 @@ ADMIN_EMAIL = 'roundup-admin@%s'%MAIL_DOMAIN
 # Somewhere for roundup to log stuff internally sent to stdout or stderr
 LOG = os.path.join(INSTANCE_HOME, 'roundup.log')
 
+# Deny or allow anonymous access to the web interface
+ANONYMOUS_ACCESS = 'deny'
+
+# Deny or allow anonymous users to register through the web interface
+ANONYMOUS_REGISTER = 'deny'
+
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.6  2001/10/01 06:10:42  richard
+# stop people setting up roundup with our addresses as default - need to
+# handle this better in the init
+#
 # Revision 1.5  2001/08/07 00:24:43  richard
 # stupid typo
 #
index 14eba7a47b434f47a8920dbbc16cd4982d2e42c6..3f2ac142c46ddbffc1e2149aac92d2889ca5bab3 100644 (file)
@@ -15,7 +15,7 @@
 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
 # 
-# $Id: interfaces.py,v 1.11 2001-10-09 07:38:58 richard Exp $
+# $Id: interfaces.py,v 1.12 2001-10-22 03:25:01 richard Exp $
 
 import instance_config
 from roundup import cgi_client, mailgw 
@@ -25,6 +25,9 @@ class Client(cgi_client.ExtendedClient):
         with any specific extensions 
     ''' 
     TEMPLATES = instance_config.TEMPLATES
+    FILTER_POSITION = instance_config.FILTER_POSITION
+    ANONYMOUS_ACCESS = instance_config.ANONYMOUS_ACCESS
+    ANONYMOUS_REGISTER = instance_config.ANONYMOUS_REGISTER
  
 class MailGW(mailgw.MailGW): 
     ''' derives basic mail gateway implementation from the standard module, 
@@ -36,6 +39,11 @@ class MailGW(mailgw.MailGW):
 
 #
 # $Log: not supported by cvs2svn $
+# Revision 1.11  2001/10/09 07:38:58  richard
+# Pushed the base code for the extended schema CGI interface back into the
+# code cgi_client module so that future updates will be less painful.
+# Also removed a debugging print statement from cgi_client.
+#
 # Revision 1.10  2001/10/05 02:23:24  richard
 #  . roundup-admin create now prompts for property info if none is supplied
 #    on the command-line.