chiark / gitweb /
docs: more work
[cgi-auth-flexible.git] / cgi-auth-flexible.pm
index 4e8b6b87d64a93fcbb34aa576a20ad10c87eb5ad..1b51142bfeab55c2e6883b111e0dbab1f4735209 100644 (file)
@@ -1285,30 +1285,28 @@ sub check_mutate ($) {
     $r->_must_be_post();
 }
 
-sub mutate_ok ($) {
-    my ($r) = @_;
-    $r->_assert_checked();
-    die if $r->{Divert};
-    return $r->_is_post();
-}
-
 our %_resource_get_needs_secret_hidden =
     (map { $_ => 0 } qw(PAGE FRAME IFRAME SRCDUMP STYLESHEET FAVICON ROBOTS),
      map { $_ => 1 } qw(IMAGE SCRIPT AJAX-XML AJAX-JSON AJAX-OTHER));
 
-sub update_get_need_add_hidden ($$) {
-    my ($r, $reqtype, $value) = @_;
+sub update_get_need_add_hidden ($$;$) {
+    my ($r, $reqtype, $value, $force) = @_;
     my $hash = ref $r
        ? ($r->{GetNeedsSecretHidden} ||= { })
        : \%_resource_get_needs_secret_hidden;
+    return if !$force &&
+       (exists $_resource_get_needs_secret_hidden{$reqtype} ||
+        exists $hash->{$reqtype});
     $hash->{$reqtype} = $value;
 }
 
 sub need_add_hidden ($$) {
     my ($r, $method, $reqtype) = @_;
     return 1 if $method ne 'GET';
-    my $ent = $r->{GetNeedsSecretHidden}{$reqtype};
-    return $ent if defined $ent;
+    if (ref $r) {
+       my $ent = $r->{GetNeedsSecretHidden}{$reqtype};
+       return $ent if defined $ent;
+    }
     my $ent = $_resource_get_needs_secret_hidden{$reqtype};
     return $ent if defined $ent;
     die "unsupported nonpage GET type $reqtype";