/** * * @param string $psPassword * @param string $psDynamicSalt * @return string */ public static function encriptPassword($psPassword, $psDynamicSalt) { $laOptions = Config::getAppOptions('settings'); if ($laOptions['criptPassword']) { $psPassword = md5($laOptions['staticSalt'] . $psPassword . $psDynamicSalt); } return $psPassword; }
public static function hasContextAccess($paUserContext = null) { $lsUserIp = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : ""; $lsAppClient = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : ""; $lsToken = isset($_SERVER['HTTP_TOKEN']) ? $_SERVER['HTTP_TOKEN'] : ""; $lbReturn = false; Debug::debug(array($lsUserIp, $lsAppClient, $lsToken)); $laConfigAcl = Config::getAppOptions('acl'); $laContext = isset($laConfigAcl['acl']['context']) ? $laConfigAcl['acl']['context'] : null; if ($paUserContext !== null) { $laContext = Config::merge($paUserContext, $laContext); } Debug::debug($laContext); if (is_array($laContext)) { foreach ($laContext as $lsIp => $laIpContext) { $lsIpPattern = preg_replace(array("/^!([\\d\\.?]*)\$/", "/\\./", "/\\?/"), array("[^\$1]", "\\.", "[\\d]*"), $lsIp); if (preg_match("/^{$lsIpPattern}\$/", $lsUserIp)) { Debug::debug("IP: {$lsUserIp}"); if (isset($laIpContext['denied']) && $laIpContext['denied'] == true) { $lbReturn = false; Debug::debug("IP [{$lsUserIp}] DENIED FOR {$lsIpPattern}"); break; } if (isset($laIpContext['user-agent'][$lsAppClient])) { Debug::debug("USER-AGENT: {$lsAppClient}"); if ($laIpContext['user-agent'][$lsAppClient] == $lsToken) { Debug::debug("TOKEN: {$lsToken}"); $lbReturn = true; break; } } elseif (isset($laIpContext['user-agent']['*'])) { Debug::debug("USER-AGENT: *"); if ($laIpContext['user-agent']['*'] == $lsToken) { Debug::debug("TOKEN: {$lsToken}"); $lbReturn = true; break; } } } else { Debug::debug("IP [{$lsUserIp}] DENIED FOR {$lsIpPattern}"); } } } else { $lbReturn = true; } return $lbReturn; }
public function indexAction() { $gaIndex = Config::getAppOptions('layout'); if (!isset($gaIndex['indexController']) || empty($gaIndex['indexController'])) { $gaIndex['indexController'] = "Backend\\Controller\\Backend"; } if (!isset($gaIndex['indexAction']) || empty($gaIndex['indexAction'])) { $gaIndex['indexAction'] = "index"; } if (!isset($gaIndex['indexParam']) || empty($gaIndex['indexParam'])) { $gaIndex['indexParam'] = ""; } $loResource = $this->forward()->dispatch($gaIndex['indexController'], array('action' => $gaIndex['indexAction'], $gaIndex['indexParam'])); $loView = new ViewModel(array('loController' => $this)); $loView->addChild($loResource, 'lsApplication'); return $loView; }
/** */ public static function log($poCredentials, $psMsg = "OK") { $laConfig = Config::getAppOptions(); $laLog = $laConfig['log']['log']['access']; $laDb = $laConfig['db'][APP_ENV]; $lnId = null; $lsUsername = null; $lnGroupId = null; if (is_object($poCredentials)) { $lnId = $poCredentials->getId(); $lsUsername = $poCredentials->getUsername(); $lnGroupId = $poCredentials->getUserGroupId(); } else { $lsUsername = $poCredentials; } $lsIp = $_SERVER['REMOTE_ADDR']; $lsSession = session_id(); if (Util::toBoolean($laLog['enable'])) { if ($laLog['output'] == "DB") { $loDb = new Adapter($laDb); $laServer = $_SERVER; $laServer['ACCESS_MSG'] = $psMsg; $lsServer = Json::encode($laServer); $laExtra = array('stSession' => 'stSession', 'stIP' => 'stIP', 'txtServer' => 'txtServer'); $laData = array('stSession' => $lsSession, 'stIP' => $lsIp, 'txtServer' => $lsServer); if ($lnId !== null) { $laExtra['User_id'] = 'User_id'; $laData['User_id'] = $lnId; } $laColumnMap = array('timestamp' => 'dtInsert', 'priority' => 'stPriority', 'message' => 'txtCredentials', 'extra' => $laExtra); $laCredential = array('user' => $lsUsername, 'group' => $lnGroupId); $lsCredential = Json::encode($laCredential); $loWriter = new Writer\Db($loDb, $laLog['table'], $laColumnMap); $loLogger = new Logger(); $loLogger->addWriter($loWriter); $loLogger->info($lsCredential, $laData); } else { $laMessage = array('stIP' => $lsIp, 'stSession' => $lsSession, 'userId' => $lnId, 'user' => $lsUsername, 'group' => $lnGroupId); Event::log($laMessage, Event::INFO, $laLog['fileName'], "STREAM", true); } } }
/** * * @param string $psQuery * - Termo de busca utilizado pelo usuário * @param int $pnResults * - Número de resultados retornados com o termo */ public static function log($psQuery, $pnResults) { $laConfig = Config::getAppOptions(); $laLog = $laConfig['log']['log']['search']; $laDb = $laConfig['db'][APP_ENV]; if (Util::toBoolean($laLog['enable'])) { if ($laLog['output'] == "DB") { $loDb = new Adapter($laDb); $laColumnMap = array('timestamp' => 'dtInsert', 'priority' => 'stPriority', 'message' => 'stQuery', 'extra' => array('numResults' => 'numResults')); $laData = array('numResults' => $pnResults); $loWriter = new Writer\Db($loDb, $laLog['table'], $laColumnMap); $loLogger = new Logger(); $loLogger->addWriter($loWriter); $loLogger->info($psQuery, $laData); } else { $laParamns['userId'] = null; $laParamns['query'] = $psQuery; $laParamns['results'] = $pnResults; Event::log($laParamns, Event::INFO, $laLog['fileName'], "STREAM", true); } } }
/** * * @param array $paOptions * @return \Onion\SendMail */ public function __construct(array $paOptions = null) { if ($paOptions !== null) { $this->_aOptions = $paOptions; } elseif ($laOptions = Config::getAppOptions()) { $this->_aOptions = $laOptions['mail']; } else { $this->_aOptions['transporter'] = "sendmail"; $this->_aOptions['fromEmail'] = "webmaster@localhost"; $this->_aOptions['fromName'] = ""; $this->_aOptions['replayToEmail'] = ""; $this->_aOptions['replayToName'] = ""; $this->_aOptions['charset'] = "UTF-8"; $this->_aOptions['html'] = false; $this->_aOptions['smtp']['server'] = ""; $this->_aOptions['smtp']['security'] = "ssl"; $this->_aOptions['smtp']['port'] = "465"; $this->_aOptions['smtp']['login'] = ""; $this->_aOptions['smtp']['password'] = ""; } return $this; }
public static function getDefaultFieldValue($psTable, $psSection) { $laConfig = Config::getAppOptions('table'); if (isset($laConfig[$psTable])) { return $laConfig[$psTable]; } return null; }
public function onRoute(EventInterface $poEvent) { $loApplication = $poEvent->getApplication(); $loRouteMatch = $poEvent->getRouteMatch(); $loServiceManager = $loApplication->getServiceManager(); $loEventManager = $loApplication->getEventManager(); $loEvents = $loEventManager->getSharedManager(); $loSession = new Session(); $loUser = $loSession->getRegister('OnionAuth'); $laMenu = Config::getAppOptions('menu'); $lsRole = Acl::DEFAULT_ROLE; //guest if ($loUser !== null) { $lnGroup = $loUser->get('UserGroup_id'); if (isset($laMenu['groups'][$lnGroup])) { $lsRole = $laMenu['groups'][$lnGroup]; } } $laMenu = $laMenu[$lsRole]; $loEvents->attach('Zend\\Mvc\\Controller\\AbstractActionController', 'dispatch', function ($event) use($laMenu, $loUser) { $loController = $event->getTarget(); $loController->layout()->laMenu = $laMenu; $loController->layout()->loUser = $loUser; $loController->layout()->loController = $loController; }, 100); $lsController = $loRouteMatch->getParam('__CONTROLLER__'); $lsAction = $loRouteMatch->getParam('action'); if (empty($lsController)) { $lsController = 'Index'; } if (empty($lsAction)) { $lsAction = 'index'; } $laConfigAcl = Config::getAppOptions('acl'); $loAcl = new Acl($laConfigAcl); if (!$loAcl->hasResource($lsController)) { throw new \Exception('Resource ' . $lsController . ' not defined'); } Debug::debug("Route: {$lsController}/{$lsAction}"); if (!$loAcl->isAllowed($lsRole, $lsController, $lsAction)) { if ($lsController != 'Index' && $lsAction != 'index') { $loFlashMessenger = new FlashMessenger(); $loFlashMessenger->addMessage(array('id' => 'Access-' . microtime(true), 'hidden' => false, 'push' => false, 'type' => 'danger', 'msg' => Translator::i18n('Você não tem permissão para executar esta ação!'))); } $lsUrl = $poEvent->getRouter()->assemble(array(), array('name' => 'access', 'query' => array('urlFrom' => base64_encode($_SERVER['REQUEST_URI'])))); $loResponse = $poEvent->getResponse(); $loResponse->getHeaders()->addHeaderLine('Location', $lsUrl); $loResponse->setStatusCode(302); $loResponse->sendHeaders(); exit; } }
/** * * @param string $psDate * @return string */ public static function dateS2P($psDate) { $laOptions = Config::getAppOptions('translator'); $laDate = explode(' ', $psDate); if (isset($laDate[0]) && !empty($laDate[0])) { $lsDate = date($laOptions['dateFormat'], strtotime($laDate[0])); $lsDate .= isset($laDate[1]) ? " {$laDate[1]}" : ''; return $lsDate; } return $psDate; }
/** * * @param string $psArea * @param string $psHookAction * @param array $paParams * @return boolean */ public function hook($psArea, $psHookAction = null, array $paParams = null) { $laHooks = Config::getAppOptions('hooks'); if ($psHookAction !== null) { return $this->getHook($laHooks, $psArea, $psHookAction, $paParams); } else { if (isset($laHooks[$psArea]) && is_array($laHooks[$psArea])) { foreach ($laHooks[$psArea] as $lsHookAction => $laOptions) { echo $this->getHook($laHooks, $psArea, $lsHookAction); } } } }
/** * * @param unknown $poIdentity * @param unknown $psUrlFrom */ public function authentication($poAuthService, $poIdentity, $psUrlFrom = null, $poForm = null, $psType = 'onion') { $lsStatus = null; if ($poIdentity->getActive() == 1) { $laUserContext = null; if ($poIdentity->get('stIpContext') !== null) { $lsUserAgent = '*'; if ($poIdentity->get('stUserAgent') !== null) { $lsUserAgent = $poIdentity->get('stUserAgent'); } $laUserContext = array($poIdentity->get('stIpContext') => array('denied' => $poIdentity->get('isContextDenied'), $lsUserAgent => $poIdentity->get('stRegistrationToken'))); } if (Context::hasContextAccess($laUserContext)) { $loSession = new Session(); $loSession->clearRegister('OnionAuth'); $loSession->clearRegister('storage', 'Zend_Auth'); $poIdentity->getObject(); $poIdentity->set('stPassword', 'nono'); $poIdentity->set('stPasswordSalt', ''); $poIdentity->set('stAnswer', ''); $loSession->setRegister('OnionAuth', $poIdentity); $loIdentity = $loSession->getRegister('OnionAuth'); $poAuthService->getStorage()->write($poIdentity); if ($poForm->get('rememberme')->getValue() == 1) { $laOptions = Config::getAppOptions('settings'); $loSessionManager = new SessionManager(); $loSessionManager->rememberMe($laOptions['sessionLifeTime']); } Debug::debug($poIdentity->getUsername() . " [SUCCESS by {$psType}]"); Access::log($poIdentity, "SUCCESS by " . $psType); if ($psUrlFrom !== null) { if ('/' !== $psUrlFrom) { $psUrlFrom = base64_decode($psUrlFrom); } Debug::debug("Redirect to: ({$psUrlFrom})"); $this->redirect()->toUrl($psUrlFrom); } } else { $poForm->get('stUsername')->setMessages(array("Permissão negada para o contexto de acesso!")); $lsStatus = "CONTEXT DENIED"; } } else { $poForm->get('stUsername')->setMessages(array("Usuário desativado!")); $lsStatus = "USER DISABLED"; } return $lsStatus; }
/** * * @param string $psType * @param string $psUrl * @param string $psTable * @param int $pnId */ public static function log($psType, $psUrl, $psTable = null, $pnId = null) { $laConfig = Config::getAppOptions(); $laLog = $laConfig['log']['log'][$psType]; $laDb = $laConfig['db'][APP_ENV]; if (Util::toBoolean($laLog['enable'])) { if ($laLog['output'] == "DB") { $loDb = new Adapter($laDb); $laColumnMap = array('timestamp' => 'dtInsert', 'priority' => 'stPriority', 'message' => 'stUrl', 'extra' => array('numId' => 'numId', 'stTable' => 'stTable')); $laData = array('numId' => $pnId, 'stTable' => $psTable); $loWriter = new Writer\Db($loDb, $laLog['table'], $laColumnMap); $loLogger = new Logger(); $loLogger->addWriter($loWriter); $loLogger->info($psUrl, $laData); } else { $laParamns['userId'] = null; $laParamns['table'] = $psTable; $laParamns['id'] = $pnId; $laParamns['url'] = $psUrl; Event::log($laParamns, Event::INFO, $laLog['fileName'], "STREAM", true); } } }
public function setDefault($psTable) { $laConfigTable = Config::getAppOptions('table'); if (isset($laConfigTable[$psTable]) && is_array($laConfigTable[$psTable])) { foreach ($laConfigTable[$psTable] as $lsField => $laValues) { if (property_exists($this, $lsField)) { $this->{$lsField} = $laValues['default']; } } } $this->dtInsert = date('Y-m-d H:i:s'); }
public function addAfterFlush($paPostData, $paFileData, $poForm, $poEntity, $pbResponse) { $lsToken = $poEntity->get('stToken'); $laUrl = Config::getAppOptions('url'); $lsUrl = "{$laUrl['site']}/{$this->_sRoute}/auth/?tk={$lsToken}"; $lsMessage = '<p>' . $poEntity->get('txtMessage') . '<p>' . "\n\n"; $lsMessage .= '<p>' . Translator::i18n("Link de acesso:") . ' <a href="' . $lsUrl . '">' . $lsUrl . '</a></p>'; $laMsg = array('test' => strip_tags($lsMessage), 'html' => $lsMessage); $laTo = array($poEntity->get('stEmail'), $poEntity->get('stName')); $this->sendMail($laTo, $laMsg); return true; }
/** */ public static function showDebug() { $laConfig = Config::getAppOptions(); $laDebug = $laConfig['log']['debug']['PHP']; if (Util::toBoolean($laDebug['enable']) && $laDebug['output'] == "BUFFER") { $loBuffer = Session::getRegister("DEBUG"); echo '<pre style="margin:50px;"><code><fieldset><legend>Onion Debug:</legend>'; if (is_array($loBuffer)) { foreach ($loBuffer as $lsItem) { self::displayDebug(Json::decode($lsItem)); echo "<br/><hr/><br/>"; } } echo '</fieldset></code></pre>'; } Session::clearRegister("DEBUG"); }
/** * After load the object properties are setted. * * @param array $paConfigs */ public function setConfigs() { $this->_onionConfig = Config::loadConfigs(); $this->set($this->_onionConfig); $this->_active = true; }
/** * * @param string $psModule * @return array */ public function getFormOptions($psModule) { $laFormOptions = Config::getAppOptions('form'); if (isset($laFormOptions[$psModule])) { return $laFormOptions[$psModule]; } return null; }
<?php /** * Global Configuration Override * * You can use this file for overriding configuration values from modules, etc. * You would place values in here that are agnostic to the environment and not * sensitive to security. * * @NOTE: In practice, this file will typically be INCLUDED in your source * control, so do not include passwords or other sensitive information in this * file. */ $laOnionOptions = \Onion\Config\Config::getAppOptions(); $laDbParams = $laOnionOptions['db'][$laOnionOptions['environment']]; $laModuleLayouts = $laOnionOptions['layout']['module_layouts']; return array('module_layouts' => $laModuleLayouts, 'service_manager' => array('factories' => array('Zend\\Db\\Adapter\\Adapter' => function ($sm) use($laDbParams) { $adapter = new BjyProfiler\Db\Adapter\ProfilingAdapter(array('driver' => $laDbParams['driver'], 'dsn' => 'mysql:dbname=' . $laDbParams['database'] . ';host=' . $laDbParams['hostname'], 'database' => $laDbParams['database'], 'username' => $laDbParams['username'], 'password' => $laDbParams['password'], 'hostname' => $laDbParams['hostname'])); if (php_sapi_name() == 'cli') { $logger = new Zend\Log\Logger(); // write queries profiling info to stdout in CLI mode $writer = new Zend\Log\Writer\Stream(CLIENT_DIR . DS . 'data' . DS . 'logs' . DS . 'db.log'); $logger->addWriter($writer, Zend\Log\Logger::DEBUG); $adapter->setProfiler(new BjyProfiler\Db\Profiler\LoggingProfiler($logger)); } else { $adapter->setProfiler(new BjyProfiler\Db\Profiler\Profiler()); } if (isset($dbParams['options']) && is_array($dbParams['options'])) { $options = $dbParams['options']; } else { $options = array();
* @category PHP * @package Onion * @author Humberto Lourenço <*****@*****.**> * @copyright 2014-2016 Humberto Lourenço <*****@*****.**> * @license http://www.opensource.org/licenses/BSD-3-Clause The BSD 3-Clause License * @link http://github.com/m3uzz/onionfw */ namespace Access; use Onion\Application\Application; use Onion\Log\Debug; use Onion\Config\Config; use Onion\Log\Access; $gsAccessViewPath = __DIR__ . '/../view'; if (file_exists(CLIENT_DIR . '/module/Backend/view/access')) { $gsAccessViewPath = CLIENT_DIR . '/module/Backend/view'; } return array('controllers' => array('invokables' => array('Access\\Controller\\Access' => 'Access\\Controller\\AccessController')), 'router' => array('routes' => array('access' => array('type' => 'segment', 'options' => array('route' => '/access[/:action][/:id][/]', 'constraints' => array('action' => '[a-zA-Z][a-zA-Z0-9_-]*', 'id' => '[a-zA-Z0-9_-]+'), 'defaults' => array('__NAMESPACE__' => 'Access\\Controller', 'controller' => 'Access', 'action' => 'login'))))), 'view_manager' => array('template_path_stack' => array('access' => $gsAccessViewPath)), 'doctrine' => array('driver' => array('access_entities' => array('class' => 'Doctrine\\ORM\\Mapping\\Driver\\AnnotationDriver', 'cache' => 'array', 'paths' => array(__DIR__ . '/../src/Access/Entity')), 'orm_default' => array('drivers' => array('Access\\Entity' => 'access_entities'))), 'authentication' => array('orm_default' => array('object_manager' => 'Doctrine\\ORM\\EntityManager', 'identity_class' => 'Access\\Entity\\AccessExtended', 'identity_property' => 'stUsername', 'credential_property' => 'stPassword', 'credential_callable' => function (Entity\Access $poUser, $psPasswordGiven) { $laOptions = Config::getAppOptions('settings'); if ($laOptions['criptPassword']) { Debug::debug('Encriptar password true'); $psPasswordGiven = md5($laOptions['staticSalt'] . $psPasswordGiven . $poUser->getPasswordSalt()); } if ($poUser->getPassword() === $psPasswordGiven) { return true; } else { $lsStatus = "WRONG PASSWORD"; Access::log($poUser, $lsStatus); return false; } }))));
/** * event: gera log de sistema, gravando em banco, arquivo, firebug ou exibindo na tela * * @param string|array $pmParam - array __FILE__,__METHOD__,__LINE__ ... * @param int $pnPriority - EMERG = 0; ALERT = 1; CRIT = 2; ERR = 3; WARN = 4; NOTICE = 5; INFO = 6; DEBUG = 7; * @param string $psOutput - força o nome da tabela ou posfixo do arquivo a ser gravado * @param string $psType - força o tipo de saída: DB ou STREAM */ public static function log($pmParam, $pnPriority = 7, $psOutput = null, $psType = null, $pbSave = false) { $laConfig = Config::getAppOptions(); $laLog = $laConfig['log']['log']['events']; $laDb = $laConfig['db'][APP_ENV]; $lsLogDir = $laConfig['log']['log']['logDir']; $lsTable = $laLog['table']; $lsFilePosfix = "_" . $laLog['fileName']; $lsLine = ""; $lsId = null; if (Util::toBoolean($laLog['enable']) || $pbSave) { $lsIP = $_SERVER['REMOTE_ADDR']; $lsType = $laLog['output']; if ($psType != null) { $lsType = $psType; } if (is_array($pmParam)) { foreach ($pmParam as $lsKey => $lsItem) { if (strtolower($lsKey) == 'userid') { $lsId = $lsItem; continue; } } } $laData = array(); switch ($lsType) { case "DB": if ($psOutput != null) { $lsTable = $psOutput; } $loDb = new Adapter($laDb); $lsLine = Json::encode($pmParam); $lsServer = Json::encode($_SERVER); $laExtra = array('stIP' => 'stIP', 'txtServer' => 'txtServer'); $laData = array('stIP' => $lsIP, 'txtServer' => $lsServer); if ($lsId !== null) { $laExtra['User_id'] = 'User_id'; $laData['User_id'] = $lsId; } $laColumnMap = array('timestamp' => 'dtInsert', 'priority' => 'stPriority', 'message' => 'stMsg', 'extra' => $laExtra); $loWriter = new Writer\Db($loDb, $lsTable, $laColumnMap); break; case "STREAM": $lsLine .= "\t" . $lsIP; if (is_array($pmParam)) { foreach ($pmParam as $lsKey => $lsItem) { $lsLine .= "\t" . $lsItem; if (strtolower($lsKey) == 'userid') { $lsId = $lsItem; } } } else { $lsLine .= "\t" . $pmParam; } if ($psOutput != null) { $lsFilePosfix = "_" . $psOutput; } if (file_exists($lsLogDir)) { $loWriter = new Writer\Stream($lsLogDir . DS . date("Y-m-d") . $lsFilePosfix . ".log"); } break; } $loLogger = new Logger(); $loLogger->addWriter($loWriter); $loLogger->log($pnPriority, $lsLine, $laData); } }
/** * * @param object $poForm */ public function addFormSettings($poForm) { $laResouce = array(); $laLocale = array(); $laModules = Config::getAppOptions('modules'); if (is_array($laModules) && isset($laModules['available'])) { foreach ($laModules['available'] as $lsResource => $lbActive) { if ($lbActive) { $laResouce[$lsResource] = strtoupper($lsResource); } } } asort($laResouce); $loResource = $poForm->get('stResource'); $loResource->setValueOptions($laResouce); $laTranslator = Config::getAppOptions('translator'); $laOptions = $this->getEntityManager()->getRepository('Options\\Entity\\OptionsBasic')->findBy(array('stResource' => 'options', 'stGroup' => 'stLocale', 'stLocale' => $laTranslator['locale2'], 'isActive' => '1', 'numStatus' => '0')); if (is_array($laOptions)) { foreach ($laOptions as $loOption) { $laLocale[$loOption->get('stValue')] = $loOption->get('stLabel'); } } asort($laLocale); $loLocale = $poForm->get('stLocale'); $loLocale->setValueOptions($laLocale); }
/** * * @param array $paPostData * @param array $paFileData * @param object $poForm * @param object $poEntity * @return boolean */ public function addBeforeFlush($paPostData, $paFileData, $poForm, $poEntity) { $laOptions = Config::getAppOptions(); $lsMsgH = sprintf(Translator::i18n("Suas credenciais de acesso a área restrita em <b>%s</b>. <br/> Seu login de acesso: <b>%s</b> <br/> Sua senha de acesso: <b>%s</b>"), $laOptions['url']['admin'], $paPostData['stUsername'], $paPostData['stPassword']); $lsMsgT = sprintf(Translator::i18n("Suas credenciais de acesso a área restrita em %s. \n Seu login de acesso: %s \n Sua senha de acesso: %s"), $laOptions['url']['admin'], $paPostData['stUsername'], $paPostData['stPassword']); $loSendMail = new SendMail(); try { $loSendMail->send($laOptions['mail']['fromEmail'], Translator::i18n('Sua credenciais de acesso'), array('text' => $lsMsgT, 'html' => $lsMsgH), $paPostData['stEmail']); $this->flashMessenger()->addMessage(array('id' => $this->get('_sModule') . '-' . microtime(true), 'hidden' => $this->get('_bHiddenPushMessage'), 'push' => $this->get('_bPushMessage'), 'type' => 'success', 'msg' => Translator::i18n('Sua nova senha foi enviada para seu e-mail de cadastro'))); return true; } catch (\Exception $e) { $this->flashMessenger()->addMessage(array('id' => $this->get('_sModule') . '-' . microtime(true), 'hidden' => $this->get('_bHiddenPushMessage'), 'push' => $this->get('_bPushMessage'), 'type' => 'warning', 'msg' => sprintf(Translator::i18n('Algo de errado aconteceu.<br/> %s'), $e->getMessage()))); return false; } }