#------------------------------------------------------------
# Copyright (C) 2006 RoyaltyShare, Inc.   All Rights Reserved
# $Id$
#------------------------------------------------------------
package Admin::Permission::Form;

use strict;
use warnings;

use lib '/app/tools/common/lib';
use Common::Assert;
use Common::DB::Item::Permission;

use lib '/app/tools/admin/lib';

#use Admin::Permission::PermissionList;
use Admin::Permission::PermissionHash;
use Admin::Permission::AccessLevelList;

use lib '/app/tools/rps/lib';

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

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

    $self->SUPER::_init(%args);

    #    $self->{PermissionList} = Admin::Permission::PermissionList->new
    $self->{PermissionList} = Admin::Permission::PermissionHash->new(
        app         => $args{app},
        area        => $args{area},
        command     => $args{command},
        accessLevel => $args{accessLevel},
        sortBy      => $args{sortBy},
        skipAdmin   => 1,
    );

    # We want to spew forth the list of access level ids and names.
    # This is not editable... just something for the template to chew on.
    #
    $self->{AccessLevelList} = Admin::Permission::AccessLevelList->new();

    my @apps     = Common::DB::Item::Permission->GetApplications();
    my @areas    = Common::DB::Item::Permission->GetAreas();
    my @commands = Common::DB::Item::Permission->GetCommands();

    $self->{ApplicationList}{Application} = \@apps;
    $self->{AreaList}{Area}               = \@areas;
    $self->{CommandList}{Command}         = \@commands;

    return $self;
}

sub validate {
    my ($self) = @_;

    my $valid = $self->{PermissionList}->validate();

    return $valid;
}

sub save {
    my ($self) = @_;

    $self->{PermissionList}->save();
}

###
1;    #
###

