#!/usr/bin/perl

#use utf8;
use strict;
use CGI;
use JSON;

use Opals::Context; 
use Opals::Template qw(
    tmpl_rangedPageList
    tmpl_read
    tmpl_write
);

use Opals::Permission qw(
    permission_getList
    permission_getCustomPermList
);
use Opals::User qw(
    user_currentUser
    user_permission
);

my $dbh = Opals::Context->dbh();
END { $dbh->disconnect(); }

my $cgi = CGI->new;
my $input = $cgi->Vars();
my $op = $input->{'op'};
my ($permission, $cookie, $template) = tmpl_read(
        {
            dbh             => $dbh,
            cgi             => $cgi,
            tmplFile        => 'util/brwrtype.tmpl',
            reqPermission   => 'pref_edit',
        }
);

($op) || ($op = 'view');

    my $userList        =getUserList($dbh);   
    my $userListJson    = to_json($userList, { pretty => 1});
    my $pList           = permission_getList($dbh);
    my $pCustomList     = permission_getCustomPermList($dbh);

    my ($errCode, $cookie_session, $user) = user_currentUser($dbh, $cgi);
    my $permission = user_permission($dbh, $user->{'uid'});
    foreach my $e(@$pList){
        foreach my $g(@{$e->{'group'}}){
            my $plist=[];
            foreach my $p(@{$g->{'permission'}}){
                if($permission->{$p->{'pCode'}}){
                    push @$plist,$p;
                }
            }
            #$g->{'permission'}=$plist;
        }
    }


    my $pListJson       = to_json($pList, { pretty => 1});
    my $pCustomListJson = to_json($pCustomList, { pretty => 1});

    $template->param(ViewUser => 1);
    $template->param(userList => $userListJson);
    $template->param(pList => $pListJson);
    $template->param(pCustomList => $pCustomListJson);
    $template->param(hlpUrl     => Opals::Constant->getHlpUrl('brwrtype') );
    

    tmpl_write($dbh, $cgi, $cookie, $template);
################################################################################

sub getUserList {
    my ($dbh) = @_;
    my $query = $dbh->prepare("select c.*,count(u.categorycode) totaluser 
                               from   opl_category c left outer join opl_user u on c.catid=u.categorycode 
                               group  by catid order by catname");
    $query->execute();
    my @arrUser = ();
    while (my $rec = $query->fetchrow_hashref) {
        push @arrUser,$rec;
    }
    $query->finish;
    return \@arrUser;
}
########################################


