True, 'add_maillists' => True, 'edit_maillists' => True, 'scl_maillists' => True, 'css' => True ); var $nextmatchs; var $functions; function uimaillists() { $this->maillist = CreateObject('expressoAdmin1_2.maillist'); $this->functions = CreateObject('expressoAdmin1_2.functions'); $this->nextmatchs = CreateObject('phpgwapi.nextmatchs'); $c = CreateObject('phpgwapi.config','expressoAdmin1_2'); $c->read_repository(); $this->current_config = $c->config_data; if(!@is_object($GLOBALS['phpgw']->js)) { $GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript'); } $GLOBALS['phpgw']->js->validate_file('jscode','connector','expressoAdmin1_2');#diretorio, arquivo.js, aplicacao $GLOBALS['phpgw']->js->validate_file('jscode','expressoadmin','expressoAdmin1_2'); $GLOBALS['phpgw']->js->validate_file('jscode','maillists','expressoAdmin1_2'); } function list_maillists() { $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $manager_acl = $this->functions->read_acl($manager_lid); $manager_contexts = $manager_acl['contexts']; foreach ($manager_acl['contexts_display'] as $index=>$tmp_context) { $context_display .= '
'.$tmp_context; } // Verifica se tem acesso a este modulo if (!$this->functions->check_acl($manager_lid,'list_maillists')) { $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); } if(isset($_POST['query'])) { // limit query to limit characters if(eregi('^[a-z_0-9_%-].+$',$_POST['query'])) $GLOBALS['query'] = $_POST['query']; } 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('E-mail lists'); $GLOBALS['phpgw']->common->phpgw_header(); $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $p->set_file(array('maillists' => 'maillists.tpl')); $p->set_block('maillists','list','list'); $p->set_block('maillists','row','row'); $p->set_block('maillists','row_empty','row_empty'); // Seta as variaveis padroes. $var = Array( 'add_action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.add_maillists'), 'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'], 'back_url' => $GLOBALS['phpgw']->link('/expressoAdmin1_2/index.php'), 'add_email_lists_disabled' => $this->functions->check_acl($manager_lid,'add_maillists') ? '' : 'disabled', 'context_display' => $context_display, 'lang_email_lists_uid' => lang('E-mail list names'), 'lang_email_lists_names' => lang('E-mail list descriptions'), 'lang_add_email_lists' => lang('Create e-mail list'), 'lang_edit' => lang('Edit'), 'lang_scl' => lang('SCL'), 'lang_delete' => lang('Delete'), 'lang_view' => lang('View'), 'lang_back' => lang('Back'), 'lang_context' => lang('Context'), 'lang_email' => lang('E-mail'), 'lang_delete_list' => lang('Delete e-mail list?'), 'lang_delete_list_success' => lang('E-mail list successfully deleted!'), 'lang_search' => lang('Search') ); $p->set_var($var); // Save query $p->set_var('query', $GLOBALS['query']); //Admin make a search if ($GLOBALS['query'] != '') { $maillists_info = $this->functions->get_list('maillists', $GLOBALS['query'], $manager_contexts); } if (!count($maillists_info) && $GLOBALS['query'] != '') { $p->set_var('message',lang('No matches found')); } else if (count($maillists_info)) { if ($this->functions->check_acl($manager_lid,'edit_maillists')) { $can_edit = True; } if ($this->functions->check_acl($manager_lid,'delete_maillists')) { $can_delete = True; } if ($this->functions->check_acl($manager_lid,'edit_scl_email_lists')) { $can_edit_scl = True; } foreach($maillists_info as $maillist) { $tr_color = $this->nextmatchs->alternate_row_color($tr_color); $var = array( 'tr_color' => $tr_color, 'row_uid' => $maillist['uid'], 'row_name' => $maillist['name'], 'row_email' => $maillist['email'] ); $p->set_var($var); if ($can_edit) { $p->set_var('edit_link',$this->row_action('edit','maillists',$maillist['uidnumber'],$maillist['uid'])); } else { $p->set_var('edit_link',' '); } if ($can_edit_scl) { $p->set_var('scl_link',$this->row_action('scl','maillists',$maillist['uidnumber'],$maillist['uid'])); } else { $p->set_var('scl_link',' '); } if ($can_delete) { $p->set_var('delete_link',"".lang('Delete').""); } else $p->set_var('delete_link',' '); $p->fp('rows','row',True); } } $p->parse('rows','row_empty',True); $p->set_var($var); $p->pfp('out','list'); } function add_maillists() { $GLOBALS['phpgw']->js->set_onload('get_available_users(document.forms[0].org_context.value, document.forms[0].ea_check_allUsers.checked);'); $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $manager_acl = $this->functions->read_acl($manager_lid); $manager_contexts = $manager_acl['contexts']; // Verifica se tem acesso a este modulo if (!$this->functions->check_acl($manager_lid,'add_maillists')) { $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 e-mail list'); $GLOBALS['phpgw']->common->phpgw_header(); // Set o template $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $p->set_file(Array('create_maillist' => 'maillists_form.tpl')); // Obtem combos das organizações. foreach ($manager_contexts as $index=>$context) $combo_manager_org .= $this->functions->get_organizations($context); $combo_all_orgs = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], '', true, true, true); // Seta variaveis utilizadas pelo tpl. $var = Array( 'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'), 'color_bg1' => "#E8F0F0", 'color_bg2' => "#D3DCE3", 'type' => 'create_maillist', 'ldap_context' => $GLOBALS['phpgw_info']['server']['ldap_context'], 'accountStatus_checked' => 'CHECKED', 'restrictionsOnEmailLists' => $this->current_config['expressoAdmin_restrictionsOnEmailLists'], 'combo_manager_org' => $combo_manager_org, 'combo_all_orgs' => $combo_all_orgs, 'defaultDomain' => $this->current_config['expressoAdmin_defaultDomain'], 'combo_org' => $sectors, 'lang_back' => lang('Back'), 'lang_save' => lang('Save'), 'lang_maillist_organization' => lang('E-mail list organization'), 'lang_search_organization' => lang('Search organization'), 'lang_search_user' => lang('Search user'), 'lang_users' => lang('Users'), 'lang_organizations' => lang('Organizations'), 'lang_maillist_uid' => lang('E-mail list login'), 'lang_maillist_mail' => lang('E-mail list address'), 'lang_maillist_name' => lang('E-mail list name'), 'lang_maillist_users' => lang('E-mail list users'), 'lang_add_user' => lang('Add User'), 'lang_rem_user' => lang('Remove User'), 'lang_all_users' => lang('Show users from all sub-organizations'), 'login_field_has_spaces' => lang('Login field has spaces'), 'list_email_field_is_empty' => lang('E-mail list address field is empty'), 'lang_list_name_field_is_empty' => lang('E-mail list name is empty'), 'no_user_is_part_of_the_list' => lang('No user is member of the list!'), 'email_list_successfully_created' => lang('E-mail list successfully created!'), 'field_email_is_invalid' => lang('E-mail list address is invalid'), 'lang_email_list_empty' => lang('The e-mail list is empty'), 'lang_hide_email_list' => lang('Hide e-mail list'), 'it_is_not_possible_select_users' => lang('It is impossible to create an e-mail list with all organization users'), 'login_field_incomplete' => lang("The lists' name field is incomplete. The lists' name must be in the following format: lista-organization-name. Ex: lista-celepar-rh") ); $p->set_var($var); $p->pfp('out','create_maillist'); } function edit_maillists() { $GLOBALS['phpgw']->js->set_onload('get_available_users(document.forms[0].org_context.value, document.forms[0].ea_check_allUsers.checked);'); $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $manager_acl = $this->functions->read_acl($manager_lid); $manager_contexts = $manager_acl['contexts']; // Verifica se tem acesso a este modulo if (!$this->functions->check_acl($manager_lid,'edit_maillists')) { $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); } // GET all infomations about the group. $maillist_info = $this->maillist->get_info($_GET['uidnumber']); 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 e-mail list'); $GLOBALS['phpgw']->common->phpgw_header(); // Set o template $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $p->set_file(Array('edit_maillist' => 'maillists_form.tpl')); // Obtem combos das organizações. foreach ($manager_contexts as $index=>$context) $combo_manager_org .= $this->functions->get_organizations($context, trim(strtolower($maillist_info['context']))); $combo_all_orgs = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], trim(strtolower($maillist_info['context'])), true, true, true); // Usuarios da lista. $user_count = 0; if (count($maillist_info['mailForwardingAddress_info']) > 0) { foreach ($maillist_info['mailForwardingAddress_info'] as $mail=>$userinfo) { $array_users[$mail] = $userinfo['cn']; $array_users_uid[$mail] = $userinfo['uid']; $array_users_type[$mail] = $userinfo['type']; } natcasesort($array_users); foreach ($array_users as $mail=>$cn) { $user_count++; if ($array_users_type[$mail] == 'u') { $users .= ""; } elseif ($array_users_type[$mail] == 'l') { $lists .= ""; } else { $mail_not_found .= ""; } } if ($mail_not_found != '') { $opt_tmp_mail_not_found = ''."\n"; $ea_select_usersInMaillist .= $opt_tmp_mail_not_found . $mail_not_found; } if ($lists != '') { $opt_tmp_lists = ''."\n"; $ea_select_usersInMaillist .= $opt_tmp_lists . $lists; } $opt_tmp_users = ''."\n"; $ea_select_usersInMaillist .= $opt_tmp_users . $users; } // Seta variaveis utilizadas pelo tpl. $var = Array( 'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'), 'color_bg1' => "#E8F0F0", 'color_bg2' => "#D3DCE3", 'type' => 'edit_maillist', 'ldap_context' => $GLOBALS['phpgw_info']['server']['ldap_context'], 'combo_manager_org' => $combo_manager_org, 'combo_all_orgs' => $combo_all_orgs, 'uidnumber' => $_GET['uidnumber'], 'uid' => $maillist_info['uid'], 'mail' => $maillist_info['mail'], 'cn' => $maillist_info['cn'], 'user_count' => $user_count, 'accountStatus_checked' => $maillist_info['accountStatus'] == 'active' ? 'CHECKED' : '', 'phpgwAccountVisible_checked' => $maillist_info['phpgwAccountVisible'] == '-1' ? 'CHECKED' : '', 'ea_select_usersInMaillist' => $ea_select_usersInMaillist, 'defaultDomain' => $this->current_config['expressoAdmin_defaultDomain'], 'restrictionsOnEmailLists' => $this->current_config['expressoAdmin_restrictionsOnEmailLists'], 'lang_back' => lang('Back'), 'lang_save' => lang('Save'), 'lang_maillist_organization' => lang('E-mail list organization'), 'lang_search_organization' => lang('Search organization'), 'lang_search_user' => lang('Search user'), 'lang_organizations' => lang('Organizations'), 'lang_maillist_uid' => lang('E-mail list login'), 'lang_maillist_mail' => lang('E-mail list address'), 'lang_maillist_name' => lang('E-mail list name'), 'lang_maillist_users' => lang('E-mail list users'), 'lang_users' => lang('Users'), 'lang_add_user' => lang('Add User'), 'lang_rem_user' => lang('Remove User'), 'lang_email_list_empty' => lang('The e-mail list is empty'), 'lang_hide_email_list' => lang('Hide e-mail list'), 'email_list_successfully_saved' => lang('E-mail list successfully saved!'), 'lang_all_users' => lang('Show users from all sub-organizations'), 'login_field_incomplete' => lang("The lists' name field is incomplete. The lists' name must be in the following format: lista-organization-name. Ex: lista-celepar-rh") ); $p->set_var($var); $p->pfp('out','edit_maillist'); } function scl_maillists() { $GLOBALS['phpgw']->js->set_onload('get_available_users(document.forms[0].org_context.value, document.forms[0].ea_check_allUsers.checked);'); $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $manager_acl = $this->functions->read_acl($manager_lid); $manager_contexts = $manager_acl['contexts']; // Verifica se tem acesso a este modulo if (!$this->functions->check_acl($manager_lid,'edit_maillists')) { $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); } // GET all infomations about the group. $maillist_info = $this->maillist->get_scl_info($_GET['uidnumber']); 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 sending control list'); $GLOBALS['phpgw']->common->phpgw_header(); // Set o template $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $p->set_file(Array('sql_maillist' => 'maillists_scl.tpl')); // Pega combo das organizações e seleciona a org da lista. // $org = $this->functions->get_organizations($manager_context, trim(strtolower($maillist_info['context']))); foreach ($manager_contexts as $index=>$context) $sectors .= $this->functions->get_organizations($context, trim(strtolower($maillist_info['context'])) ); // Usuarios de senders. if (count($maillist_info['senders_info']) > 0) { foreach ($maillist_info['senders_info'] as $mail=>$senderinfo) { $array_senders[$mail] = $senderinfo['cn']; } natcasesort($array_senders); foreach ($array_senders as $mail=>$cn) { $ea_select_users_SCL_Maillist .= ""; } } // Seta variaveis utilizadas pelo tpl. $var = Array( 'color_bg1' => "#E8F0F0", 'color_bg2' => "#D3DCE3", 'type' => 'edit_maillist', 'ldap_context' => $GLOBALS['phpgw_info']['server']['ldap_context'], 'dn' => $maillist_info['dn'], 'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uimaillists.list_maillists'), 'combo_org' => $sectors, 'uidnumber' => $_GET['uidnumber'], 'uid' => $maillist_info['uid'], 'mail' => $maillist_info['mail'], 'cn' => $maillist_info['cn'], 'accountRestrictive_checked' => $maillist_info['accountRestrictive'] == 'mailListRestriction' ? 'CHECKED' : '', 'participantCanSendMail_checked' => $maillist_info['participantCanSendMail'] == 'TRUE' ? 'CHECKED' : '', 'ea_select_users_SCL_Maillist' => $ea_select_users_SCL_Maillist, 'lang_back' => lang('Back'), 'lang_save' => lang('Save'), 'lang_org' => lang('Organizations'), 'lang_maillist_uid' => lang('E-mail list login'), 'lang_maillist_mail' => lang('E-mail list address'), 'lang_maillist_name' => lang('E-mail list name'), 'lang_maillist_users' => lang('E-mail list users'), 'lang_add_user' => lang('Add user'), 'lang_rem_user' => lang('Remove user'), 'lang_apply_scl' => lang('Apply send control to this list?'), 'lang_list_email' => lang('List e-mail'), 'lang_members_send' => lang('List members can send e-mail?'), 'lang_allowed_send_email' => lang('Users allowed to send e-mail to the list'), 'lang_organization' => lang('Organizations'), 'lang_search_user' => lang('Search user'), 'lang_users' => lang('Users'), 'sending_control_list_successfully_saved' => lang('Sending control list sucessfully saved!'), 'lang_all_users' => lang('Show users from all sub-organizations') ); $p->set_var($var); $p->pfp('out','sql_maillist'); } function row_action($action,$type,$uidnumber,$maillist_uid) { return ' '.lang($action).' '; } function css() { $appCSS = ''; return $appCSS; } } ?>