Gantry

 view release on metacpan or  search on metacpan

lib/Gantry/Control/C/Pages.pm  view on Meta::CPAN

            $param{gw}, 
            $param{gx} ) = dec2bin( eval{ $row->{group_perm} } );
    }
    
    # world permissions
    if ( ( ! defined $param{wr} ) 
            || ( ! defined $param{ww} ) 
            || ( ! defined defined $param{wx} ) ) {
        
        (   $param{wr}, 
            $param{ww}, 
            $param{wx} ) = dec2bin( eval{ $row->{world_perm} } );
    }
    
    my @permissions = (
            ht_table(),
                ht_tr(),
                ht_td( { 'class' => 'shd' }, 'Owner' ),
                ht_td( { 'class' => 'shd' }, 'Group' ),
                ht_td( { 'class' => 'shd' }, 'World' ),
                ht_utr(),

                ht_tr(),
                ht_td( { 'class' => 'dta' },    
                        ht_checkbox( 'ur', 1, $param{ur} ), 'Read', ht_br(),
                        ht_checkbox( 'uw', 1, $param{ux} ), 'Write', ht_br(),
                        ht_checkbox( 'ux', 1, $param{ux} ), 'Execute' ),
                ht_td( { 'class' => 'dta' },    
                        ht_checkbox( 'gr', 1, $param{gr} ), 'Read', ht_br(),
                        ht_checkbox( 'gw', 1, $param{gw} ), 'Write', ht_br(),
                        ht_checkbox( 'gx', 1, $param{gx} ), 'Execute' ),
                ht_td( { 'class' => 'dta' },    
                        ht_checkbox( 'wr', 1, $param{wr} ), 'Read', ht_br(),
                        ht_checkbox( 'ww', 1, $param{ww} ), 'Write', ht_br(),
                        ht_checkbox( 'wx', 1, $param{wx} ), 'Execute' ),
                ht_utr(),
            ht_utable() ,
    );
    
    # push groups to array
    my @group_options;
    foreach ( $AUTH_GROUPS->retrieve_all( { order_by => 'name' } ) ) {
        push( @group_options, {
            label => $_->name,
            value => $_->id,
        });
    }
    
    # push users to array
    my @owner_options;
    foreach ( $AUTH_USERS->retrieve_all(
        { order_by => 'last_name, first_name' } ) ) {
        
        push( @owner_options, {
            label => ( $_->last_name . ", " . $_->first_name ),
            value => $_->id,
        });
    }
        
    my $form =  {
        legend  => $self->path_info =~ /edit/i ? 'Edit' : 'Add',
        width   => "400",
        label_width => '40px',
        row     => $row,
        fields => [
            {   name    => 'uri',
                label   => 'URI',
                type    => 'text',
                is      => 'varchar'
            },
            {   name    => 'title',
                label   => 'Title',
                type        => 'text',
                is      => 'varchar',
            },
            {   name    => 'owner_id',
                label   => 'Owner',
                is      => 'int4',
                type        => 'select',
                options     => \@owner_options
            },          
            {   name        => 'group_id',
                label       => 'Group',
                is          => 'int4',
                type        => 'select',
                options     => \@group_options
            },
            {   html     => join( "\n", @permissions ),
                optional => 1,
                type     => 'html',
                is       => 'varchar',
                label    => 'Permissions',
             }
        ]
    };      
            
    return( $form );
    
} # end form

sub site_links {
    my $self = shift;
    
    return( [
        { link => ($self->app_rootp . '/users'), label => 'Users' },
        { link => ($self->app_rootp . '/groups'), label => 'Groups' },
        { link => ($self->app_rootp . '/pages'), label => 'Pages' },
    ] );       
}

# EOF
1;

__END__

=head1 NAME 

Gantry::Control::C::Pages - Page based control adminstration.

=head1 SYNOPSIS



( run in 1.677 second using v1.01-cache-2.11-cpan-75ffa21a3d4 )