Apache-JAF

 view release on metacpan or  search on metacpan

MANIFEST  view on Meta::CPAN

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 )