Apache2-WebApp-Extra-Admin
view release on metacpan or search on metacpan
usr/share/webapp-toolkit/extra/class/admin_users_edit.tt view on Meta::CPAN
)
or $self->SUPER::_error($c, 'Template process failed', $c->template->error() );
exit;
}
#----------------------------------------------------------------------------+
# Validate the form input, process the request.
sub submit {
my ($self, $c) = @_;
# convert the form input into hash data
my %param = $c->plugin('CGI')->params($c);
my %error;
my $htpasswd = $c->config->{apache_doc_root} . '/conf/htpasswd';
my $pwd = new Apache::Htpasswd($htpasswd);
# check the username field data
if ($param{username}) {
unless ($param{username} =~ /\A (?: \w|\s|\-|\_){5,15} \z/x)
{
$error{username} = ERROR_USERNAME;
}
else {
if (!$pwd->fetchPass( $param{username} ) &&
!$pwd->fetchPass('#' . $param{username} ) )
{
$error{username} = ERROR_USERNAME_DOESNT_EXIST;
}
}
}
else {
$error{username} = ERROR_REQUIRED;
}
# check the password field data
if ($param{password}) {
unless ($param{password} =~ /\A (?: .){8,15} \z/x)
{
$error{password} = ERROR_PASSWORD;
}
}
else {
$error{password} = ERROR_REQUIRED;
}
unless (values %error) {
$pwd->htpasswd($param{username}, $param{password}, { overwrite => 1 });
$self->SUPER::_log_action($c, 'Updated User (' . $param{username} . ')');
# list the users
$self->_list_users($c);
}
else {
$error{alert} = ERROR_FORM_INPUT;
# errors exist, reload the form
$self->_view_page($c, \%param, \%error);
}
}
1;
__END__
=head1 NAME
[% project_title %]::Admin::Users::Edit - Web based admin control panel module
=head1 SYNOPSIS
use [% project_title %]::Admin::Users::Edit;
=head1 DESCRIPTION
Edit an existing htpasswd user entry.
=head1 OBJECT METHODS
View the page.
$self->_view_page(\%controller, \%param, \%error);
=head2 URI DISPATCHABLE
=head2 submit
Validate the form input, process the request.
http://domain.com/app/admin/users/edit/submit
=head1 SEE ALSO
L<Apache2::WebApp>, L<Apache2::WebApp::Admin>, L<Apache::Htpasswd>
=head1 AUTHOR
Marc S. Brooks, E<lt>mbrooks@cpan.orgE<gt> L<http://mbrooks.info>
=head1 COPYRIGHT
This program is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
See L<http://www.perl.com/perl/misc/Artistic.html>
=cut
( run in 2.850 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )