True, 'add_users' => True, 'edit_user' => True, 'view_user' => True, 'show_photo' => True, 'show_access_log' => True, 'css' => True ); var $nextmatchs; var $user; var $functions; var $current_config; var $ldap_functions; var $db_functions; function uiaccounts() { $this->user = CreateObject('expressoAdmin1_2.user'); $this->nextmatchs = CreateObject('phpgwapi.nextmatchs'); $this->functions = CreateObject('expressoAdmin1_2.functions'); $this->ldap_functions = CreateObject('expressoAdmin1_2.ldap_functions'); $this->db_functions = CreateObject('expressoAdmin1_2.db_functions'); $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','tabs','expressoAdmin1_2'); $GLOBALS['phpgw']->js->validate_file('jscode','users','expressoAdmin1_2'); } function list_users() { $account_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $acl = $this->functions->read_acl($account_lid); $raw_context = $acl['raw_context']; $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($account_lid,'list_users')) { $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('User accounts'); $GLOBALS['phpgw']->common->phpgw_header(); $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $p->set_file(Array('accounts' => 'accounts.tpl')); $p->set_block('accounts','body'); $p->set_block('accounts','row'); $p->set_block('accounts','row_empty'); $var = Array( 'bg_color' => $GLOBALS['phpgw_info']['theme']['bg_color'], 'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'], 'accounts_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uiaccounts.list_users'), 'back_url' => $GLOBALS['phpgw']->link('/expressoAdmin1_2/index.php'), 'add_action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uiaccounts.add_users'), 'create_user_disabled' => $this->functions->check_acl($account_lid,'add_users') ? '' : 'disabled', 'context' => $raw_context, 'context_display' => $context_display, 'imapDelimiter' => $_SESSION['phpgw_info']['expresso']['email_server']['imapDelimiter'], 'lang_create_user' => lang('Create user'), 'lang_loginid' => lang('Login'), 'lang_cn' => lang('Name'), 'lang_mail' => lang('E-mail'), 'lang_edit' => lang('Edit'), 'lang_rename' => lang('Rename'), 'lang_search' => lang('Search'), 'lang_back' => lang('Back'), 'lang_contexts' => lang('Contexts'), 'lang_delete_user' => lang('Delete user?'), 'lang_delete' => lang('Delete'), 'lang_sucess' => lang('User deleted successfully!'), 'lang_rename_user' => lang('Rename user'), 'lang_rename_success' => lang('User renamed successfully!'), 'login_field_contains_not_allowed' => lang('Login field contains invalid characters'), 'lang_to' => lang('to:') ); $p->set_var($var); // Save query $p->set_var('query', $GLOBALS['query']); //Admin make a search if ($GLOBALS['query'] != '') { $account_info = $this->functions->get_list('accounts', $GLOBALS['query'], $contexts); } if (!count($account_info) && $GLOBALS['query'] != '') { $p->set_var('message',lang('No matches found')); $p->parse('rows','row_empty',True); } else if (count($account_info)) { // Can edit, delete or rename users ?? if (($this->functions->check_acl($account_lid,'edit_users')) || ($this->functions->check_acl($account_lid,'change_users_password')) || ($this->functions->check_acl($account_lid,'edit_sambausers_attributes')) || ($this->functions->check_acl($account_lid,'change_users_quote')) || ($this->functions->check_acl($account_lid,'manipulate_corporative_information')) ) $can_edit = True; elseif ($this->functions->check_acl($account_lid,'view_users')) $can_view = True; if ($this->functions->check_acl($account_lid,'delete_users')) $can_delete = True; if ($this->functions->check_acl($account_lid,'rename_users')) $can_rename = True; while (list($null,$account) = each($account_info)) { $this->nextmatchs->template_alternate_row_color($p); $var = array( 'row_loginid' => $account['account_lid'], 'row_cn' => $account['account_cn'], 'row_mail' => (!$account['account_mail']?'Sem E-mail':$account['account_mail']) ); $p->set_var($var); if ($can_edit) $p->set_var('row_edit',$this->row_action('edit','user',$account['account_id'])); elseif ($can_view) $p->set_var('row_edit',$this->row_action('view','user',$account['account_id'])); else $p->set_var('row_edit',' '); if ($can_rename) $p->set_var('row_rename',"".lang('Rename').""); else $p->set_var('row_rename',' '); if ($can_delete) { $p->set_var('row_delete',"".lang('Delete').""); } else $p->set_var('row_delete',' '); $p->parse('rows','row',True); } } $p->pfp('out','body'); } function add_users() { $GLOBALS['phpgw']->js->validate_file('jscode','users','expressoAdmin1_2'); $GLOBALS['phpgw']->js->set_onload('get_available_groups(document.forms[0].context.value);'); $GLOBALS['phpgw']->js->set_onload('get_available_maillists(document.forms[0].context.value);'); if ($this->current_config['expressoAdmin_samba_support'] == 'true') $GLOBALS['phpgw']->js->set_onload('get_available_sambadomains(document.forms[0].context.value, \'create_user\');'); $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $acl = $this->functions->read_acl($manager_lid); $manager_contexts = $acl['contexts']; // Verifica se tem acesso a este modulo if (!$this->functions->check_acl($manager_lid,'add_users')) { $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); } // Imprime nav_bar 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 User'); $GLOBALS['phpgw']->common->phpgw_header(); // Seta template $GLOBALS['phpgw']->js = CreateObject('phpgwapi.javascript'); $t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $t->set_file(array("body" => "accounts_form.tpl")); $t->set_block('body','main'); // Pega combo das organizações e seleciona, caso seja um post, o setor que o usuario selecionou. 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); // Chama funcao para criar lista de aplicativos disponiveis. $applications_list = $this->functions->make_list_app($manager_lid); // Cria combo de dominio samba if ($this->current_config['expressoAdmin_samba_support'] == 'true') { $a_sambadomains = $this->db_functions->get_sambadomains_list(); $sambadomainname_options = ''; if (count($a_sambadomains)) { foreach ($a_sambadomains as $a_sambadomain) { // So mostra os sambaDomainName do contexto do manager if ($this->ldap_functions->exist_sambadomains($manager_contexts, $a_sambadomain['samba_domain_name'])) $sambadomainname_options .= ""; } } } // Valores default. $var = Array( 'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uiaccounts.list_users'), 'photo_bin' => $GLOBALS['phpgw_info']['server']['webserver_url'].'/expressoAdmin1_2/templates/default/images/photo_celepar.png', 'row_on' => "#DDDDDD", 'row_off' => "#EEEEEE", 'color_bg1' => "#E8F0F0", 'type' => 'create_user', 'display_samba_suport' => $this->current_config['expressoAdmin_samba_support'] == 'true' ? '' : 'none', 'disabled_access_button' => 'disabled', 'display_access_records' => 'none', // First ABA 'display_spam_uid' => 'display:none', 'lang_general_information' => lang('General information'), 'lang_corporative_information' => lang('Corporative information'), 'lang_email_config' => lang('E-mail config'), 'lang_groups_permission' => lang('Group permissions'), 'lang_lists_permission' => lang('E-mail lists'), 'lang_aplication_permission' => lang('Application permissions'), 'lang_search_organization' => lang('Search organization'), 'lang_organizations' => lang('Organizations'), 'lang_sector' => lang('Sector'), 'lang_account_lid' => lang('Login'), 'lang_firstname' => lang('First name'), 'lang_lastname' => lang('Last name'), 'lang_password' => lang('Password'), 'lang_re-password' => lang('Re-password'), 'lang_passwd_expired' => lang('Password expired'), 'lang_changepassword' => lang('Change password'), 'lang_phone' => lang('Phone'), 'lang_photo' => lang('Photo'), 'lang_account_active' => lang('Enabled account'), 'lang_account_invisible' => lang('Hidden account'), 'lang_never' => lang('Never'), 'lang_back' => lang('Back'), 'lang_save' => lang('Save'), 'sectors' => $combo_manager_org, 'combo_organizations' => $combo_manager_org, 'combo_all_orgs' => $combo_all_orgs, 'passwd_expired_checked' => 'CHECKED', 'changepassword_checked' => 'CHECKED', 'phpgwaccountstatus_checked' => 'CHECKED', 'display_picture' => $this->functions->check_acl($manager_lid,'edit_users_picture') ? '' : 'none', 'display_tr_default_password' => 'none', 'minimumSizeLogin' => $this->current_config['expressoAdmin_minimumSizeLogin'], 'defaultDomain' => $this->current_config['expressoAdmin_defaultDomain'], 'concatenateDomain' => $this->current_config['expressoAdmin_concatenateDomain'], 'ldap_context' => ldap_dn2ufn($GLOBALS['phpgw_info']['server']['ldap_context']), // Corporative Information 'display_corporative_information' => $this->functions->check_acl($manager_lid,'manipulate_corporative_information') ? '' : 'none', 'lang_employeenumber' => lang('Employee number'), 'lang_cpf' => lang('CPF'), 'lang_rg' => lang('RG'), 'lang_rguf' => lang('RG UF'), //MAIL 'lang_activeemailaccount' => lang('Active e-mail account'), 'lang_email' => lang('E-mail'), 'lang_aliasemail' => lang('E-mail alias'), 'lang_forwardingemail' => lang('Forwarding e-mail'), 'lang_email_quota' => lang('E-mail quota in MB'), 'lang_onlyforwarding' => lang('Only forwarding'), 'lang_quote_message' => lang('Leave empty for no quota'), 'lang_email_quota_used' => lang('Used quota in MB'), 'accountstatus_checked' => 'CHECKED', 'mailquota' => $this->current_config['expressoAdmin_defaultUserQuota'], 'changequote_disabled' => $this->functions->check_acl($manager_lid,'change_users_quote') ? '' : 'readonly', 'imapDelimiter' => $_SESSION['phpgw_info']['expresso']['email_server']['imapDelimiter'], 'input_mailalternateaddress_fields' => '', 'input_mailforwardingaddress_fields'=> '', //Third ABA 'lang_groups' => lang('Groups'), 'lang_user_groups' => lang('Selected user groups'), 'lang_available_groups' => lang('Available groups'), 'lang_listGroups' => lang('List groups'), 'lang_primary_group' => lang('Primary group'), 'lang_add' => lang('Add'), 'lang_rem' => lang('Remove'), //Fourd ABA 'lang_user_mail_lists' => lang('Selected e-mail lists'), 'lang_available_mail_lists' => lang('Available e-mail lists'), //Five ABA 'apps' => $applications_list, //SAMBA ABA 'lang_samba_config' => lang('Samba config'), 'lang_use_attrs_samba' => lang('Use Samba attributes'), 'lang_sambadomain' => lang('Domain'), 'lang_sambaAcctFlags' => lang('Samba account flags'), 'lang_sambaLogonScript' => lang('Logon script'), 'lang_sambaHomeDirectory' => lang('Home directory'), 'lang_active_user' => lang('Enabled Samba user'), 'lang_desactive_user' => lang('Disabled Samba user'), 'use_attrs_samba_checked' => 'CHECKED', 'sambadomainname_options' => $sambadomainname_options, 'sambalogonscript' => $this->current_config['expressoAdmin_defaultLogonScript'] != '' ? $this->current_config['expressoAdmin_defaultLogonScript'] : '', 'use_suggestion_in_logon_script' => $this->current_config['expressoAdmin_defaultLogonScript'] == '' ? 'true' : 'false', 'login_field_empty' => lang('Login field is empty'), 'login_field_must_have' => lang('Login field must have more than'), 'characters' => lang('characters'), 'password_field_empty' => lang('Password field is empty'), 're-pass_field_empty' => lang('Re-password field is empty'), 'pass_re-pass_diferents' => lang('Password and Re-password are differentes'), 'register_field_contains_not_allowed' => lang('Field register contains invalid characters. Only numbers are allowed'), 'cpf_field_not_allowed' => lang('Field CPF contains invalid characters. Only numbers are allowed'), 'email_field_empty' => lang('Email field is empty'), 'first_name_empty' => lang('First name field is empty'), 'first_name_not_valid' => lang('First name field is invalid'), 'last_name_empty' => lang('Last name field is empty'), 'last_name_not_valid' => lang('Last name field is not valid'), 'telephone_empty' => lang('Telephone field is empty'), 'redirect_email_empty' => lang('Redirect email field is empty'), 'without_quota' => lang('User without quota'), 'no_group_selected' => lang('No groups selected'), 'user_logon_script_empty' => lang('User logon script is empty'), 'user_home_path_empty' => lang('User home path is empty'), 'user_successfully_created' => lang('User successfully created!'), 'user_successfully_saved' => lang('User successfully saved!'), 'default_password_registered' => lang('Default password successfully registered'), 'user_password_returned_with_success' => lang('User password returned with success'), 'user_deleted_with_success' => lang('User deleted successfully!'), 'login_field_contains_not_allowed' => lang('Login field contains not allowed characters'), 'page_not_found' => lang('Page Not Found!'), 'type_name_new_manager' => lang('Type in the new managers name'), 'email_field_not_valid' => lang('E-mail field is invalid'), 'searching' => lang('Searching...'), 'delete_the_list' => lang('Delete list '), 'delete_the_group' => lang('Delete group '), 'cpf_invalid_field' => lang('Invalid CPF field'), 'incorrect_telephone_field' => lang('Incorrect Telephone Field'), 'change_user_login' => lang('Change user login'), 'to' => lang('to'), 'removed' => lang('removed'), 'lang_search_group' => lang('Search group'), 'lang_search_list' => lang('Search list'), 'lang_clear_inbox_user' => lang('Clear'), 'lang_inbox_user' => lang('User inbox'), 'display_tr_inbox_user' => 'none', 'lang_access_records' => lang('Show access records'), 'cpf_field_invalid' => lang('CPF field is invalid') ); $t->set_var($var); $t->pfp('out','main'); } function view_user() { ExecMethod('expressoAdmin1_2.uiaccounts.edit_user'); return; } function edit_user() { $manager_account_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $acl = $this->functions->read_acl($manager_account_lid); $raw_context = $acl['raw_context']; $contexts = $acl['contexts']; $alert_warning = ''; // Verifica se tem acesso a este modulo $disabled = 'disabled'; $disabled_password = 'disabled'; $disabled_samba = 'disabled'; $disabled_edit_photo = 'disabled'; $display_picture = 'none'; if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && (!$this->functions->check_acl($manager_account_lid,'change_users_password')) && (!$this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes')) && (!$this->functions->check_acl($manager_account_lid,'view_users')) && (!$this->functions->check_acl($manager_account_lid,'manipulate_corporative_information')) ) { $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); } // SOMENTE ALTERAÇÃO DE SENHA if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && ($this->functions->check_acl($manager_account_lid,'change_users_password'))) { $disabled = 'disabled'; $disabled_password = ''; } // SOMENTE ALTERAÇÃO DOS ATRIBUTOS SAMBA if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && ($this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes'))) { $disabled = 'disabled'; $disabled_samba = ''; } // TOTAIS MENOS O SAMBA if (($this->functions->check_acl($manager_account_lid,'edit_users')) && (!$this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes'))) { $disabled = ''; $disabled_password = ''; $disabled_samba = 'disabled'; } // TOTAIS elseif ($this->functions->check_acl($manager_account_lid,'edit_users')) { $disabled = ''; $disabled_password = ''; $disabled_samba = ''; } if (!$this->functions->check_acl($manager_account_lid,'change_users_quote')) $disabled_quote = 'readonly'; if ($this->functions->check_acl($manager_account_lid,'edit_users_picture')) { $disabled_edit_photo = ''; $display_picture = ''; } // GET all infomations about the user. $user_info = $this->user->get_user_info($_GET['account_id']); // JavaScript $GLOBALS['phpgw']->js->validate_file("jscode","users","expressoAdmin1_2"); $GLOBALS['phpgw']->js->set_onload("get_available_groups(document.forms[0].context.value);"); $GLOBALS['phpgw']->js->set_onload("get_available_maillists(document.forms[0].context.value);"); $GLOBALS['phpgw']->js->set_onload("use_samba_attrs('".$user_info['sambaUser']."');"); // Seta header. 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 user'); $GLOBALS['phpgw']->common->phpgw_header(); // Seta templates. $t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $t->set_file(array("body" => "accounts_form.tpl")); $t->set_block('body','main'); // ORGANIZATIONS /* foreach ($contexts as $index=>$context) $orgs .= $this->functions->get_organizations($context, $user_info['context']); */ foreach ($contexts as $index=>$context) $combo_manager_org .= $this->functions->get_organizations($context, $user_info['context']); $combo_all_orgs = $this->functions->get_organizations($GLOBALS['phpgw_info']['server']['ldap_context'], $user_info['context'], true, true, true); // GROUPS. if (count($user_info['groups_info']) > 0) { foreach ($user_info['groups_info'] as $group) { $array_groups[$group['gidnumber']] = $group['cn']; } natcasesort($array_groups); foreach ($array_groups as $gidnumber=>$cn) { // Grupo existe no Banco mas não no Ldap, excluimos grupo do Banco. /* if (!$this->ldap_functions->group_exist($gidnumber)) { $this->db_functions->delete_group($gidnumber); $this->db_functions->write_log("expressoAdmin deletou o grupo $gidnumber do banco, pois não existia no ldap.",'','','',''); continue; } */ // O memberUid do usuário está somente no Banco, então adicionamos o memberUid no Ldap. if (is_null($user_info['groups_ldap'][$gidnumber])) { $this->ldap_functions->add_user2group($gidnumber, $user_info['uid']); $ea_select_user_groups_options .= ""; if ($alert_warning == '') $alert_warning = lang("The ExpressoAdmin fixed the following inconsistencies:\n"); $alert_warning .= "Incluido atributo memberUid do usuário no grupo:\\n$cn - gidnumber: $gidnumber."; } else $ea_select_user_groups_options .= ""; if ($gidnumber == $user_info['gidnumber']) { $ea_combo_primary_user_group_options .= ""; } else { $ea_combo_primary_user_group_options .= ""; } } // O memberUid do usuário está somente no Ldap. $groups_db = array_flip($user_info['groups']); foreach ($user_info['groups_ldap'] as $gidnumber=>$cn) { if (is_null($groups_db[$gidnumber])) { /* $this->ldap_functions->remove_user2group($gidnumber, $user_info['uid']); if ($alert_warning == '') $alert_warning = "O expressoAdmin corrigiu as seguintes inconsistências:\\n"; $alert_warning .= "Removido atributo memberUid do usuário do grupo $cn.\\n"; */ $ea_select_user_groups_options .= ""; } } } // MAILLISTS if (count($user_info['maillists_info']) > 0) { foreach ($user_info['maillists_info'] as $maillist) { $array_maillist[$maillist['uid']] = $maillist['uid'] . " (" . $maillist['mail'] . ") "; } natcasesort($array_maillist); foreach ($array_maillist as $uid=>$option) { $ea_select_user_maillists_options .= ""; } } // APPS. if ($disabled == 'disabled') $apps = $this->functions->make_list_app($manager_account_lid, $user_info['apps'], 'disabled'); else $apps = $this->functions->make_list_app($manager_account_lid, $user_info['apps']); //PHOTO if ($user_info['photo_exist']) { $photo_bin = "./index.php?menuaction=expressoAdmin1_2.uiaccounts.show_photo&uidNumber=".$_GET['account_id']; } else { $photo_bin = $GLOBALS['phpgw_info']['server']['webserver_url'] . '/expressoAdmin1_2/templates/default/images/photo_celepar.png'; $disabled_delete_photo = 'disabled'; } // Cria combo de dominios do samba if ($this->current_config['expressoAdmin_samba_support'] == 'true') { $a_sambadomains = $this->db_functions->get_sambadomains_list(); $sambadomainname_options = ''; if (count($a_sambadomains)) { foreach ($a_sambadomains as $a_sambadomain) { if ($a_sambadomain['samba_domain_sid'] == $user_info['sambasid']) $sambadomainname_options .= ""; else $sambadomainname_options .= ""; } } } // Mail Alternate & Forwarding if (is_array($user_info['mailalternateaddress'])) { for ($i = 0; $i < $user_info['mailalternateaddress']['count']; $i++) { if ($i > 0) $input_mailalternateaddress_fields .= '
'; $input_mailalternateaddress_fields .= ''; } } else { $input_mailalternateaddress_fields = ''; } if (is_array($user_info['mailforwardingaddress'])) { for ($i = 0; $i < $user_info['mailforwardingaddress']['count']; $i++) { if ($i > 0) $input_mailforwardingaddress_fields .= '
'; $input_mailforwardingaddress_fields .= ''; } } else { $input_mailforwardingaddress_fields = ''; } if ($alert_warning != '') $alert_warning = "alert('". $alert_warning ."')"; $var = Array( 'uidnumber' => $_GET['account_id'], 'type' => 'edit_user', 'photo_exist' => $user_info['photo_exist'], 'departmentnumber' => $user_info['departmentnumber'], 'user_context' => $user_info['context'], 'row_on' => "#DDDDDD", 'row_off' => "#EEEEEE", 'color_bg1' => "#E8F0F0", 'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uiaccounts.validate_user_data_edit'), 'back_url' => './index.php?menuaction=expressoAdmin1_2.uiaccounts.list_users', 'disabled' => $disabled, 'disabled_password' => $disabled_password, 'disabled_samba' => $disabled_samba, 'changequote_disabled' => $disabled_quote, // Display ABAS 'display_corporative_information'=> $this->functions->check_acl($manager_account_lid,'manipulate_corporative_information') ? '' : 'none', 'display_applications' => $this->functions->check_acl($manager_account_lid,'display_applications') ? '' : 'none', 'display_emaillists' => $this->functions->check_acl($manager_account_lid,'display_emaillists') ? '' : 'none', 'display_groups' => $this->functions->check_acl($manager_account_lid,'display_groups') ? '' : 'none', 'display_emailconfig' => $this->functions->check_acl($manager_account_lid,'display_emailconfig') ? '' : 'none', // First ABA 'alert_warning' => "$alert_warning", 'display_input_account_lid' => 'display:none', 'lang_general_information' => lang('General information'), 'lang_corporative_information' => lang('Corporative information'), 'lang_email_config' => lang('E-mail config'), 'lang_groups_permission' => lang('Group permissions'), 'lang_lists_permission' => lang('E-mail lists'), 'lang_aplication_permission' => lang('Application permissions'), 'lang_organizations' => lang('Organizations'), 'lang_search_organization' => lang('Search organization'), 'lang_sector' => lang('Sector'), 'lang_account_lid' => lang('Login'), 'lang_firstname' => lang('First name'), 'lang_lastname' => lang('Last name'), 'lang_passwd_expired' => lang('Password expired'), 'lang_password' => lang('Password'), 'lang_phone' => lang('Phone'), 'lang_photo' => lang('Photo'), 'lang_re-password' => lang('Re-password'), 'lang_changepassword' => lang('Change password'), 'lang_account_active' => lang('Enabled account'), 'lang_account_invisible' => lang('Hidden account'), 'lang_back' => lang('Back'), 'lang_save' => lang('Save'), 'lang_delete_photo' => lang('Delete photo'), 'sectors' => $combo_manager_org, 'combo_organizations' => $combo_manager_org, 'combo_all_orgs' => $combo_all_orgs, 'uid' => $user_info['uid'], 'givenname' => $user_info['givenname'], 'mail1' => $user_info['mail'], 'sn' => $user_info['sn'], 'telephonenumber' => $user_info['telephonenumber'], 'photo_bin' => $photo_bin, 'disabled_edit_photo' => $disabled_edit_photo, //'display_picture' => $this->functions->check_acl($manager_account_lid,'edit_users_picture') ? '' : 'none', 'display_picture' => $display_picture, 'display_tr_default_password' => $this->functions->check_acl($manager_account_lid,'set_user_default_password') ? '' : 'none', 'passwd_expired_checked' => $user_info['passwd_expired'] == '0' ? 'CHECKED' : '', 'changepassword_checked' => $user_info['changepassword'] == '1' ? 'CHECKED' : '', 'phpgwaccountstatus_checked' => $user_info['phpgwaccountstatus'] == 'A' ? 'CHECKED' : '', 'phpgwaccountvisible_checked' => $user_info['phpgwaccountvisible'] == '-1' ? 'CHECKED' : '', // Corporative Information 'lang_employeenumber' => lang('Employee number'), 'lang_cpf' => lang('CPF'), 'lang_rg' => lang('RG'), 'lang_rguf' => lang('RG UF'), 'cpf_field_invalid' => lang('CPF field is invalid'), 'corporative_information_employeenumber' => $user_info['corporative_information_employeenumber'], 'corporative_information_cpf' => $user_info['corporative_information_cpf'], 'corporative_information_rg' => $user_info['corporative_information_rg'], 'corporative_information_rguf' => $user_info['corporative_information_rguf'], //MAIL 'disabled_quota_used' => 'disabled', 'lang_activeemailaccount' => lang('Active e-mail account'), 'lang_email' => lang('E-mail'), 'lang_aliasemail' => lang('E-mail alias'), 'lang_forwardingemail' => lang('Forwarding e-mail'), 'lang_email_quota' => lang('E-mail quota in MB'), 'lang_onlyforwarding' => lang('Only forwarding'), 'lang_email_quota_used' => lang('Used quota in MB'), 'lang_clear_inbox_user' => lang('Clear'), 'lang_inbox_user' => lang('User inbox'), 'display_tr_inbox_user' => '', 'accountstatus_checked' => $user_info['accountstatus'] == 'active' ? 'CHECKED' : '', 'mail' => $user_info['mail'], //'mailalternateaddress' => $user_info['mailalternateaddress'], //'mailforwardingaddress' => $user_info['mailforwardingaddress'], 'input_mailalternateaddress_fields' => $input_mailalternateaddress_fields, 'input_mailforwardingaddress_fields' => $input_mailforwardingaddress_fields, 'deliverymode_checked' => $user_info['deliverymode'] == 'forwardOnly' ? 'CHECKED' : '', 'mailquota' => $user_info['mailquota'], 'mailquota_used' => $user_info['mailquota_used'], //Third ABA 'lang_groups' => lang('Groups'), 'lang_user_groups' => lang('Selected user groups'), 'lang_available_groups' => lang('Available groups'), 'lang_primary_group' => lang('Primary group'), 'lang_add' => lang('Add'), 'lang_rem' => lang('Remove'), 'ea_select_user_groups_options' => $ea_select_user_groups_options, 'ea_combo_primary_user_group_options' => $ea_combo_primary_user_group_options, //Fourd ABA 'lang_user_mail_lists' => lang('Selected e-mail lists'), 'lang_available_mail_lists' => lang('Available e-mail lists'), 'ea_select_user_maillists_options' => $ea_select_user_maillists_options, //Five ABA 'apps' => $apps, //SAMBA ABA 'lang_samba_config' => lang('Samba config'), 'lang_use_attrs_samba' => lang('Use Samba attributes'), 'lang_sambadomain' => lang('Domain'), 'lang_sambaAcctFlags' => lang('Samba account flags'), 'lang_sambaLogonScript' => lang('Logon script'), 'lang_sambaHomeDirectory' => lang('Home directory'), 'lang_active_user' => lang('Enabled Samba user'), 'lang_desactive_user' => lang('Disabled Samba user'), 'userSamba' => $user_info['sambaUser'], 'sambadomainname_options' => $sambadomainname_options, 'use_attrs_samba_checked' => $user_info['sambaUser'] ? 'CHECKED' : '', 'active_user_selected' => $user_info['sambaaccflags'] == '[U ]' ? 'selected' : '', 'desactive_user_selected' => $user_info['sambaaccflags'] == '[DU ]' ? 'selected' : '', 'sambalogonscript' => $user_info['sambalogonscript'], 'sambahomedirectory' => $user_info['homedirectory'], 'defaultLogonScript' => $this->current_config['expressoAdmin_defaultLogonScript'], 'use_suggestion_in_logon_script' => $this->current_config['expressoAdmin_defaultLogonScript'] == '' ? 'true' : 'false', 'login_field_empty' => lang('Login field is empty'), 'password_field_empty' => lang('Password field is empty'), 're-pass_field_empty' => lang('Re-password field is empty'), 'pass_re-pass_diferents' => lang('Password and Re-password are differentes'), 'register_field_contains_not_allowed' => lang('Field register contains invalid characters. Only numbers are allowed'), 'cpf_field_not_allowed' => lang('Field CPF contains invalid characters. Only numbers are allowed'), 'email_field_empty' => lang('Email field is empty'), 'first_name_empty' => lang('First name field is empty'), 'first_name_not_valid' => lang('First name field is invalid'), 'last_name_empty' => lang('Last name field is empty'), 'last_name_not_valid' => lang('Last name field is not valid'), 'telephone_empty' => lang('Telephone field is empty'), 'redirect_email_empty' => lang('Redirect email field is empty'), 'without_quota' => lang('User without quota'), 'no_group_selected' => lang('No groups selected'), 'user_logon_script_empty' => lang('User logon script is empty'), 'user_home_path_empty' => lang('User home path is empty'), 'user_successfully_created' => lang('User successfully created!'), 'user_successfully_saved' => lang('User successfully saved!'), 'default_password_registered' => lang('Default password successfully registered'), 'user_password_returned_with_success' => lang('User password returned with success'), 'user_deleted_with_success' => lang('User deleted successfully!'), 'login_field_contains_not_allowed' => lang('Login field contains invalid characters'), 'page_not_found' => lang('Page Not Found!'), 'type_name_new_manager' => lang('Type in the new managers name'), 'email_field_not_valid' => lang('E-mail field is invalid'), 'searching' => lang('Searching...'), 'delete_the_list' => lang('Delete list '), 'delete_the_group' => lang('Delete group '), 'cpf_invalid_field' => lang('Invalid CPF field'), 'incorrect_telephone_field' => lang('Incorrect Telephone Field'), 'change_user_login' => lang('Change user login'), 'to' => lang('to'), 'user_renamed_success' => lang('User renamed with success!'), 'removed' => lang('removed'), 'mb_from_the_user_mailbox' => lang('mb_from_the_user_mailbox'), 'cleaning_users_inbox' => lang('Cleaning users inbox'), 'lang_insert_password_default' => lang('Insert default password'), 'lang_restore_user_password' => lang('Restore user password'), 'lang_access_records' => lang('Show access records'), 'lang_search_group' => lang('Search group'), 'lang_search_list' => lang('Search list') ); $t->set_var($var); // Devo mostrar aba SAMBA ?? if ( ($this->current_config['expressoAdmin_samba_support'] == 'true') && ($this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes')) ) $t->set_var('display_samba_suport', ''); else $t->set_var('display_samba_suport', 'none'); $t->pfp('out','body'); } function row_action($action,$type,$account_id) { return ' '.lang($action).' '; } function css() { $appCSS = 'th.activetab { color:#000000; background-color:#D3DCE3; border-top-width : 1px; border-top-style : solid; border-top-color : Black; border-left-width : 1px; border-left-style : solid; border-left-color : Black; border-right-width : 1px; border-right-style : solid; border-right-color : Black; font-size: 12px; font-family: Tahoma, Arial, Helvetica, sans-serif; } th.inactivetab { color:#000000; background-color:#E8F0F0; border-bottom-width : 1px; border-bottom-style : solid; border-bottom-color : Black; font-size: 12px; font-family: Tahoma, Arial, Helvetica, sans-serif; } .td_left {border-left:1px solid Gray; border-top:1px solid Gray; border-bottom:1px solid Gray;} .td_right {border-right:1px solid Gray; border-top:1px solid Gray; border-bottom:1px solid Gray;} div.activetab{ display:inline; } div.inactivetab{ display:none; }'; return $appCSS; } function show_photo() { $uidNumber = $_GET['uidNumber']; $photo = $this->get_photo($uidNumber); if ($photo) { header("Content-Type: image/jpeg"); $width = imagesx($photo); $height = imagesy($photo); $twidth = 80; $theight = 106; $small_photo = imagecreatetruecolor ($twidth, $theight); imagecopyresampled($small_photo, $photo, 0, 0, 0, 0,$twidth, $theight, $width, $height); imagejpeg($small_photo,"",100); return; } } function get_photo($uidNumber) { $ldap_conn = $GLOBALS['phpgw']->common->ldapConnect(); $filter="(&(phpgwAccountType=u)(uidNumber=".$uidNumber."))"; $justthese = array("jpegphoto"); $search = ldap_search($ldap_conn, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); $entry = ldap_first_entry($ldap_conn, $search); $jpeg_data = ldap_get_values_len($ldap_conn, $entry, "jpegphoto"); $jpegphoto = imagecreatefromstring($jpeg_data[0]); return $jpegphoto; } function show_access_log() { $account_id = $_GET['account_id']; $manager_account_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; $tmp = $this->functions->read_acl($manager_account_lid); $manager_context = $tmp[0]['context']; // Verifica se tem acesso a este modulo if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && (!$this->functions->check_acl($manager_account_lid,'change_users_password'))) { $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); } // Seta header. 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('Access Log'); $GLOBALS['phpgw']->common->phpgw_header(); // Seta templates. $t = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); $t->set_file(array("body" => "accesslog.tpl")); $t->set_block('body','main'); $t->set_block('body','row','row'); // GET access log from the user. $GLOBALS['phpgw']->db->limit_query("select loginid,ip,li,lo,account_id,sessionid from phpgw_access_log WHERE account_id=".$account_id." order by li desc",$start,__LINE__,__FILE__); while ($GLOBALS['phpgw']->db->next_record()) { $records[] = array( 'loginid' => $GLOBALS['phpgw']->db->f('loginid'), 'ip' => $GLOBALS['phpgw']->db->f('ip'), 'li' => $GLOBALS['phpgw']->db->f('li'), 'lo' => $GLOBALS['phpgw']->db->f('lo'), 'account_id' => $GLOBALS['phpgw']->db->f('account_id'), 'sessionid' => $GLOBALS['phpgw']->db->f('sessionid') ); } // Seta as vcariaveis while (is_array($records) && list(,$record) = each($records)) { $var = array( 'row_loginid' => $record['loginid'], 'row_ip' => $record['ip'], 'row_li' => date("d/m/Y - H:i:s", $record['li']), 'row_lo' => $record['lo'] == 0 ? 0 : date("d/m/Y - H:i:s", $record['lo']) ); $t->set_var($var); $t->fp('rows','row',True); } $var = Array( 'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'], 'lang_back' => lang('Back'), 'back_url' => "./index.php?menuaction=expressoAdmin1_2.uiaccounts.edit_user&account_id=$account_id", 'lang_loginid' => lang('Login'), 'lang_ip' => lang('IP'), 'lang_login' => lang('Log in'), 'lang_logout' => lang('Log out') ); $t->set_var($var); $t->pfp('out','body'); } } ?>