use Moose;
with qw(KiokuX::User);
-## 'id' provided by KiokuX::User stores our username
+## 'id' provided by KiokuX::User stores our username (email for local users, openid url for openid/google)
has 'password' => (is => 'rw', required => 1);
+has 'email' => (is => 'rw', lazy => 1, builder => '_build_email');
## Change this default active value if you want/need to have an admin confirm a user after they self-create.
has 'active' => (is => 'rw', default => sub { 1; });
+has 'role' => (is => 'rw', default => sub { 'user' });
# 'traits' => ['Array'] ?
# https://metacpan.org/module/Moose::Meta::Attribute::Native::Trait::Array
has 'traditions' => (is => 'rw',
unless $tradition->has_user && $tradition->user->id eq $self->id;
};
+sub _build_email {
+ my ($self) = @_;
+
+ ## no email set, so use username/id
+ return $self->id;
+}
+
sub remove_tradition {
my ($self, $tradition) = @_;
## FIXME: Is "name" a good unique field to compare traditions on?
my @traditions = @{$self->traditions};
- @traditions = grep { $tradition->name ne $_->name } @traditions;
+ @traditions = grep { $tradition != $_ } @traditions;
$tradition->clear_user;
$self->traditions(\@traditions);
}
+sub is_admin {
+ my ($self) = @_;
+
+ return $self->role && $self->role eq 'admin';
+}
+
1;
=head1 NAME