Update of /cvsroot/hcoop/domtool2/src In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv1177/src
Modified Files: acl.sig acl.sml main.sml Log Message: Allow rmdom on subdomains of those on the user's ACL Index: acl.sig =================================================================== RCS file: /cvsroot/hcoop/domtool2/src/acl.sig,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** acl.sig 16 Dec 2006 18:53:44 -0000 1.5 --- acl.sig 12 May 2008 20:26:51 -0000 1.6 *************** *** 53,55 **** --- 53,57 ---- (* Read/write saved ACL state from/to a file *) + val queryDomain : {user : string, domain : string} -> bool + (* Like a call to [query] for class 'domain', but considers subdomains, too *) end Index: main.sml =================================================================== RCS file: /cvsroot/hcoop/domtool2/src/main.sml,v retrieving revision 1.103 retrieving revision 1.104 diff -C2 -d -r1.103 -r1.104 *** main.sml 9 Apr 2008 14:23:57 -0000 1.103 --- main.sml 12 May 2008 20:26:51 -0000 1.104 *************** *** 1284,1288 **** doIt (fn () => if Acl.query {user = user, class = "priv", value = "all"} ! orelse List.all (fn dom => Acl.query {user = user, class = "domain", value = dom}) doms then (Domain.rmdom doms; (*app (fn dom => --- 1284,1289 ---- doIt (fn () => if Acl.query {user = user, class = "priv", value = "all"} ! orelse List.all (fn dom => Domain.validDomain dom ! andalso Acl.queryDomain {user = user, domain = dom}) doms then (Domain.rmdom doms; (*app (fn dom => Index: acl.sml =================================================================== RCS file: /cvsroot/hcoop/domtool2/src/acl.sml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** acl.sml 14 May 2007 00:02:49 -0000 1.7 --- acl.sml 12 May 2008 20:26:51 -0000 1.8 *************** *** 168,170 **** --- 168,182 ---- end + fun queryDomain {user, domain} = + let + fun trySuffix parts = + case parts of + [] => false + | first :: rest => + query {user = user, class = "domain", value = String.concatWith "." parts} + orelse trySuffix rest + in + trySuffix (String.fields (fn ch => ch = #".") domain) + end + end ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2008. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ hcoop-cvs mailing list hcoop-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hcoop-cvs