OpenFrame::WebApp::Segment::User::Loader - abstract segment to load users.


OpenFrame-WebApp documentation Contained in the OpenFrame-WebApp distribution.

Index


Code Index:

NAME

Top

OpenFrame::WebApp::Segment::User::Loader - abstract segment to load users.

SYNOPSIS

Top

  # abstract class - cannot be used directly

  use Pipeline;
  use OpenFrame::WebApp;

  my $pipe = new Pipeline;

  my $ufactory = new OpenFrame::WebApp::User::Factory()->type('webapp');
  $pipe->store->set( $ufactory );

  # abstract - must use a sub-class:
  my $uloader = new OpenFrame::WebApp::Segment::User::EnvLoader;
  $pipe->add_segment( $uloader );

  ...

  $pipe->dispatch;

DESCRIPTION

Top

The OpenFrame::WebApp::Segment::User::Loader class is an abstract user loading segment. It inherits its interface from Pipeline::Segment.

On dispatch() if a user id is found a new user is created using the Pipeline's stored OpenFrame::WebApp::User::Factory.

METHODS

Top

$user = $obj->dispatch()

dispatch this segment.

$user = $obj->get_user()

finds user id, and uses stored OpenFrame::WebApp::User::Factory to create a new user and set it's id.

$id = $obj->find_user_id()

abstract method to find user id.

AUTHOR

Top

Steve Purkis <spurkis@epn.nu>

COPYRIGHT

Top

SEE ALSO

Top

OpenFrame::WebApp::User, OpenFrame::WebApp::User::Factory


OpenFrame-WebApp documentation Contained in the OpenFrame-WebApp distribution.
package OpenFrame::WebApp::Segment::User::Loader;

use strict;
use warnings::register;

use OpenFrame::WebApp::Error::Abstract;

our $VERSION = (split(/ /, '$Revision: 1.2 $'))[1];

use base qw( Pipeline::Segment );

sub dispatch {
    my $self = shift;
    return $self->get_user();
}

sub get_user {
    my $self = shift;
    my $user;

    if (my $id = $self->find_user_id) {
	my $ufactory = $self->store->get('OpenFrame::WebApp::User::Factory');
	$user = $ufactory->new_user()->id( $id );
    }

    return $user;
}

sub find_user_id {
    my $self = shift;
    throw OpenFrame::WebApp::Error::Abstract( class => ref($self) );
}


1;

__END__