X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fapi.php;h=474d57af4a84a738a0aa3b4f636136eaaba3554b;hb=be1dae7056bb29542929c1dda965e4eff4f8ad9c;hp=cda97c729ce9bb5bfc80c622ede8530de4387938;hpb=4ca68c7af05b7b41e1b04936b9080802ca2b7716;p=friendica.git diff --git a/mod/api.php b/mod/api.php index cda97c729c..474d57af4a 100644 --- a/mod/api.php +++ b/mod/api.php @@ -1,118 +1,134 @@ . + * + */ use Friendica\App; -use Friendica\Core\Config; -use Friendica\Database\DBM; - -require_once('include/api.php'); - -function oauth_get_client($request){ +use Friendica\Core\Renderer; +use Friendica\Database\DBA; +use Friendica\DI; +use Friendica\Module\Security\Login; +require_once __DIR__ . '/../include/api.php'; +function oauth_get_client(OAuthRequest $request) +{ $params = $request->get_parameters(); $token = $params['oauth_token']; $r = q("SELECT `clients`.* FROM `clients`, `tokens` WHERE `clients`.`client_id`=`tokens`.`client_id` - AND `tokens`.`id`='%s' AND `tokens`.`scope`='request'", - dbesc($token)); + AND `tokens`.`id`='%s' AND `tokens`.`scope`='request'", DBA::escape($token)); - if (!DBM::is_result($r)) + if (!DBA::isResult($r)) { return null; + } return $r[0]; } -function api_post(App $a) { - - if (! local_user()) { - notice( t('Permission denied.') . EOL); +function api_post(App $a) +{ + if (!local_user()) { + notice(DI::l10n()->t('Permission denied.')); return; } - if(count($a->user) && x($a->user,'uid') && $a->user['uid'] != local_user()) { - notice( t('Permission denied.') . EOL); + if (count($a->user) && !empty($a->user['uid']) && $a->user['uid'] != local_user()) { + notice(DI::l10n()->t('Permission denied.')); return; } - } -function api_content(App $a) { - if ($a->cmd=='api/oauth/authorize'){ +function api_content(App $a) +{ + if (DI::args()->getCommand() == 'api/oauth/authorize') { /* * api/oauth/authorize interact with the user. return a standard page */ - $a->page['template'] = "minimal"; - + DI::page()['template'] = "minimal"; // get consumer/client from request token try { $request = OAuthRequest::from_request(); - } catch(Exception $e) { - echo "
"; var_dump($e); killme();
+		} catch (Exception $e) {
+			echo "
";
+			var_dump($e);
+			exit();
 		}
 
-
-		if (x($_POST,'oauth_yes')){
-
+		if (!empty($_POST['oauth_yes'])) {
 			$app = oauth_get_client($request);
-			if (is_null($app)) return "Invalid request. Unknown token.";
+			if (is_null($app)) {
+				return "Invalid request. Unknown token.";
+			}
 			$consumer = new OAuthConsumer($app['client_id'], $app['pw'], $app['redirect_uri']);
 
-			$verifier = md5($app['secret'].local_user());
-			Config::set("oauth", $verifier, local_user());
-
+			$verifier = md5($app['secret'] . local_user());
+			DI::config()->set("oauth", $verifier, local_user());
 
-			if ($consumer->callback_url!=null) {
+			if ($consumer->callback_url != null) {
 				$params = $request->get_parameters();
-				$glue="?";
-				if (strstr($consumer->callback_url,$glue)) $glue="?";
-				goaway($consumer->callback_url.$glue."oauth_token=".OAuthUtil::urlencode_rfc3986($params['oauth_token'])."&oauth_verifier=".OAuthUtil::urlencode_rfc3986($verifier));
-				killme();
+				$glue = "?";
+				if (strstr($consumer->callback_url, $glue)) {
+					$glue = "?";
+				}
+				DI::baseUrl()->redirect($consumer->callback_url . $glue . 'oauth_token=' . OAuthUtil::urlencode_rfc3986($params['oauth_token']) . '&oauth_verifier=' . OAuthUtil::urlencode_rfc3986($verifier));
+				exit();
 			}
 
-
-
-			$tpl = get_markup_template("oauth_authorize_done.tpl");
-			$o = replace_macros($tpl, array(
-				'$title' => t('Authorize application connection'),
-				'$info' => t('Return to your app and insert this Securty Code:'),
+			$tpl = Renderer::getMarkupTemplate("oauth_authorize_done.tpl");
+			$o = Renderer::replaceMacros($tpl, [
+				'$title' => DI::l10n()->t('Authorize application connection'),
+				'$info' => DI::l10n()->t('Return to your app and insert this Securty Code:'),
 				'$code' => $verifier,
-			));
+			]);
 
 			return $o;
-
-
 		}
 
-
-		if (! local_user()) {
+		if (!local_user()) {
 			/// @TODO We need login form to redirect to this page
-			notice( t('Please login to continue.') . EOL );
-			return login(false,$request->get_parameters());
+			notice(DI::l10n()->t('Please login to continue.'));
+			return Login::form(DI::args()->getQueryString(), false, $request->get_parameters());
 		}
 		//FKOAuth1::loginUser(4);
 
 		$app = oauth_get_client($request);
-		if (is_null($app)) return "Invalid request. Unknown token.";
-
-
-
+		if (is_null($app)) {
+			return "Invalid request. Unknown token.";
+		}
 
-		$tpl = get_markup_template('oauth_authorize.tpl');
-		$o = replace_macros($tpl, array(
-			'$title' => t('Authorize application connection'),
+		$tpl = Renderer::getMarkupTemplate('oauth_authorize.tpl');
+		$o = Renderer::replaceMacros($tpl, [
+			'$title' => DI::l10n()->t('Authorize application connection'),
 			'$app' => $app,
-			'$authorize' => t('Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?'),
-			'$yes'	=> t('Yes'),
-			'$no'	=> t('No'),
-		));
+			'$authorize' => DI::l10n()->t('Do you want to authorize this application to access your posts and contacts, and/or create new posts for you?'),
+			'$yes' => DI::l10n()->t('Yes'),
+			'$no' => DI::l10n()->t('No'),
+		]);
 
 		return $o;
 	}
 
 	echo api_call($a);
-	killme();
+	exit();
 }