NAME

Data::Login - Data object for login.

SYNOPSIS

use Data::Login;

my $obj = Data::Login->new(%params);
my $hash_type = $obj->hash_type;
my $id = $obj->id;
my $login_name = $obj->login_name;
my $password_hash = $obj->password_hash;
my $roles_ar = $obj->roles;

METHODS

new

my $obj = Data::Login->new(%params);

Constructor.

  • hash_type

    Hash type object. Possible value is Data::HashType object. Parameter is required. Default value is undef.

  • id

    Id of record. Id could be number. It's optional. Default value is undef.

  • login_name

    Login name. Maximal length of value is 50 characters. It's required.

  • password_hash

    Password hash. Maximal length of value is 128 characters. It's required.

  • roles

    Login roles list. Possible value is reference to array with Data::Login::Role objects. Parameter is optional. Default value is [].

Returns instance of object.

hash_type

my $hash_type = $obj->hash_type;

Get hash type.

Returns 0/1.

id

my $id = $obj->id;

Get hash type record id.

Returns number.

login_name

my $login_name = $obj->login_name;

Get login name.

Returns string.

password_hash

my $password_hash = $obj->password_hash;;

Get password hash.

Returns string.

roles

my $roles_ar = $obj->roles;

Get roles.

Returns reference to array with Data::Login::Role objects.

ERRORS

new():
        Parameter 'hash_type' is required.
        Parameter 'hash_type' must be a 'Data::HashType' object.
                Value: %s
                Reference: %s
        Parameter 'id' must be a number.
                Value: %s
        Parameter 'login_name' has length greater than '50'.
                Value: %s
        Parameter 'login_name' is required.
        Parameter 'password_hash' has length greater than '128'.
                Value: %s
        Parameter 'password_hash' is required.
        Parameter 'roles' must be a array.
                Value: %s
                Reference: %s
        Roles isn't 'Data::Login::Role' object.
                Value: %s
                Reference: %s

EXAMPLE

use strict;
use warnings;

use Data::HashType;
use Data::Login;
use Data::Login::Role;

my $obj = Data::Login->new(
        'hash_type' => Data::HashType->new(
                'active' => 1,
                'id' => 1,
                'name' => 'SHA-512',
        ),
        'id' => 2,
        'login_name' => 'michal.josef.spacek',
        'password_hash' => '24ea354ebd9198257b8837fd334ac91663bf52c05658eae3c9e6ad0c87c659c62e43a2e1e5a1e573962da69c523bf1f680c70aedd748cd2b71a6d3dbe42ae972',
        'roles' => [
                Data::Login::Role->new(
                        'active' => 1,
                        'id' => 1,
                        'role' => 'Admin',
                ),
                Data::Login::Role->new(
                        'active' => 1,
                        'id' => 2,
                        'role' => 'User',
                ),
                Data::Login::Role->new(
                        'active' => 0,
                        'id' => 3,
                        'role' => 'Bad',
                ),
        ],
);

# Print out.
print 'Hash type: '.$obj->hash_type->name."\n";
print 'Id: '.$obj->id."\n";
print 'Login name: '.$obj->login_name."\n";
print 'Password hash: '.$obj->password_hash."\n";
print "Active roles:\n";
print join "\n", map { $_->active ? ' - '.$_->role : () } @{$obj->roles};
print "\n";

# Output:
# Hash type: SHA-512
# Id: 2
# Login name: michal.josef.spacek
# Password hash: 24ea354ebd9198257b8837fd334ac91663bf52c05658eae3c9e6ad0c87c659c62e43a2e1e5a1e573962da69c523bf1f680c70aedd748cd2b71a6d3dbe42ae972
# Active roles:
#  - Admin
#  - User

DEPENDENCIES

Mo, Mo::utils.

REPOSITORY

https://github.com/michal-josef-spacek/Data-Login

AUTHOR

Michal Josef Špaček mailto:skim@cpan.org

http://skim.cz

LICENSE AND COPYRIGHT

© 2023-2024 Michal Josef Špaček

BSD 2-Clause License

VERSION

0.02