Apache-JAF
view release on metacpan or search on metacpan
MANIFEST
README
test.pl
lib/JAF.pm
lib/JAF/DBI.pm
lib/JAF/DBI/mysql.pm
lib/JAF/DBI/Pg.pm
lib/JAF/DBI/Oracle.pm
lib/JAF/Util.pm
lib/Apache/JAF.pm
lib/Apache/JAF/Cookies.pm
lib/Apache/JAF/Session.pm
lib/Apache/JAF/Util.pm
examples/site.conf
examples/site/data/site.js
examples/site/data/site.css
examples/site/data/pix/Apache-JAF.gif
examples/site/modules/Apache/JAF/MyJAF.pm
examples/site/modules/Apache/JAF/MyJAF/pages/index.pm
examples/site/modules/JAF/MyJAF.pm
examples/site/templates/default.inc
lib/Apache/JAF.pm view on Meta::CPAN
foreach (@{$tbl->{cols}}) {
$self->{res}{$_} = $self->param($_);
}
}
}
}
sub default_messages {
my ($self, $modeller) = @_;
%{$self->{cookies}} = Apache::Cookie->fetch() unless $self->{cookies};
if ($self->{status} == REDIRECT) {
my $messages = $modeller->messages();
if ($messages) {
Apache::Cookie->new($self->{r},
-name => 'messages',
-path => '/',
-value => Data::Dumper::Dumper $messages)->bake();
}
} elsif ($self->{status} == OK && $self->{type} =~ /^text/ && !$self->{r}->header_only) {
my $VAR1;
if (exists $self->{cookies}{messages} && eval $self->{cookies}{messages}->value) {
$self->{res}{messages} = $VAR1;
Apache::Cookie->new($self->{r},
-name => $self->{res}{messages} ? 'messages' : 'error',
-path => '/',
-value => '')->bake();
} else {
$self->{res}{messages} = $modeller->messages();
}
}
}
=head1 NAME
lib/Apache/JAF/Cookies.pm view on Meta::CPAN
package Apache::JAF::Cookies;
use Apache;
use Apache::Cookie ();
sub new {
my $class = shift;
return bless { r => Apache->request, cookies => Apache::Cookie->fetch() }, $class;
}
sub bake {
my $self = shift;
Apache::Cookie->new($self->{r}, @_)->bake();
}
1;
lib/Apache/JAF/Session.pm view on Meta::CPAN
package Apache::JAF::Session;
use DBI ();
use Apache ();
use Apache::Cookie ();
use Apache::Session::MySQL ();
our @ISA = qw(Apache::Session::MySQL);
our $FIXUP = { Columns => {} };
sub new {
my ($class, $expire, @dsn) = @_;
my $dbh = DBI->connect(@dsn);
my $self = { };
my %cookies = Apache::Cookie->fetch();
my $id = $cookies{SESSION_ID} && $cookies{SESSION_ID}->value();
my $t = time();
my $expired = $dbh->selectall_arrayref(q{select id from sessions where ? - unix_timestamp(modified) > ?}, $FIXUP, $t, $expire);
foreach (@$expired) {
tie %$_, $class, $_->{id}, { Handle => $dbh, LockHandle => $dbh };
tied(%$_)->on_end($_) if tied(%$_)->can('on_end');
tied(%$_)->delete();
}
$id = $dbh->selectrow_array(q{select id from sessions where id = ?}, undef, $id);
tie %$self, $class, $id, { Handle => $dbh, LockHandle => $dbh };
$self->{active} = $t;
tied(%$self)->on_start($self) if !$id && tied(%$self)->can('on_start');
Apache::Cookie->new(Apache->request, name => 'SESSION_ID', value => $self->{_session_id})->bake() unless $id;
return bless $self, $class;
}
sub list {
my ($self, @dsn) = @_;
my $dbh = DBI->connect(@dsn);
my $sessions = $dbh->selectall_arrayref(q{select id from sessions}, $FIXUP);
foreach (@$sessions) {
tie %{$_}, ref $self, $_->{id}, { Handle => $dbh, LockHandle => $dbh };
( run in 0.949 second using v1.01-cache-2.11-cpan-e9199f4ba4c )