Limited DNS nodes
[hcoop/domtool2.git] / src / plugins / apache.sml
index 78ea612..24b424e 100644 (file)
@@ -22,6 +22,13 @@ structure Apache :> APACHE = struct
 
 open Ast
 
+val _ = Env.type_one "web_node"
+       Env.string
+       (fn node =>
+           List.exists (fn x => x = node) Config.Apache.webNodes_all
+           orelse (Domain.hasPriv "www"
+                   andalso List.exists (fn x => x = node) Config.Apache.webNodes_admin))
+
 val _ = Env.type_one "proxy_port"
        Env.int
        (fn n => n > 1024)
@@ -61,9 +68,13 @@ val _ = Env.type_one "location"
 
 val dl = ErrorMsg.dummyLoc
 
+val _ = Env.registerFunction ("web_node_to_node",
+                             fn [e] => SOME e
+                              | _ => NONE)
+
 val _ = Defaults.registerDefault ("WebNodes",
-                                 (TList (TBase "node", dl), dl),
-                                 (fn () => (EList (map (fn s => (EString s, dl)) Config.Apache.webNodes), dl)))
+                                 (TList (TBase "web_node", dl), dl),
+                                 (fn () => (EList (map (fn s => (EString s, dl)) Config.Apache.webNodes_default), dl)))
 
 val _ = Defaults.registerDefault ("SSL",
                                  (TBase "bool", dl),
@@ -79,7 +90,7 @@ val _ = Defaults.registerDefault ("Group",
 
 val _ = Defaults.registerDefault ("DocumentRoot",
                                  (TBase "your_path", dl),
-                                 (fn () => (EString (Config.homeBase ^ "/" ^ Domain.getUser () ^ "/public_html"), dl)))
+                                 (fn () => (EString (Config.homeBase ^ "/" ^ Domain.getUser () ^ "/" ^ Config.Apache.public_html), dl)))
 
 val _ = Defaults.registerDefault ("ServerAdmin",
                                  (TBase "email", dl),
@@ -630,7 +641,7 @@ val () = Env.action_one "addDefaultCharset"
                    write ty;
                    write "\n"))
 
-val () = Env.action_one "davSvn"
+(*val () = Env.action_one "davSvn"
         ("path", Env.string)
         (fn path => (write "\tDAV svn\n\tSVNPath ";
                      write path;
@@ -640,7 +651,7 @@ val () = Env.action_one "authzSvnAccessFile"
         ("path", Env.string)
         (fn path => (write "\tAuthzSVNAccessFile ";
                      write path;
-                     write "\n"))
+                     write "\n"))*)
 
 val () = Env.action_two "addDescription"
         ("description", Env.string, "patterns", Env.list Env.string)