From: Ian Jackson Date: Sun, 28 Oct 2012 21:22:53 +0000 (+0000) Subject: new outputs X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=cgi-auth-flexible.git;a=commitdiff_plain;h=bcc39feef352f94935ce9d5863ea14ea381bab2e new outputs --- diff --git a/cgi-auth-hybrid.pm b/cgi-auth-hybrid.pm index 2993bc2..7da7565 100644 --- a/cgi-auth-hybrid.pm +++ b/cgi-auth-hybrid.pm @@ -136,7 +136,7 @@ sub record_login ($$) { $r->{A} = $nassoc; } -sub _check ($) { +sub _check_core ($) { my ($r) = @_; my $qassoc = $r->_cm('get_param'); my ($nassoc,$nmutate); @@ -173,24 +173,18 @@ sub _check ($) { return ($nusername, $nassoc, $nmutate); } -sub check ($) { +sub _check ($) { my ($r) = @_; - my ($nusername, $nassoc, $nmutate) = $r->_check() or return undef; - - $dbh->do("UPDATE $r->{S}{assocdb_table}". - " SET last = ?". - " WHERE associd = ?", {}, time, $nassoc); - $dbh->do("COMMIT"); - - $r->{Username} = $nusername; - $r->{Assoc} = $nassoc; - $r->{Mutate} = $nmutate; - return $nusername; -} + return if exists $r->{Username}; + ($r->{Username}, $r->{Assoc}, $r->{Mutate}) = $r->_check(); -sub check_mutate ($) { - my ($r) = @_; + if (defined $r->{Assoc}) { + $dbh->do("UPDATE $r->{S}{assocdb_table}". + " SET last = ?". + " WHERE associd = ?", {}, time, $nassoc); + $dbh->do("COMMIT"); + } } sub logout ($) { @@ -204,15 +198,31 @@ sub logout ($) { return $nusername; } +sub check ($) { + my ($r) = @_; + $r->_check(); + return !!defined $r->{Username}; +} + +sub check_mutate ($) { + my ($r) = @_; + $r->check(); + return $r->{Mutate}; +} + sub username ($) { my ($r) = @_; + $r->check(); return $r->{Username}; sub hidden_val ($) { my ($r) = @_; + $r->check(); return defined $r->{Assoc} ? $r->{Assoc} : ''; } +#---------- simple wrappers ---------- + sub hidden_hargs ($) { my ($r) = @_; return (-name => $r->{S}{param_name},