Mojolicious-Plugin-ContextAuth
view release on metacpan or search on metacpan
lib/Mojolicious/Plugin/ContextAuth/DB.pm view on Meta::CPAN
sub user_from_session ($self, $session_id) {
$self->error('');
if ( !$session_id ) {
$self->error( "Need session id" );
return;
}
my $user_id = $self->dbh->db->select(
corbac_user_sessions => [ qw/user_id/ ],
{
session_id => $session_id,
session_started => { '>' => time - $self->session_expires },
},
);
my $hash = $user_id->hash;
if ( !$hash ) {
$self->error('No session found');
return;
}
my $user = Mojolicious::Plugin::ContextAuth::DB::User->new( dbh => $self->dbh );
return $user->load(
$hash->{user_id},
);
}
sub add ($self, $object, %params) {
$self->error('');
my $class = 'Mojolicious::Plugin::ContextAuth::DB::' . camelize( lc $object );
my $obj = $class->new( dbh => $self->dbh );
my $result = $obj->add( %params );
if ( !$result ) {
$self->error( $obj->error );
return;
}
return $result;
}
sub delete ($self, $object, $id) {
$self->error('');
my $class = 'Mojolicious::Plugin::ContextAuth::DB::' . camelize( lc $object );
my $obj = $class->new( dbh => $self->dbh );
my $result = $obj->delete( $id );
if ( !$result ) {
$self->error( $obj->error );
return;
}
return $result;
}
sub update ($self, $object, $id, %params) {
$self->error('');
my $class = 'Mojolicious::Plugin::ContextAuth::DB::' . camelize( lc $object );
my $obj = $class->new( dbh => $self->dbh );
my $found = $obj->load( $id );
if ( !$found ) {
$self->error( $obj->error );
return;
}
my $result = $found->update( %params );
if ( !$result ) {
$self->error( $found->error );
return;
}
return $result;
}
sub get ($self, $object, $id) {
$self->error('');
my $class = 'Mojolicious::Plugin::ContextAuth::DB::' . camelize( lc $object );
my $obj = $class->new( dbh => $self->dbh );
return $obj->load(
$id,
);
}
sub search ($self, $object, %params) {
$self->error('');
my $class = 'Mojolicious::Plugin::ContextAuth::DB::' . camelize( lc $object );
my $obj = $class->new( dbh => $self->dbh );
my @rows = $obj->search( %params );
$self->error( $obj->error );
return @rows;
}
sub object ($self, $object) {
$self->error('');
my $class = 'Mojolicious::Plugin::ContextAuth::DB::' . camelize( lc $object );
my $obj = $class->new( dbh => $self->dbh );
return $obj;
}
sub clear_sessions ($self) {
$self->dbh->db->delete(
'corbac_user_sessions' => {
session_started => { '<' => time - $self->session_expires },
});
}
1;
( run in 0.525 second using v1.01-cache-2.11-cpan-0bb4e1dffa6 )