| KiokuX-User documentation | Contained in the KiokuX-User distribution. |
KiokuX::User::ID - KiokuDB::Role::ID integration for user objects
with qw(KiokuX::User::ID);
This role provides an id attribute for user objects, and self registers in
the KiokuDB directory with the object ID user:$user_id.
Using this role implies that user IDs are immutable.
Implements the required method from KiokuX::User::ID by prefixing the id
attribute with user:.
Mangles the username into an ID by prefixing the string user:.
Can be overriden to provide custom namespacing.
Can also be used as a class method from the model:
sub get_identity_by_username {
my ( $self, $username ) = @_;
my $object_id = MyFoo::Schema::Identity::Username->id_for_user($username);
return $self->lookup($object_id);
}
This is the user's ID in the system. It is not the object ID, but the object ID is derived from it.
| KiokuX-User documentation | Contained in the KiokuX-User distribution. |
#!/usr/bin/perl package KiokuX::User::ID; use MooseX::Role::Parameterized; use namespace::clean -except => 'meta'; parameter id_attribute => ( isa => 'Str', default => 'id', ); parameter user_prefix => ( isa => 'Str', default => 'user:', ); role { my ($p) = @_; my $id_attr = $p->id_attribute; my $user_prefix = $p->user_prefix; with qw(KiokuDB::Role::ID); method id_for_user => sub { my ( $self, $id ) = @_; return $user_prefix . $id; }; method kiokudb_object_id => sub { my $self = shift; $self->id_for_user($self->$id_attr); }; has $id_attr => ( isa => "Str", is => "ro", required => 1, ); }; __PACKAGE__ __END__
# ex: set sw=4 et: