view release on metacpan or search on metacpan
usr/share/webapp-toolkit/extra/class/admin_about.tt view on Meta::CPAN
$c->request->content_type('text/html');
$c->template->process(
'extras/admin/system.tt',
{
%{ $c->config },
data => \%ENV,
}
)
or $self->SUPER::_error($c, 'Template process failed', $c->template->error() );
exit;
}
1;
__END__
=head1 NAME
usr/share/webapp-toolkit/extra/class/admin_logs.tt view on Meta::CPAN
our $VERSION = 0.19;
#----------------------------------------------------------------------------+
# _default(\%controller)
#
# Dispatch the action.
sub _default {
my ($self, $c) = @_;
$self->SUPER::_error($c, 'Error', ERROR_ACCESS_DENIED)
unless ($c->request->user eq 'admin');
$self->_list_entries($c);
}
#----------------------------------------------------------------------------+
# _list_entries(\%controller)
#
# List the log entries.
usr/share/webapp-toolkit/extra/class/admin_logs.tt view on Meta::CPAN
my $start = $c->request->param('start') || '0';
my $sc = $c->request->param('sc') || 'admin_log_username';
my $so = $c->request->param('so') || 'asc';
# check the user input
my $error;
$error = 1 if ($start !~ /^[\d]{1,6}$/);
$error = 1 if ($sc !~ /^[\w]{1,55}$/);
$error = 1 if ($so !~ /^[\w]{1,4}$/);
$self->SUPER::_error($c, 'Error', 'Bad Request') if $error;
# read from database, if available - defaults to file
my $data =
(defined $c->stash('DBH') )
? $self->_get_entries_from_db($c)
: $self->_get_entries_from_file($c);
my $results = $self->SUPER::_sort_data($sc, $so, $data);
my $total = @$results;
my $limit = $c->config->{custom_items_per_page} || '25';
$c->request->content_type('text/html');
$c->template->process(
'extras/admin/logs.tt',
{
%{ $c->config },
sc => $sc,
so => $so,
data => $self->SUPER::_gen_results($total, $start, $limit, \@$results),
}
)
or $self->SUPER::_error($c, 'Template process failed', $c->template->error() );
exit;
}
#----------------------------------------------------------------------------+
# _get_entries_from_file(\%controller)
#
# Return the log entry file data as a reference to an array.
sub _get_entries_from_file {
my ($self, $c) = @_;
my $logfile = $c->config->{apache_doc_root} . '/logs/admin_log';
my @data;
if (-f $logfile) {
open (INFILE, $logfile) or die $self->SUPER::_error($c, "Cannot open $logfile: $!");
while (<INFILE>) {
chomp;
my ($user, $action, $string, $ip, $epoch) = split(/\t/);
push @data, {
admin_log_username => $user,
admin_log_action => $action,
admin_log_query_string => $string,
admin_log_user_ip_addr => $ip,
created => $c->plugin('DateTime')->format_time($epoch, '%m-%d-%Y / %R %p')
};
}
close(INFILE);
}
else {
# create the log file
open (FILE, ">$logfile") or $self->SUPER::_error("Cannot open file: $!");
close(FILE);
}
return \@data;
}
#----------------------------------------------------------------------------+
# _get_entries_from_db(\%controller)
#
# Return the log entry database as a reference to an array.
usr/share/webapp-toolkit/extra/class/admin_logs.tt view on Meta::CPAN
SELECT *,
DATE_FORMAT(admin_log_created, '%m-%d-%Y / %H:%i %p') AS created
FROM admin_log
ORDER BY admin_log_created
});
$sth->execute;
};
if ($@) {
$self->SUPER::_error($c, 'Database SELECT failed', $sth->errstr);
}
return $sth->fetchall_arrayref({});
}
1;
__END__
=head1 NAME
usr/share/webapp-toolkit/extra/class/admin_users.tt view on Meta::CPAN
our $VERSION = 0.19;
#----------------------------------------------------------------------------+
# _default(\%controller)
#
# Dispatch the action.
sub _default {
my ($self, $c) = @_;
$self->SUPER::_error($c, 'Error', ERROR_ACCESS_DENIED)
unless ($c->request->user eq 'admin');
$self->_list_users($c);
}
#----------------------------------------------------------------------------+
# _list_users(\%controller)
#
# List the htpasswd users.
usr/share/webapp-toolkit/extra/class/admin_users.tt view on Meta::CPAN
my $start = $c->request->param('start') || '0';
my $sc = $c->request->param('sc') || 'username';
my $so = $c->request->param('so') || 'asc';
# check the user input
my $error;
$error = 1 if ($start !~ /^[\d]{1,6}$/);
$error = 1 if ($sc !~ /^[\w]{1,55}$/);
$error = 1 if ($so !~ /^[\w]{1,4}$/);
$self->SUPER::_error($c, 'Error', 'Bad Request') if $error;
my $results = $self->SUPER::_sort_data($sc, $so, $self->_get_htpasswd_data($c) );
my $total = @$results;
my $limit = $c->config->{custom_items_per_page} || '25';
$c->request->content_type('text/html');
$c->template->process(
'extras/admin/users.tt',
{
%{ $c->config },
sc => $sc,
so => $so,
data => $self->SUPER::_gen_results($total, $start, $limit, \@$results),
}
)
or $self->SUPER::_error($c, 'Template process failed', $c->template->error() );
exit;
}
#----------------------------------------------------------------------------+
# delete(\%controller)
#
# Delete the user from the htpasswd file.
sub delete {
my ($self, $c) = @_;
my $username = $c->request->param('username');
$self->SUPER::_error($c, 'Error', ERROR_ACCESS_DENIED)
if ($username eq 'admin');
my $htpasswd = $c->config->{apache_doc_root} . '/conf/htpasswd';
my $pwd = new Apache::Htpasswd($htpasswd);
my @users = $pwd->fetchUsers();
foreach (@users) {
next if ($username eq 'admin'); # always exclude
$pwd->htDelete($_) if (/^(?:|\#)$username/i);
}
$self->SUPER::_log_action($c, "Deleted User ($username)");
# list the users
$self->_list_users($c);
}
#----------------------------------------------------------------------------+
# status(\%controller)
#
# Change the user status.
sub status {
my ($self, $c) = @_;
my $username = $c->request->param('username');
my $value = $c->request->param('value');
$self->SUPER::_error($c, 'Error', ERROR_ACCESS_DENIED)
if ($username eq 'admin');
my $htpasswd = $c->config->{apache_doc_root} . '/conf/htpasswd';
open (INFILE, $htpasswd) or die $self->SUPER::_error($c, "Cannot open $htpasswd: $!");
my @lines = <INFILE>;
close(INFILE);
open (OUTFILE, ">$htpasswd") or die $self->SUPER::_error($c, "Cannot open $htpasswd: $!");
foreach (@lines) {
chomp;
next if ($username eq 'admin');
if (/^(?:|\#)$username/i) {
if (/^#/) {
s/^#(\w+)/$1/gi;
}
else {
s/^(\w+)/\#$1/gi;
}
}
print OUTFILE "$_\n";
}
close(OUTFILE);
$self->SUPER::_log_action($c, "Changed Status to '$value' ($username)");
# list the users
$self->_list_users($c);
}
#----------------------------------------------------------------------------+
# _get_htpasswd_data(\%controller)
#
# Return the htpasswd user list as a reference to an array.
usr/share/webapp-toolkit/extra/class/admin_users_add.tt view on Meta::CPAN
our $VERSION = 0.19;
#----------------------------------------------------------------------------+
# _default(\%controller)
#
# Dispatch the action.
sub _default {
my ($self, $c) = @_;
$self->SUPER::_error($c, 'Error', ERROR_ACCESS_DENIED)
unless ($c->request->user eq 'admin');
$self->_view_page($c);
}
#----------------------------------------------------------------------------+
# _view_page(\%controller, \%param, \%error)
#
# View the page.
usr/share/webapp-toolkit/extra/class/admin_users_add.tt view on Meta::CPAN
$c->request->content_type('text/html');
$c->template->process(
'extras/admin/users_form.tt',
{
%{ $c->config },
param => ($param_ref) ? $param_ref : undef,
error => ($error_ref) ? $error_ref : undef,
}
)
or $self->SUPER::_error($c, 'Template process failed', $c->template->error() );
exit;
}
#----------------------------------------------------------------------------+
# Validate the form input, process the request.
sub submit {
my ($self, $c) = @_;
usr/share/webapp-toolkit/extra/class/admin_users_add.tt view on Meta::CPAN
unless (values %error) {
my $username = $param{username};
$param{username} =~ s/(\w+)/\#$1/gi;
$pwd->htpasswd($param{username}, $param{password});
$pwd->writeInfo($param{username}, time() );
$self->SUPER::_log_action($c, "Added User ($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 );
usr/share/webapp-toolkit/extra/class/admin_users_edit.tt view on Meta::CPAN
our $VERSION = 0.19;
#----------------------------------------------------------------------------+
# _default(\%controller)
#
# Dispatch the action.
sub _default {
my ($self, $c) = @_;
$self->SUPER::_error($c, 'Error', ERROR_ACCESS_DENIED)
unless ($c->request->user eq 'admin');
$self->_view_page($c);
}
#----------------------------------------------------------------------------+
# _view_page(\%controller, \%param, \%error)
#
# View the page.
usr/share/webapp-toolkit/extra/class/admin_users_edit.tt view on Meta::CPAN
$c->template->process(
'extras/admin/users_form.tt',
{
%{ $c->config },
param => ($param_ref) ? $param_ref : undef,
error => ($error_ref) ? $error_ref : undef,
edit => 1
}
)
or $self->SUPER::_error($c, 'Template process failed', $c->template->error() );
exit;
}
#----------------------------------------------------------------------------+
# Validate the form input, process the request.
sub submit {
my ($self, $c) = @_;
usr/share/webapp-toolkit/extra/class/admin_users_edit.tt view on Meta::CPAN
}
}
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);