NAME

PlugAuth::Role::Auth - Role for PlugAuth authentication plugins

VERSION

version 0.39

SYNOPSIS

 package PlugAuth::Plugin::MyAuth;
 
 use Role::Tiny::With;
 
 with 'PlugAuth::Role::Plugin';
 with 'PlugAuth::Role::Auth';
 
 # accept user = larry and pass = wall only.
 sub check_credentials {
   my($self, $user, $pass) = @_;
   return 1 if $user eq 'larry' && $pass eq 'wall';
   return $self->deligate_check_credentials($user, $pass);
 }
 
 # only one user, larry
 sub all_users { qw( larry ) }
 
 1;

DESCRIPTION

Use this role when writing PlugAuth plugins that manage authentication (ie. determine the identify of the user).

REQUIRED ABSTRACT METHODS

These methods must be implemented by your class.

$plugin->check_credentials( $user, $pass )

Return 1 if the password is correct for the given user.

Return 0 otherwise.

OPTIONAL ABSTRACT METHODS

These methods may be implemented by your class.

$plugin->all_users

Returns the list of all users known to your plugin. If this cannot be determined, then return an empty list.

$plugin->create_user( $user, $password )

Create the given user with the given password. Return 1 on success, return 0 on failure.

$plugin->create_user_cb( $user, $password, $cb )

Create user with call back. This works like create_user, but it calls the callback while your plugin still has a lock on the user database (if applicable). If this method is implemented, then PlugAuth can create users who belong to specific groups as one atomic action. If you do not implement this method then the server will return 501 Not Implemented.

$plugin->change_password( $user, $password )

Change the password of the given user. Return 1 on success, return 0 on failure.

$plugin->delete_user( $user )

Delete the given user. Return 1 on success, return 0 on failure.

METHODS

$plugin->next_auth

Returns the next authentication plugin. May be undef if there is no next authentication plugin.

$plugin->deligate_check_credentials( $user, $pass )

Delegate to the next authentication plugin. Call this method if your plugins authentication has failed if your plugin is not authoritative.

SEE ALSO

PlugAuth, PlugAuth::Guide::Plugin, Test::PlugAuth::Plugin::Auth

AUTHOR

Graham Ollis <gollis@sesda3.com>

COPYRIGHT AND LICENSE

This software is copyright (c) 2012 by NASA GSFC.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.