#------------------------------------------------------------
# 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;

