so = new somessages_size(); $this->dbFunctions = new db_functions(); $this->ldap_functions = new ldap_functions(); $this->functions = new functions(); $common = new common(); /* if ((!empty($GLOBALS['phpgw_info']['server']['ldap_master_host'])) && (!empty($GLOBALS['phpgw_info']['server']['ldap_master_root_dn'])) && (!empty($GLOBALS['phpgw_info']['server']['ldap_master_root_pw'])) ) { $this->ldap_functions = $common->ldapConnect($GLOBALS['phpgw_info']['server']['ldap_master_host'], $GLOBALS['phpgw_info']['server']['ldap_master_root_dn'], $GLOBALS['phpgw_info']['server']['ldap_master_root_pw'] ); } else { $this->ldap_functions = $common->ldapConnect(); }*/ } /** * @abstract Cria uma nova regra. * @params array params com as informações do formulário com os dados da nova regra. * @return mixed retorna um status informando se a operação foi concluída com sucesso e uma mensagem de erro ou sucesso. */ function create_rule($params) { /* Início da validação dos campos do form */ /* Verifica se o nome da regra foi preenchida */ if(empty($params['rule_name'])) { $result['status'] = false; $result['msg'] = $this->functions->lang('Field rule name is empty'); return $result; } /* Verifica se o valor máximo da mensagem foi configurado */ if (empty($params['max_messages_size'])) { $result['status'] = false; $result['msg'] = $this->functions->lang('Field message size is empty'); return $result; } /* Verifica se esse valor é um número */ if((!preg_match("/^[0-9]+$/i", $params['max_messages_size']))) { $result['status'] = false; $result['msg'] = $this->functions->lang('Field size must be a number'); return $result; } /* Verifica se no nome da regra existe o caracter % (não permitido) */ if(strpos($params['rule_name'],"%")) { $result['status'] = false; $result['msg'] = $this->functions->lang('Invalid character in name.'); return $result; } /* Verifica se já existe uma regra com o mesmo nome */ if($this->so->get_rule($params['rule_name'])) { $result['status'] = false; $result['msg'] = $this->functions->lang('Rule name already in use.'); return $result; } /* Verifica se selecionou algum usuário pra nova regra */ if(!$params['owners']) return array('status' => false , 'msg' => 'no groups or user selecteds'); /* Fim da validação dos campos do form */ foreach ($params['owners'] as $user_selected) { $check_user_selected = explode(',', $user_selected); $user_selected = $check_user_selected[0]; $type_user = $check_user_selected[1]; $fields = array( 'email_user' => $user_selected, 'configuration_type' => 'MessageMaxSize', 'email_max_recipient' => $params['max_messages_size'], 'email_user_type' => $type_user, 'email_recipient' => $params['rule_name'] ); if(!$this->so->insert_rule_db($fields)) return array('status' => false , 'msg' => 'Error on insert'); else $this->dbFunctions->write_log('Rule message size created', $userInRuleDB); } return array('status' => true); } /** * @abstract Salva a regra padrão de tamanho de mensagens. * @params params - informação do novo tamanho padrão. * @return retorna um status informando se a operação foi concluída com sucesso e uma mensagem de erro ou sucesso. */ function save_default_rule($params) { if(!$this->so->insert_default_rule_2($params['default_max_size'])) return array('status' => false, 'msg' => 'Error on insert default rule'); else $this->dbFunctions->write_log('Default size rule message saved', $params['default_max_size']); return array('status' => true, 'msg' => 'Default rule insert ok!'); } /** * @abstract Salva uma regra que foi aberta para edição. * @params params - informações da regra vindas do formulário. * @return retorna um status informando se a operação foi concluída com sucesso e uma mensagem de erro ou sucesso. */ function save_rule($params) { $usuarios = array(); foreach($params['owners'] as $i=>$value) { $usuarios[] = $value; } $users = $this->so->get_users_by_rule($params['original_rule_name']); /* Início da validação dos campos do form */ /* Verifica se o nome da regra foi preenchida */ if(empty($params['rule_name'])) { $result['status'] = false; $result['msg'] = $this->functions->lang('Field rule name is empty'); return $result; } /* Verifica se o valor máximo da mensagem foi configurado */ if (empty($params['max_messages_size'])) { $result['status'] = false; $result['msg'] = $this->functions->lang('Field message size is empty'); return $result; } /* Verifica se esse valor é um número */ if((!preg_match('/^[0-9]+$/i', $params['max_messages_size']))) { $result['status'] = false; $result['msg'] = $this->functions->lang('Field size must be a number'); return $result; } /* Verifica se no nome da regra existe o caracter % (não permitido) */ if(strpos($params['rule_name'],"%")) { $result['status'] = false; $result['msg'] = $this->functions->lang('Invalid character in name.'); return $result; } /* Fim da validação dos campos do form */ $rule_name = $users[0]['email_recipient']; $max_size = $users[0]['email_max_recipient']; // Deleto os usuários da regra que está sendo editada pra inserir novamente pra ter um controle dos usuários excluídos e adicionados. if (!($this->so->remove_rule($rule_name))) { return array('status' => false , 'msg' => 'Error on delete a parada!'); } foreach ($usuarios as $user_selected) { $check_user_selected = explode(',', $user_selected); $user_selected = $check_user_selected[0]; $type_user = $check_user_selected[1]; $fields = array( 'email_user' => $user_selected, 'configuration_type' => 'MessageMaxSize', 'email_max_recipient' => $params['max_messages_size'], 'email_user_type' => $type_user, 'email_recipient' => $params['rule_name'] ); if(!$this->so->insert_rule_db($fields)) return array('status' => false , 'msg' => 'Error on insert'); else $this->dbFunctions->write_log('Rule message size created', $userInRuleDB); } return array('status' => true, 'msg' => 'Salvo com sucessso!!'); } /** * @abstract Recupera o valor da regra padrão. * @return retorna o valor da regra padrão. */ function get_default_rule() { $return = $this->so->get_default_rule(); if (!$return) return false; foreach($return as $i=>$value) { return $value['config_value']; } } /** * @abstract Deleta uma regra. * @params params['rule_name'] - nome da regra que deseja excluir * @return retorna um status informando se a operação foi concluída com sucesso e uma mensagem de erro ou sucesso. */ function delete_rule($params) { if (!($this->so->remove_rule($params['rule_name']))) return array('status' => false , 'msg' => 'Error on delete!'); else $this->dbFunctions->write_log('Rule message size removed', $params['rule_name']); return array('status' => true , 'msg' => 'Rule successful deleted!'); } /** * @abstract Busca todas as regras cadastradas. * @return array com as informações das regras cadastradas */ function get_all_rules() { $return = $this->so->get_all_rules(); return $return; } /** * @abstract Busca as regras cadastradas por usuário. * @params input - parte do nome do usuário que deseja encontrar a regra a que ele pertence. * @return array com as informações das regras cadastradas que batem com o padrão da busca. */ function get_rules_by_user($params) { if(!empty($params['input'])) $rules = $this->so->get_rules($params['input'], true); else $rules = $this->get_all_rules(); $rules_tr = ''; $rules_count = count($rules); for ($i = 0; $i<$rules_count; ++$i) { $name_link = (string)str_replace(" ", "%", $rules[$i]['email_recipient']); $rules_tr .= "