/** * @param bool $internal * * @return JUser|mixed|object */ private function getUser($internal = FALSE) { switch ($this->_dataObj->searchfield) { case 'username': $sql = "SELECT * FROM #__users WHERE username = '******'"; $sql = sprintf($sql, $this->_dataObj->searchvalue); $this->_db->setQuery($sql); $row = $this->_db->loadObject(); break; case 'id': $row = new JUser(); $row->load((int) $this->_dataObj->searchvalue); break; } if ($row->id) { // NEVER let the users password leave the remote site $row->password = '******'; } if ($internal === TRUE) { return $row; } bfEncrypt::reply('success', array('user' => $row)); }
/** * If not enabled, then enable the Akeeba API Frontend using a secure secret word */ private function enableAkeebaFrontendBackup() { // load mini-Joomla require 'bfInitJoomla.php'; $this->_db = JFactory::getDBO(); // Get some Joomla version $VERSION = new JVersion(); switch ($VERSION->RELEASE) { case '1.5': $params = JComponentHelper::getParams('com_akeeba'); if (!count($params->toArray())) { // send back the totals bfEncrypt::reply('success', array('akeeba_installed' => FALSE)); } $frontend_enable = $params->get('frontend_enable'); $frontend_secret_word = $params->get('frontend_secret_word'); if ($frontend_enable != 1) { $params->set('frontend_enable', 1); $saveChanges = TRUE; } $params->set('frontend_secret_word', str_replace('&', '', JUtility::getHash(JUtility::getToken(TRUE)))); $saveChanges = TRUE; $secretWord = $params->get('frontend_secret_word'); if (TRUE == $saveChanges) { $params = $params->toString(); $sql = 'UPDATE #__components SET params = \'%s\' WHERE `OPTION` = "com_akeeba"'; $sql = sprintf($sql, addslashes($params)); $this->_db->setQuery($sql); $this->_db->query(); } break; default: case '2.5': $this->_db->setQuery('SELECT extension_id, params FROM #__extensions WHERE NAME="akeeba" AND element = "com_akeeba"'); $data = $this->_db->loadObject(); if (!$data) { // send back the totals bfEncrypt::reply('success', array('akeeba_installed' => FALSE)); } $params = json_decode($data->params); if ($params->frontend_enable != 1) { $params->frontend_enable = 1; $saveChanges = TRUE; } if (!$params->frontend_secret_word || preg_match('/\\&/', $params->frontend_secret_word)) { $params->frontend_secret_word = md5(JApplication::getHash('myjoomla')); $saveChanges = TRUE; } $secretWord = $params->frontend_secret_word; if (TRUE == $saveChanges) { $params = json_encode($params); $sql = 'UPDATE #__extensions SET params = \'%s\' WHERE extension_id = %s'; $sql = sprintf($sql, addslashes($params), $data->extension_id); $this->_db->setQuery($sql); $this->_db->query(); } break; } // send back the totals bfEncrypt::reply('success', array('akeeba_installed' => TRUE, 'secret' => $secretWord)); }