function get_from_request($fallback_url, $deleted_flash_message, $request_param_name = null, $scope_var_name = null, $scope_foreign_key = null) { $model_name = get_called_class(); if (is_null($request_param_name)) { $request_param_name = strtolower($model_name) . "_id"; } if (empty($_REQUEST[$request_param_name])) { redirect($fallback_url); die; } $id = $_REQUEST[$request_param_name]; if (is_null($scope_var_name)) { $result = DBkitModel::get_with_klass($model_name, "WHERE `id` = ?", $id); } else { if (is_null($scope_foreign_key)) { $scope_foreign_key = $scope_var_name . "_id"; } if (empty($GLOBALS[$scope_var_name])) { die("global variable {$scope_var_name} must be set before the call to DBkitModel::get_from_request"); } $scope = $GLOBALS[$scope_var_name]; if (empty($scope->id)) { die("{$scope_var_name->id} is not defined"); } $result = DBkitModel::get_with_klass($model_name, "WHERE `id` = ? AND `{$scope_foreign_key}` = ?", $id, $scope->id); } if (!$result && !is_null($deleted_flash_message)) { redirect($fallback_url, $deleted_flash_message); die; } return $result; }
function loginkit_process_login($model_name, $default_logged_in_url = '/', $no_such_user_error = "Sorry, no such user exists.", $invalid_password_error = "Sorry, the password is incorrect.") { $name = ''; $flash = ''; if ($_POST) { if (!isset($_REQUEST['email'])) { die("invalid request: missing email"); } if (!isset($_REQUEST['password'])) { die("invalid request: missing password"); } $name = $_REQUEST['email']; $password = $_REQUEST['password']; setcookie(LOGINKIT_LAST_USERNAME_COOKIE, $name, time() + 60 * 60 * 24 * 366); $user = DBkitModel::get_with_klass($model_name, "WHERE `email` = ?", $name); if (!$user) { $flash = $no_such_user_error; } else { if (empty($user->password_salt)) { die("{$model_name->password_salt} must be defined"); } $password_hash = sha1($user->password_salt . $password); if ($password_hash != $user->password_hash) { $flash = $invalid_password_error; } else { $url = $default_logged_in_url; if (!empty($_REQUEST['url'])) { $url = $_REQUEST['url']; } else { if (method_exists($user, 'url_to_redirect_to_after_login')) { $url = $user->url_to_redirect_to_after_login(); } else { if (!empty($user->url_to_redirect_to_after_login)) { $url = $user->url_to_redirect_to_after_login; } } } loginkit_logged_in($user); redirect($url); die; } } } else { if (isset($_COOKIE[LOGINKIT_LAST_USERNAME_COOKIE])) { $name = $_COOKIE[LOGINKIT_LAST_USERNAME_COOKIE]; } } return array($name, $flash); }