val your_pths = ref SS.empty
fun your_paths () = !your_pths
+val your_ipss = ref SS.empty
+fun your_ips () = !your_ipss
+
val world_readable = SS.addList (SS.empty, Config.worldReadable)
val readable_pths = ref world_readable
fun readable_paths () = !readable_pths
your_grps := Acl.class {user = getUser (),
class = "group"};
your_pths := your_paths;
- readable_pths := SS.union (your_paths, world_readable)
+ readable_pths := SS.union (your_paths, world_readable);
+ your_ipss := Acl.class {user = getUser (),
+ class = "ip"}
end
fun validIp s =
andalso SS.exists (fn s' => path = s' orelse String.isPrefix (s' ^ "/") path) (paths ())
val yourPath = checkPath your_paths
val readablePath = checkPath readable_paths
+fun yourIp s = SS.member (your_ips (), s)
fun yourDomainHost s =
yourDomain s
Env.string
readablePath
+val _ = Env.type_one "your_ip"
+ Env.string
+ yourIp
+
val _ = Env.type_one "node"
Env.string
validNode