Apache2-WebApp-Extra-Admin

 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);



( run in 1.142 second using v1.01-cache-2.11-cpan-49f99fa48dc )