Limited DNS nodes
[hcoop/domtool2.git] / src / domain.sml
index 4d2f487..e09f399 100644 (file)
@@ -153,6 +153,9 @@ val _ = Env.type_one "node"
        Env.string
        validNode
 
+val _ = Env.registerFunction ("web_node_to_node",
+                             fn [e] => SOME e
+                              | _ => NONE)
 open Ast
 
 val dl = ErrorMsg.dummyLoc
@@ -607,7 +610,14 @@ val () = Env.registerPost (fn () =>
                                                     fn cl => "Temp file cleanup failed: " ^ cl))
                              end)
 
-fun inGroup group = Acl.query {user = getUser (), class = "group", value = "root"}
-                   orelse Acl.query {user = getUser (), class = "group", value = group}
+fun hasPriv priv = Acl.query {user = getUser (), class = "priv", value = "all"}
+                  orelse Acl.query {user = getUser (), class = "priv", value = priv}
+
+val _ = Env.type_one "dns_node"
+       Env.string
+       (fn node =>
+           List.exists (fn x => x = node) Config.dnsNodes_all
+           orelse (hasPriv "dns"
+                   andalso List.exists (fn x => x = node) Config.dnsNodes_admin))
 
 end