Egg::Model::Auth::API::File - API component to treat attestation data of file base.


Egg-Release-Authorize documentation Contained in the Egg-Release-Authorize distribution.

Index


Code Index:

NAME

Top

Egg::Model::Auth::API::File - API component to treat attestation data of file base.

SYNOPSIS

Top

  package MyApp::Model::Auth::MyAuth;
  ..........

  __PACKAGE__->config(
    file => {
      path           => MyApp->path_to(qw/ etc members /),
      delimiter      => qr{\s*\:\s*},
      fields         => [qw/ user_id password active a_group ..... /],
      id_field       => 'user_id',
      password_field => 'password',
      active_field   => 'active',
      group_field    => 'a_group',
      },
    );

  __PACKAGE__->setup_api('File');

DESCRIPTION

Top

It is API component to treat the attestation data of the file base of Comma Separated Value etc.

The setting of 'file' is added to the configuration to use it and 'File' is set by 'setup_api' method.

CONFIGURATION

Top

Additionally, there is a common configuration to API class.

see Egg::Model::Auth::Base::API.

path

It is passing of the data file.

delimiter

The delimiter to take out the column of each record is set by the regular expression.

Default is '\s*\t\s*'.

fields

After the column is taken out, the name of the key to take the data into HASH is set by the list.

METHODS

Top

myname

Own API label name is returned.

restore_member ([LOGIN_ID])

The data of LOGIN_ID is acquired from the attestation data base, and the HASH reference is returned.

SEE ALSO

Top

Egg::Release, Egg::Model::Auth, Egg::Model::Auth::Base::API, FileHandle,

AUTHOR

Top

Masatoshi Mizuno <lushe&64;cpan.org>

COPYRIGHT AND LICENSE

Top


Egg-Release-Authorize documentation Contained in the Egg-Release-Authorize distribution.

package Egg::Model::Auth::API::File;
#
# Masatoshi Mizuno E<lt>lusheE<64>cpan.orgE<gt>
#
# $Id: File.pm 347 2008-06-14 18:57:53Z lushe $
#
use strict;
use warnings;
use Carp qw/ croak /;
use FileHandle;

our $VERSION= '0.01';

sub myname { 'file' }

sub _setup {
	my($class, $e)= @_;
	my $c= $class->config->{file} ||= {};
	$class->mk_classdata($_) for qw/ columns delimiter path /;
	my $path= $class->path($c->{path})
	         || die q{I want config file-> 'path'.};
	-e $path || die qq{'$path' is not found.};
	my $fields= $class->columns($c->{fields})
	         || die q{I want config file-> 'fields'.};
	ref($fields) eq 'ARRAY'
	         || die q{I want set file-> 'fields' with ARRAY.};
	$class->delimiter($c->{delimiter} || qr{\s*\t\s*});
	$class->_setup_filed($c);
	$class->next::method($e);
}
sub restore_member {
	my $self= shift;
	my $id  = shift || croak __PACKAGE__. ' - I want user id.';
	my $fh  = FileHandle->new($self->path)
	        || die ref($self). " - $! [@{[ $self->path ]}]";
	my($id_col, $colmuns, $delimiter)=
	        ($self->id_col, $self->columns, $self->delimiter);
	for ($fh->getlines) {
		next if (! $_ or /^#/);
		chomp; my %col;
		@col{@$colmuns}= split /$delimiter/;
		my $user= $col{$id_col} || next;
		return $self->_restore_result(\%col) if $user eq $id;
	}
	return 0;
}

1;

__END__