Remove auto-generated mlt files
[hcoop/zz_old/portal.git] / sec.sml
diff --git a/sec.sml b/sec.sml
index 5974bc2..af3f813 100644 (file)
--- a/sec.sml
+++ b/sec.sml
@@ -77,4 +77,43 @@ fun socketPerms uname =
 
 fun isTpe uname = inGroup (uname, "only-tpe")
 
+fun findFirewallRules uname =
+    let
+       val inf = TextIO.openIn "/etc/firewall/users.rules"
+
+       fun loop rules =
+           case TextIO.inputLine inf of
+               NONE => List.rev rules
+             | SOME line =>
+               if String.sub (line, 0) = #"#" then
+                   loop rules
+               else case String.tokens Char.isSpace line of
+                   uname'::rest =>
+                   if uname = uname' then
+                       loop (String.concatWith " " rest :: rules)
+                   else
+                       loop rules
+                 | _ => loop rules
+    in
+       loop []
+       before TextIO.closeIn inf
+    end
+
+fun somethingAllowed fname uname =
+    let
+       val inf = TextIO.openIn fname
+       val uname' = uname ^ "\n"
+
+       fun loop () =
+           case TextIO.inputLine inf of
+               NONE => false
+             | SOME line => line = uname' orelse loop ()
+    in
+       loop ()
+       before TextIO.closeIn inf
+    end
+
+val cronAllowed = somethingAllowed "/etc/cron.allow"
+val ftpAllowed = somethingAllowed "/etc/ftpusers"
+
 end