function save(&$vpn) { // error_log(print_r($vpn, true)); // $vpn["per_id"] = 666; if (!isset($vpn["vpn_id"]) || $vpn["vpn_id"] == "0") { $vpn["vpn_id"] = $this->insert(); $vpn["vpn_hash"] = AccountBo::computePassword($vpn["vpn_id"]); } $this->update($vpn); }
function login($login, $password, &$session = null) { $args = array("login" => $login); $query = "\tSELECT *\n\t\t\t\t\tFROM accounts\n\t\t\t\t\tJOIN persons ON acc_person_id = per_id\n\t\t\t\t\tLEFT JOIN ticketers ON acc_id = tic_account_id\n\t\t\t\t\tWHERE (acc_login = :login OR per_mail = :login) AND 1 = 1 "; $statement = $this->pdo->prepare($query); $statement->execute($args); $results = $statement->fetchAll(); foreach ($results as $index => $line) { foreach ($line as $key => $value) { if (is_int($key)) { unset($results[$index][$key]); } } } if (count($results)) { $account = $results[0]; // error_log($account["acc_password"] . " vs " . AccountBo::computePassword($password)); if ($account["acc_password"] == AccountBo::computePassword($password)) { if (is_array($session)) { SessionUtils::login($session, $account); } return $account; } } return false; }
(at your option) any later version. VPN is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with VPN. If not, see <http://www.gnu.org/licenses/>. */ // security if (!isset($arguments)) { echo json_encode(array("error" => "not_a_service")); exit; } error_log("getSerial"); require_once "engine/bo/AccountBo.php"; require_once "engine/bo/VpnBo.php"; $connection = openConnection(); $accountBo = AccountBo::newInstance($connection); $vpnBo = VpnBo::newInstance($connection); $account = json_decode(urldecode($arguments["account"]), true); $login = $account["login"]; $password = $account["password"]; $account = $accountBo->login($login, $password); if (!$account) { echo json_encode(array("ko" => "ko", "message" => "badCredentials")); exit; } $serial = $vpnBo->getSerial(); echo json_encode(array("ok" => "ok", "serial" => $serial));
} error_log("createAccount"); require_once "engine/bo/AccountBo.php"; require_once "engine/bo/PersonBo.php"; $connection = openConnection(); $personBo = PersonBo::newInstance($connection); $accountBo = AccountBo::newInstance($connection); $account = json_decode(urldecode($arguments["account"]), true); $person = json_decode(urldecode($arguments["person"]), true); // login unicity if ($accountBo->exists($account["login"], $person["mail"])) { echo json_encode(array("ko" => "ko", "message" => "alreadyExists")); exit; } $_person = array(); $_person["per_firstname"] = $person["firstname"]; $_person["per_lastname"] = $person["lastname"]; //$_person["per_telephone"] = $person["telephone"]; $_person["per_mail"] = $person["mail"]; $_person["per_address_1"] = $person["address_1"]; $_person["per_address_2"] = $person["address_2"]; $_person["per_zip_code"] = $person["zip_code"]; $_person["per_city"] = $person["city"]; $_account = array(); $_account["acc_login"] = $account["login"]; $_account["acc_password"] = AccountBo::computePassword($account["password"]); $_account["acc_language"] = "fr"; $personBo->save($_person); $_account["acc_person_id"] = $_person["per_id"]; $accountBo->save($_account); echo json_encode(array("ok" => "ok"));