package LIMS::Controller::Roles::User;
use Moose::Role;
has lab_staff => (
is => 'ro',
isa => 'ArrayRef[HashRef]',
traits => ['Array'],
default => sub { [] },
handles => {
add_lab_staff_user => 'push',
},
);
sub get_lab_staff_users {
my $self = shift;
my $users = $self->model('User')->get_all_users({sort_by => 'username'});
my $lab_name
= $self->cfg('settings')->{lab_name_abbreviation}; # warn $lab_name;
while ( my $user = $users->next ) {
next unless $user->active eq 'yes'
&& $user->user_location->location_name eq $lab_name;
my %user = (
id => $user->id,
username => $user->username,
);
$self->add_lab_staff_user(\%user);
} # $self->debug($self->lab_staff);
return $self->lab_staff;
}
#-------------------------------------------------------------------------------
sub generate_new_password {
my $self = shift;
srand;
my @chars = ('a' .. 'z', 'A' .. 'Z', 0 .. 9 );
my $new_password;
for (1 .. 10) {
my $rand = int(rand @chars);
$new_password .= $chars[$rand];
}
return $new_password;
}
1;