#------------------------------------------------------------
# Copyright (C) 2012 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package RPS::Label::UserList;

use strict;
use warnings;

use lib '/app/tools/appuser/lib';
use lib '/app/tools/common/lib';
use lib '/app/tools/rps/lib';
use AppUser::DB::Item::UserClientLabelMap;
use AppUser::User::User;
use AppUser::DB::Item::User;
use AppUser::DB::Item::AccessLevel;
use Common::RSApp;
use Common::Assert;
use Common::Util;
use Common::FormObject;
use Common::FormObject::List;
use RPS::DB::Item::Label;

use base 'Common::FormObject::List';

sub _itemName { 'User'; }

sub _getCollection {
    my ( $self, %args ) = @_;

    if ( 1 == $args{all} ) {

        # Return all label users from the system.
        #
        return AppUser::DB::Item::User->GetByAccessLevel( AppUser::DB::Item::AccessLevel::kLabelReport() );
    } else {
        my $labelID = $args{labelID};
        return undef unless $labelID;
        return AppUser::DB::Item::UserClientLabelMap->GetAllForClientAndLabel( Common::RSApp::GetClientID(), $labelID );
    }
}

sub _getObj {
    my ( $self, $dbItem ) = @_;

    return AppUser::User::User->new( userID => $dbItem->user_id() );
}

1;

