True,
'add_sector' => True,
'validate_data_sectors_add' => True,
'edit_sector' => True,
'validate_data_sectors_edit' => True,
'delete_sector' => True,
'css' => True,
'view_cota' => True
);
var $bo;
var $nextmatchs;
var $functions;
function uisectors()
{
$this->bo = CreateObject('expressoAdmin1_2.bosectors');
$this->so = $this->bo->so;
$this->functions = $this->bo->functions;
$this->nextmatchs = createobject('phpgwapi.nextmatchs');
}
function list_sectors()
{
$manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
$acl = $this->functions->read_acl($manager_lid);
$contexts = $acl['contexts'];
foreach ($acl['contexts_display'] as $index=>$tmp_context)
{
$context_display .= '
'.$tmp_context;
}
// Verifica se o administrador tem acesso.
if (!$this->functions->check_acl($manager_lid,'list_sectors'))
{
$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
}
//unset($GLOBALS['phpgw_info']['flags']['noheader']);
//unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Sectors');
//$GLOBALS['phpgw']->common->phpgw_header();
$p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
$p->set_file(array('sectors' => 'sectors.tpl'));
$p->set_block('sectors','list','list');
$p->set_block('sectors','row','row');
$p->set_block('sectors','row_empty','row_empty');
//$sectors_info = $this->functions->get_sectors_list($contexts);
$sectors_info = $this->functions->get_organizations2($contexts);
$var = Array(
'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'],
'back_url' => $GLOBALS['phpgw']->link('/expressoAdmin1_2/index.php'),
'context_display' => $context_display,
'lang_inactives' => lang('list inactives'),
'lang_ver_cota' => lang('view cota')
);
$p->set_var($var);
$p->set_var($this->functions->make_dinamic_lang($p, 'list'));
if (!count($sectors_info))
{
$p->set_var('message',lang('No matches found'));
$p->parse('rows','row_empty',True);
}
else
{
if ($this->functions->check_acl($manager_lid,'edit_sectors'))
{
$can_edit = True;
}
if ($this->functions->check_acl($manager_lid,'delete_sectors'))
{
$can_delete = True;
}
foreach($sectors_info as $context=>$sector)
{
$tr_color = $this->nextmatchs->alternate_row_color($tr_color);
$var = Array(
'tr_color' => $tr_color,
'sector_name' => $sector['display'],
'cota_link' => $this->row_action('view','cota',$sector['dn']),
'add_link' => $this->row_action('add','sector',$sector['dn'])
);
if(isset($GLOBALS['phpgw_info']['server']['time_to_account_expires']))
$var['inactives_link'] = $this->row_action('list_inactive','users',$sector['dn'],'uiaccounts');
else
$var['inactives_link'] = lang('disabled');
$p->set_var($var);
if ($can_edit)
{
$p->set_var('edit_link',$this->row_action('edit','sector',$sector['dn']));
}
else
{
$p->set_var('edit_link',' ');
}
if ($can_delete)
{
$p->set_var('delete_link',$this->row_action('delete','sector',$sector['dn']));
}
else
{
$p->set_var('delete_link',' ');
}
$p->fp('rows','row',True);
}
}
$var = Array(
'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.add_sector')
);
$p->set_var($var);
$p->set_var('input_add','');
$p->parse('rows','row_empty',True);
$p->pfp('out','list');
}
function add_sector($context='')
{
$manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
$acl = $this->functions->read_acl($manager_lid);
$manager_contexts = $acl['contexts'];
$combo_manager_org = '';
if ( array_key_exists( 'context', $_GET ) )
{
$context = $_GET['context'];
$combo_manager_org = $this->functions->get_organizations( $context, '', true, true, true );
}
else
{
foreach ($manager_contexts as $index=>$context)
$combo_manager_org .= $this->functions->get_organizations( $context );
}
// Verifica se tem acesso a este modulo
if (!$this->functions->check_acl($manager_lid,'create_sectors'))
{
$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
}
//unset($GLOBALS['phpgw_info']['flags']['noheader']);
//unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Create Sector');
//$GLOBALS['phpgw']->common->phpgw_header();
// Set o template
$p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
$p->set_file(Array('create_sector' => 'sectors_form.tpl'));
$p->set_block('create_sector','list','list');
// Seta variaveis utilizadas pelo tpl.
$var = Array(
'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.validate_data_sectors_add'),
'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors'),
'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'],
'context' => $context == '' ? $GLOBALS['phpgw_info']['server']['ldap_context'] : $context,
'sector' => $_POST['sector'],
'associated_domain' => $_POST['associated_domain'],
'disk_quota' => $_POST['disk_quota'],
'users_quota' => $_POST['users_quota'],
'manager_org' => $combo_manager_org,
'sector_visible_checked'=> $_POST['sector_visible'] ? 'checked' : '',
'error_messages' => $_POST['error_messages'] == '' ? '' : "",
);
if($this->functions->db_functions->use_cota_control()) {
$var["open_comment_cotas"] = "";
$var["close_comment_cotas"] ="";
}
else {
$var["open_comment_cotas"] = "";
}
$p->set_var($var);
$p->set_var($this->functions->make_dinamic_lang($p, 'list'));
$p->pfp('out','create_sector');
}
function edit_sector()
{
$account_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
$acl = $this->functions->read_acl($account_lid);
$manager_context = $acl[0]['context'];
$context = $_GET['context'];
$combo_manager_org = $this->functions->get_organizations($_GET['context'], '', true, true, true);
$combo_manager_org = substr( $combo_manager_org, 0, ( strpos($combo_manager_org, '') + 9 ) );
$a_tmp = explode(",", ldap_dn2ufn($context));
$sector_name = $a_tmp[0];
// Verifica se tem acesso a este modulo
if (!$this->functions->check_acl($account_lid,'edit_sectors'))
{
$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
}
//unset($GLOBALS['phpgw_info']['flags']['noheader']);
//unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Edit Sector');
//$GLOBALS['phpgw']->common->phpgw_header();
// Set o template
$p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
$p->set_file(Array('edit_sector' => 'sectors_form.tpl'));
$p->set_block('edit_sector','list','list');
if (!$_POST)
{
$sector_info = $this->so->get_info($context);
$sector_disk_quota = $sector_info[0]['diskquota'][0];
$sector_users_quota = $sector_info[0]['usersquota'][0];
$sector_associated_domain = $sector_info[0]['associateddomain'][0];
$_POST['sector_visible'] = $sector_info[0]['phpgwaccountvisible'][0];
}
// Seta variaveis utilizadas pelo tpl.
$var = Array(
'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.bosectors.save_sector'),
'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors'),
'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'],
'context' => $context == '' ? $manager_context : $context,
'sector' => $_POST['sector'] == '' ? $sector_name : $_POST['sector'],
'manager_org' => $combo_manager_org,
'sector_visible_checked'=> $_POST['sector_visible'] ? 'checked' : '',
'associated_domain' => $_POST['associated_domain'] == '' ? $sector_associated_domain : $_POST['associated_domain'],
'disk_quota' => $_POST['disk_quota'] == '' ? $sector_disk_quota : $_POST['disk_quota'],
'users_quota' => $_POST['users_quota'] == '' ? $sector_users_quota : $_POST['users_quota'],
'lang_add' => lang('Add'),
'disable' => 'disabled',
'error_messages' => $_POST['error_messages'] == '' ? '' : "",
'lang_disk_quota' => lang('disk quota'),
'lang_users_quota' => lang('users quota')
);
if($this->functions->db_functions->use_cota_control()) {
$var["open_comment_cotas"] = "";
$var["close_comment_cotas"] ="";
}
else {
$var["open_comment_cotas"] = "";
}
$p->set_var($var);
$p->set_var($this->functions->make_dinamic_lang($p, 'list'));
$p->pfp('out','edit_sector');
}
function view_cota()
{
$context = $_GET['context'];
$a_tmp = explode(",", ldap_dn2ufn($context));
$sector_name = $a_tmp[0];
if($this->functions->db_functions->use_cota_control()) {
$sector_info = $this->so->get_info($context);
$sector_disk_cota = $sector_info[0]['diskquota'][0];
$sector_users_cota = $sector_info[0]['usersquota'][0];
}
else {
$sector_disk_cota = lang('cotas control disabled');
$sector_users_cota = lang('cotas control disabled');
}
//unset($GLOBALS['phpgw_info']['flags']['noheader']);
//unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Edit Sector');
//$GLOBALS['phpgw']->common->phpgw_header();
// Set o template
$p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
$p->set_file(Array('ver_cota' => 'sectors_cota.tpl'));
// Seta variaveis utilizadas pelo tpl.
$var = Array(
'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors'),
'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'],
'context' => $context,
'sector' => $sector_name,
'disk_cota' => $sector_disk_cota,
'users_cota' => $sector_users_cota,
'actual_users' => $this->functions->get_num_users($context),
'actual_disk' => round($this->functions->get_actual_disk_usage($context),2),
'lang_back' => lang('Back'),
'lang_context' => lang('Context'),
'lang_sector_name' => lang('Sector name'),
'lang_disk_cota' => lang('disk usage cota'),
'lang_users_cota' => lang('user number cota'),
'lang_user_number' => lang('user number'),
'lang_disk_used' => lang('disk usage'),
'error_messages' => $_POST['error_messages'] == '' ? '' : "",
);
$p->set_var($var);
$p->pfp('out','ver_cota');
}
function validate_data_sectors_add()
{
$sector_name = $_POST['sector'];
$context = $_POST['context'];
// Verifica se o nome do sector nao esta vazio.
if ($sector_name == '')
{
$_POST['error_messages'] = lang('Sector name is empty.');
ExecMethod('expressoAdmin1_2.uisectors.add_sector');
return;
}
// Verifica se o nome do setor existe no contexto atual.
if ($this->so->exist_sector_name($sector_name, $context))
{
$_POST['error_messages'] = lang('Sector name already exist.');
ExecMethod('expressoAdmin1_2.uisectors.add_sector');
return;
}
ExecMethod('expressoAdmin1_2.bosectors.create_sector');
}
function delete_sector()
{
$account_lid = $GLOBALS['phpgw']->accounts->data['account_lid'];
$acl = $this->functions->read_acl($account_lid);
$manager_context = $acl[0]['context'];
// Verifica se tem acesso a este modulo
if (!$this->functions->check_acl($account_lid,'delete_sectors'))
{
$GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php'));
}
//unset($GLOBALS['phpgw_info']['flags']['noheader']);
//unset($GLOBALS['phpgw_info']['flags']['nonavbar']);
$GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Delete Sectors');
//$GLOBALS['phpgw']->common->phpgw_header();
// Set o template
$p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL);
$p->set_file(Array('delete_sector' => 'sectors_delete.tpl'));
$p->set_block('delete_sector','list','list');
$tmp_sector_name = $_GET['context'];
$tmp_sector_name = explode(",",$tmp_sector_name);
$tmp_sector_name = $tmp_sector_name[0];
$tmp_sector_name = explode("=", $tmp_sector_name);
$sector_name = $tmp_sector_name[1];
// Get users of sector
$sector_users = $this->so->get_sector_users($_GET['context']);
$sector_groups = $this->so->get_sector_groups($_GET['context']);
$sector_subsectors = $this->so->get_sector_subsectors($_GET['context']);
$users_list = '';
foreach ($sector_users as $user)
{
$users_list .= $user['cn'][0] . '
';
}
$groups_list = '';
foreach ($sector_groups as $group)
{
$groups_list .= $group['cn'][0] . '
';
}
$subsectors_list = '';
foreach ($sector_subsectors as $subsector)
{
if ($subsector['dn'] != $_GET['context'])
$subsectors_list .= $subsector['ou'][0] . '
';
}
// Seta variaveis utilizadas pelo tpl.
$var = Array(
'color_bg1' => "#E8F0F0",
'manager_context' => $manager_context,
'dn' => $_GET['context'],
'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors'),
'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.bosectors.delete_sector'),
'sector_name' => $sector_name,
'users_list' => $users_list,
'groups_list' => $groups_list,
'sectors_list' => $subsectors_list
);
$p->set_var($var);
$p->set_var($this->functions->make_dinamic_lang($p, 'list'));
$p->pfp('out','delete_sector');
}
function row_action($action,$type,$context,$class='uisectors')
{
return ' '.lang($action).' ';
}
function css()
{
$appCSS = '';
return $appCSS;
}
}
?>