diff options
author | Patrick Hurst <phurst@mit.edu> | 2014-01-18 18:26:24 -0500 |
---|---|---|
committer | Patrick Hurst <phurst@mit.edu> | 2014-01-18 18:26:24 -0500 |
commit | 4caa5f98146d40715a96aeab6c4ff65e7a0f38b6 (patch) | |
tree | 96e059e285d059c3c9373fdb081041a72121d767 /src/effectize.sml | |
parent | 1ce3acd70b3527add32015267cc916e920661dbb (diff) | |
parent | 6787b686afe5fd3e65b3d377d4c363b4cd086dad (diff) |
Merge in upstream changes.
Diffstat (limited to 'src/effectize.sml')
-rw-r--r-- | src/effectize.sml | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/effectize.sml b/src/effectize.sml index 6ced952b..d711e620 100644 --- a/src/effectize.sml +++ b/src/effectize.sml @@ -153,7 +153,7 @@ fun effectize file = in (d, loop (writers, readers, pushers)) end - | DExport (Link, n, t) => + | DExport (Link _, n, t) => (case IM.find (writers, n) of NONE => () | SOME (loc, s) => @@ -162,7 +162,13 @@ fun effectize file = else ErrorMsg.errorAt loc ("A handler (URI prefix \"" ^ s ^ "\") accessible via GET could cause side effects; try accessing it only via forms, removing it from the signature of the main program module, or whitelisting it with the 'safeGet' .urp directive"); - ((DExport (Link, n, IM.inDomain (pushers, n)), #2 d), evs)) + ((DExport (Link (if IM.inDomain (writers, n) then + if IM.inDomain (readers, n) then + ReadCookieWrite + else + ReadWrite + else + ReadOnly), n, IM.inDomain (pushers, n)), #2 d), evs)) | DExport (Action _, n, _) => ((DExport (Action (if IM.inDomain (writers, n) then if IM.inDomain (readers, n) then |