diff MoinMoin/server/__init__.py @ 1584:1a1d6e0fe14f

make moin.cgi work similar to the standalone/Twisted start scripts
author Thomas Waldmann <tw AT waldmann-edv DOT de>
date Mon, 25 Sep 2006 16:15:57 +0200
parents f37b49b6313d
children a843bc5793fb
line wrap: on
line diff
--- a/MoinMoin/server/__init__.py	Mon Sep 25 11:03:14 2006 +0200
+++ b/MoinMoin/server/__init__.py	Mon Sep 25 16:15:57 2006 +0200
@@ -47,6 +47,10 @@
     """
     # some defaults that should be common for all servers:
     url_prefix_static = config.url_prefix_static
+    docs = None # document root (if supported)
+    user = None # user we shall use for running (if supported)
+    group = None # group ...
+    port = None # tcp port number (if supported)
 
     def __init__(self):
         """ Validate and post process configuration values
@@ -55,36 +59,36 @@
         """
 
         # Check that docs path is accessible
-        self.docs = os.path.normpath(os.path.abspath(self.docs))
-        if not os.access(self.docs, os.F_OK | os.R_OK | os.X_OK):
-            raise RuntimeError("Can't access docs directory '%s'. Check docs "
-                               "setting and permissions." % self.docs)
+        if self.docs:
+            self.docs = os.path.normpath(os.path.abspath(self.docs))
+            if not os.access(self.docs, os.F_OK | os.R_OK | os.X_OK):
+                raise RuntimeError("Can't access docs directory '%s'. Check docs "
+                                   "setting and permissions." % self.docs)
 
         # Don't check uid and gid on windows, those calls are not available.
         if os.name == 'nt':
             self.uid = self.gid = 0
             return
 
+        self.uid = os.getuid()
+        self.gid = os.getgid()
+
         # If serving privileged port, we must run as root to bind the port.
         # we will give up root privileges later
-        if self.port < 1024 and os.getuid() != 0:
+        if self.port and self.port < 1024 and self.uid != 0:
             raise RuntimeError('Must run as root to serve port number under 1024. '
                                'Run as root or change port setting.')
 
-        # If we run as root to serve privileged port, we change user and group
-        # to a safe setting. Get the uid and gid now, switch later.
-        self.uid = os.getuid()
-        self.gid = os.getgid()
-        if self.uid == 0:
+        if self.user and self.group and self.uid == 0:
+            # If we run as root to serve privileged port, we change user and group
+            # to a safe setting. Get the uid and gid now, switch later.
             import pwd, grp
             try:
                 self.uid = pwd.getpwnam(self.user)[2]
             except KeyError:
-                raise RuntimeError("Unknown user: '%s', check user setting" %
-                                   self.user)
+                raise RuntimeError("Unknown user: '%s', check user setting" % self.user)
             try:
                 self.gid = grp.getgrnam(self.group)[2]
             except KeyError:
-                raise RuntimeError("Unknown group: '%s', check group setting" %
-                                   self.group)
+                raise RuntimeError("Unknown group: '%s', check group setting" % self.group)