CGI-Auth
view release on metacpan or search on metacpan
);
}
# Create parameters for Auth_Fields <TMPL_LOOP>.
my @fields = ();
foreach my $authfield (@{$self->{authfields}})
{
if ($authfield->{required})
{
push @fields, {
Display_Name => $authfield->{display},
Input_Name => 'auth_' . $authfield->{id},
Input_Type => $authfield->{hidden} ? 'password' : 'text',
};
}
}
$template->param(
Message => $msg,
Auth_Fields => \@fields,
Button_Name => 'auth_submit',
Form_Action => $self->{formaction},
Form_Fields => $self->FormFields,
);
print $template->output();
}
=pod
=item C<PLF_headerfooter>
Prints the login form using a header and footer. It uses the values of the
loginheader and loginfooter properties.
=cut
sub PLF_headerfooter
{
my ($self, $msg) = @_;
if (open HEADER, "< " . $self->{loginheader})
{
my @header = <HEADER>;
close HEADER;
print @header;
}
else
{
print <<DEFAULT;
<html>
<head>
<title>Login</title>
</head>
<body>
<p>Please enter your login information:</p>
DEFAULT
}
if ($msg)
{
print qq(<p style="color: red; font-weight: bold;">$msg</p>\n);
}
my $formaction = $self->{formaction};
print <<START;
<form method=post action="$formaction">
<table border=0>
START
print $self->FormFields;
# Print form for filling in auth fields.
foreach my $authfield (@{$self->{authfields}})
{
if ($authfield->{required})
{
if ($authfield->{hidden})
{
print "<tr><td align=left><p><b>", $authfield->{display}, ":</b></p></td>",
"<td align=left><p><input type=password name=auth_", $authfield->{id}, "></p></td>\n";
}
else
{
print "<tr><td align=left><p><b>", $authfield->{display}, ":</b></p></td>",
"<td align=left><p><input type=text name=auth_", $authfield->{id}, "></p></td>\n";
}
}
}
print <<END;
</table>
<p><input type=submit name="auth_submit" value="Login"></p>
</form>
END
if (open FOOTER, "< " . $self->{loginfooter})
{
my @footer = <FOOTER>;
close FOOTER;
print @footer;
}
else
{
print "</body></html>\n";
}
}
=pod
=item C<FormFields>
Returns HTML code for placing existing CGI parameters on a form so that the
login process is transparent to the calling script.
For any single-valued parameters, it creates a hidden C<< <input> >> control,
and for any multi-valued parameters, it creates a hidden (i.e.,
C<style="display: none">) C<< <select> >> control with all of its values.
=cut
sub FormFields
( run in 2.066 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )