]> git.mxchange.org Git - friendica.git/commitdiff
Merge pull request #4011 from annando/archive-cleanup
authorHypolite Petovan <mrpetovan@gmail.com>
Tue, 5 Dec 2017 12:47:44 +0000 (07:47 -0500)
committerGitHub <noreply@github.com>
Tue, 5 Dec 2017 12:47:44 +0000 (07:47 -0500)
Some cleanup for archiving/unarchiving contacts

13 files changed:
include/api.php
include/oauth.php [deleted file]
include/oembed.php [changed mode: 0755->0644]
mod/install.php [changed mode: 0755->0644]
mod/like.php [changed mode: 0755->0644]
mod/repair_ostatus.php [changed mode: 0755->0644]
src/Network/FKOAuth1.php [new file with mode: 0644]
src/Network/FKOAuthDataStore.php [new file with mode: 0644]
util/config [changed mode: 0644->0755]
util/createdoxygen.php [changed mode: 0644->0755]
util/vagrant_provision.sh [changed mode: 0644->0755]
util/vagrant_vhost.sh [changed mode: 0644->0755]
view/smarty3/.gitignore [changed mode: 0755->0644]

index ea804b18ba026c641c98ca8e3d1737e07ced18ae..b5799d4786cac0e5bdb97017337e33aa120c9d51 100644 (file)
@@ -13,6 +13,7 @@ use Friendica\Core\NotificationsManager;
 use Friendica\Core\Worker;
 use Friendica\Database\DBM;
 use Friendica\Model\User;
+use Friendica\Network\FKOAuth1;
 use Friendica\Network\HTTPException;
 use Friendica\Network\HTTPException\BadRequestException;
 use Friendica\Network\HTTPException\ForbiddenException;
@@ -30,7 +31,6 @@ use Friendica\Util\XML;
 require_once 'include/bbcode.php';
 require_once 'include/datetime.php';
 require_once 'include/conversation.php';
-require_once 'include/oauth.php';
 require_once 'include/html2plain.php';
 require_once 'mod/share.php';
 require_once 'mod/item.php';
@@ -157,12 +157,12 @@ function api_register_func($path, $func, $auth = false, $method = API_METHOD_ANY
  */
 function api_login(App $a)
 {
+       $oauth1 = new FKOAuth1();
        // login with oauth
        try {
-               $oauth = new FKOAuth1();
-               list($consumer,$token) = $oauth->verify_request(OAuthRequest::from_request());
+               list($consumer, $token) = $oauth1->verify_request(OAuthRequest::from_request());
                if (!is_null($token)) {
-                       $oauth->loginUser($token->uid);
+                       $oauth1->loginUser($token->uid);
                        call_hooks('logged_in', $a->user);
                        return;
                }
@@ -3364,9 +3364,9 @@ api_register_func('api/direct_messages', 'api_direct_messages_inbox', true);
 
 function api_oauth_request_token($type)
 {
+       $oauth1 = new FKOAuth1();
        try {
-               $oauth = new FKOAuth1();
-               $r = $oauth->fetch_request_token(OAuthRequest::from_request());
+               $r = $oauth1->fetch_request_token(OAuthRequest::from_request());
        } catch (Exception $e) {
                echo "error=" . OAuthUtil::urlencode_rfc3986($e->getMessage());
                killme();
@@ -3377,9 +3377,9 @@ function api_oauth_request_token($type)
 
 function api_oauth_access_token($type)
 {
+       $oauth1 = new FKOAuth1();
        try {
-               $oauth = new FKOAuth1();
-               $r = $oauth->fetch_access_token(OAuthRequest::from_request());
+               $r = $oauth1->fetch_access_token(OAuthRequest::from_request());
        } catch (Exception $e) {
                echo "error=". OAuthUtil::urlencode_rfc3986($e->getMessage());
                killme();
diff --git a/include/oauth.php b/include/oauth.php
deleted file mode 100644 (file)
index 8834b93..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-<?php
-/**
- * OAuth server
- * Based on oauth2-php <http://code.google.com/p/oauth2-php/>
- *
- */
-
-use Friendica\App;
-use Friendica\Core\Config;
-use Friendica\Core\PConfig;
-use Friendica\Core\System;
-use Friendica\Database\DBM;
-
-define('REQUEST_TOKEN_DURATION', 300);
-define('ACCESS_TOKEN_DURATION', 31536000);
-
-require_once("library/OAuth1.php");
-require_once("library/oauth2-php/lib/OAuth2.inc");
-
-class FKOAuthDataStore extends OAuthDataStore {
-  function gen_token(){
-               return md5(base64_encode(pack('N6', mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), uniqid())));
-  }
-
-  function lookup_consumer($consumer_key) {
-               logger(__function__.":".$consumer_key);
-      //echo "<pre>"; var_dump($consumer_key); killme();
-
-               $r = q("SELECT client_id, pw, redirect_uri FROM clients WHERE client_id='%s'",
-                       dbesc($consumer_key)
-               );
-               if (DBM::is_result($r))
-                       return new OAuthConsumer($r[0]['client_id'],$r[0]['pw'],$r[0]['redirect_uri']);
-               return null;
-  }
-
-  function lookup_token($consumer, $token_type, $token) {
-               logger(__function__.":".$consumer.", ". $token_type.", ".$token);
-               $r = q("SELECT id, secret,scope, expires, uid  FROM tokens WHERE client_id='%s' AND scope='%s' AND id='%s'",
-                       dbesc($consumer->key),
-                       dbesc($token_type),
-                       dbesc($token)
-               );
-               if (DBM::is_result($r)){
-                       $ot=new OAuthToken($r[0]['id'],$r[0]['secret']);
-                       $ot->scope=$r[0]['scope'];
-                       $ot->expires = $r[0]['expires'];
-                       $ot->uid = $r[0]['uid'];
-                       return $ot;
-               }
-               return null;
-  }
-
-  function lookup_nonce($consumer, $token, $nonce, $timestamp) {
-               //echo __file__.":".__line__."<pre>"; var_dump($consumer,$key); killme();
-               $r = q("SELECT id, secret  FROM tokens WHERE client_id='%s' AND id='%s' AND expires=%d",
-                       dbesc($consumer->key),
-                       dbesc($nonce),
-                       intval($timestamp)
-               );
-               if (DBM::is_result($r))
-                       return new OAuthToken($r[0]['id'],$r[0]['secret']);
-               return null;
-  }
-
-  function new_request_token($consumer, $callback = null) {
-               logger(__function__.":".$consumer.", ". $callback);
-               $key = $this->gen_token();
-               $sec = $this->gen_token();
-
-               if ($consumer->key){
-                       $k = $consumer->key;
-               } else {
-                       $k = $consumer;
-               }
-
-               $r = q("INSERT INTO tokens (id, secret, client_id, scope, expires) VALUES ('%s','%s','%s','%s', UNIX_TIMESTAMP()+%d)",
-                               dbesc($key),
-                               dbesc($sec),
-                               dbesc($k),
-                               'request',
-                               intval(REQUEST_TOKEN_DURATION));
-               if (!$r) return null;
-               return new OAuthToken($key,$sec);
-  }
-
-  function new_access_token($token, $consumer, $verifier = null) {
-    logger(__function__.":".$token.", ". $consumer.", ". $verifier);
-
-    // return a new access token attached to this consumer
-    // for the user associated with this token if the request token
-    // is authorized
-    // should also invalidate the request token
-
-    $ret=Null;
-
-    // get user for this verifier
-    $uverifier = Config::get("oauth", $verifier);
-    logger(__function__.":".$verifier.",".$uverifier);
-    if (is_null($verifier) || ($uverifier!==false)){
-
-               $key = $this->gen_token();
-               $sec = $this->gen_token();
-               $r = q("INSERT INTO tokens (id, secret, client_id, scope, expires, uid) VALUES ('%s','%s','%s','%s', UNIX_TIMESTAMP()+%d, %d)",
-                               dbesc($key),
-                               dbesc($sec),
-                               dbesc($consumer->key),
-                               'access',
-                               intval(ACCESS_TOKEN_DURATION),
-                               intval($uverifier));
-               if ($r)
-                       $ret = new OAuthToken($key,$sec);
-       }
-
-
-       dba::delete('tokens', array('id' => $token->key));
-
-
-       if (!is_null($ret) && $uverifier!==false){
-               Config::delete("oauth", $verifier);
-       /*      $apps = PConfig::get($uverifier, "oauth", "apps");
-               if ($apps===false) $apps=array();
-               $apps[] = $consumer->key;
-               PConfig::set($uverifier, "oauth", "apps", $apps);*/
-       }
-
-    return $ret;
-
-  }
-}
-
-class FKOAuth1 extends OAuthServer {
-       function __construct() {
-               parent::__construct(new FKOAuthDataStore());
-               $this->add_signature_method(new OAuthSignatureMethod_PLAINTEXT());
-               $this->add_signature_method(new OAuthSignatureMethod_HMAC_SHA1());
-       }
-
-       function loginUser($uid){
-               logger("FKOAuth1::loginUser $uid");
-               $a = get_app();
-               $r = q("SELECT * FROM `user` WHERE uid=%d AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
-                       intval($uid)
-               );
-               if (DBM::is_result($r)){
-                       $record = $r[0];
-               } else {
-                  logger('FKOAuth1::loginUser failure: ' . print_r($_SERVER,true), LOGGER_DEBUG);
-                   header('HTTP/1.0 401 Unauthorized');
-                   die('This api requires login');
-               }
-               $_SESSION['uid'] = $record['uid'];
-               $_SESSION['theme'] = $record['theme'];
-               $_SESSION['mobile-theme'] = PConfig::get($record['uid'], 'system', 'mobile_theme');
-               $_SESSION['authenticated'] = 1;
-               $_SESSION['page_flags'] = $record['page-flags'];
-               $_SESSION['my_url'] = System::baseUrl() . '/profile/' . $record['nickname'];
-               $_SESSION['addr'] = $_SERVER['REMOTE_ADDR'];
-               $_SESSION["allow_api"] = true;
-
-               //notice( t("Welcome back ") . $record['username'] . EOL);
-               $a->user = $record;
-
-               if (strlen($a->user['timezone'])) {
-                       date_default_timezone_set($a->user['timezone']);
-                       $a->timezone = $a->user['timezone'];
-               }
-
-               $r = q("SELECT * FROM `contact` WHERE `uid` = %s AND `self` = 1 LIMIT 1",
-                       intval($_SESSION['uid']));
-               if (DBM::is_result($r)) {
-                       $a->contact = $r[0];
-                       $a->cid = $r[0]['id'];
-                       $_SESSION['cid'] = $a->cid;
-               }
-               q("UPDATE `user` SET `login_date` = '%s' WHERE `uid` = %d",
-                       dbesc(datetime_convert()),
-                       intval($_SESSION['uid'])
-               );
-
-               call_hooks('logged_in', $a->user);
-       }
-
-}
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
old mode 100755 (executable)
new mode 100644 (file)
diff --git a/src/Network/FKOAuth1.php b/src/Network/FKOAuth1.php
new file mode 100644 (file)
index 0000000..ce2d4a6
--- /dev/null
@@ -0,0 +1,78 @@
+<?php
+/**
+ * @file src/Protocol/OAuth1.php
+ */
+namespace Friendica\Network;
+
+use Friendica\App;
+use Friendica\Core\PConfig;
+use Friendica\Core\System;
+use Friendica\Database\DBM;
+use Friendica\Network\FKOAuthDataStore;
+use dba;
+use OAuthServer;
+use OAuthSignatureMethod_PLAINTEXT;
+use OAuthSignatureMethod_HMAC_SHA1;
+
+require_once "library/OAuth1.php";
+require_once "include/plugin.php";
+
+/**
+ * @brief OAuth protocol
+ */
+class FKOAuth1 extends OAuthServer
+{
+       /**
+        * @brief Constructor
+        */
+       public function __construct()
+       {
+               parent::__construct(new FKOAuthDataStore());
+               $this->add_signature_method(new OAuthSignatureMethod_PLAINTEXT());
+               $this->add_signature_method(new OAuthSignatureMethod_HMAC_SHA1());
+       }
+
+       /**
+        * @param string $uid user id
+        * @return void
+        */
+       public function loginUser($uid)
+       {
+               logger("FKOAuth1::loginUser $uid");
+               $a = get_app();
+               $record = dba::select('user', array(), array('uid' => $uid, 'blocked' => 0, 'account_expired' => 0, 'account_removed' => 0, 'verified' => 1), array('limit' => 1));
+
+               if (!DBM::is_result($record)) {
+                       logger('FKOAuth1::loginUser failure: ' . print_r($_SERVER, true), LOGGER_DEBUG);
+                       header('HTTP/1.0 401 Unauthorized');
+                       die('This api requires login');
+               }
+               $_SESSION['uid'] = $record['uid'];
+               $_SESSION['theme'] = $record['theme'];
+               $_SESSION['mobile-theme'] = PConfig::get($record['uid'], 'system', 'mobile_theme');
+               $_SESSION['authenticated'] = 1;
+               $_SESSION['page_flags'] = $record['page-flags'];
+               $_SESSION['my_url'] = System::baseUrl() . '/profile/' . $record['nickname'];
+               $_SESSION['addr'] = $_SERVER['REMOTE_ADDR'];
+               $_SESSION["allow_api"] = true;
+
+               $a->user = $record;
+
+               if (strlen($a->user['timezone'])) {
+                       date_default_timezone_set($a->user['timezone']);
+                       $a->timezone = $a->user['timezone'];
+               }
+
+               $r = dba::select('contact', array(), array('uid' => $_SESSION['uid'], 'self' => 1), array('limit' => 1));
+               
+               if (DBM::is_result($r)) {
+                       $a->contact = $r;
+                       $a->cid = $r['id'];
+                       $_SESSION['cid'] = $a->cid;
+               }
+
+               dba::update('user', ['login_date' => datetime_convert()], ['uid' => $_SESSION['uid']]);
+
+               call_hooks('logged_in', $a->user);
+       }
+}
diff --git a/src/Network/FKOAuthDataStore.php b/src/Network/FKOAuthDataStore.php
new file mode 100644 (file)
index 0000000..126f140
--- /dev/null
@@ -0,0 +1,180 @@
+<?php
+/**
+ * @file src/Protocol/FKOAuthDataStore.php
+ * OAuth server
+ * Based on oauth2-php <http://code.google.com/p/oauth2-php/>
+ *
+ */
+namespace Friendica\Network;
+
+use Friendica\App;
+use Friendica\Core\Config;
+use Friendica\Core\System;
+use Friendica\Database\DBM;
+use dba;
+use OAuthDataStore;
+
+define('REQUEST_TOKEN_DURATION', 300);
+define('ACCESS_TOKEN_DURATION', 31536000);
+
+require_once "library/OAuth1.php";
+require_once "library/oauth2-php/lib/OAuth2.inc";
+
+/**
+ * @brief OAuthDataStore class
+ */
+class FKOAuthDataStore extends OAuthDataStore
+{
+       /**
+        * @return string
+        */
+       private static function genToken()
+       {
+               return md5(base64_encode(pack('N6', mt_rand(), mt_rand(), mt_rand(), mt_rand(), mt_rand(), uniqid())));
+       }
+
+       /**
+        * @param string $consumer_key key
+        * @return mixed
+        */
+       public function lookup_consumer($consumer_key)
+       {
+               logger(__function__.":".$consumer_key);
+               
+               $s = dba::select('clients', array('client_id', 'pw', 'redirect_uri'), array('client_id' => $consumer_key));
+               $r = dba::inArray($r);
+
+               if (DBM::is_result($r)) {
+                       return new OAuthConsumer($r[0]['client_id'], $r[0]['pw'], $r[0]['redirect_uri']);
+               }
+
+               return null;
+       }
+
+       /**
+        * @param string $consumer   consumer
+        * @param string $token_type type
+        * @param string $token      token
+        * @return mixed
+        */
+       public function lookup_token($consumer, $token_type, $token)
+       {
+               logger(__function__.":".$consumer.", ". $token_type.", ".$token);
+               
+               $s = dba::select('tokens', array('id', 'secret', 'scope', 'expires', 'uid'), array('client_id' => $consumer->key, 'scope' => $token_type, 'id' => $token));
+               $r = dba::inArray($s);
+
+               if (DBM::is_result($r)) {
+                       $ot=new OAuthToken($r[0]['id'], $r[0]['secret']);
+                       $ot->scope = $r[0]['scope'];
+                       $ot->expires = $r[0]['expires'];
+                       $ot->uid = $r[0]['uid'];
+                       return $ot;
+               }
+
+               return null;
+       }
+
+       /**
+        * @param string $consumer  consumer
+        * @param string $token     token
+        * @param string $nonce     nonce
+        * @param string $timestamp timestamp
+        * @return mixed
+        */
+       public function lookup_nonce($consumer, $token, $nonce, $timestamp)
+       {
+               $r = dba::select('tokens', ['id', 'secret'], ['client_id' => $consumer->key, 'id' => $nonce, 'expires' => $timestamp], ['limit' => 1]);
+                               
+               if (DBM::is_result($r)) {
+                       return new OAuthToken($r['id'], $r['secret']);
+               }
+
+               return null;
+       }
+
+       /**
+        * @param string $consumer consumer
+        * @param string $callback optional, default null
+        * @return mixed
+        */
+       public function new_request_token($consumer, $callback = null)
+       {
+               logger(__function__.":".$consumer.", ". $callback);
+               $key = self::genToken();
+               $sec = self::genToken();
+
+               if ($consumer->key) {
+                       $k = $consumer->key;
+               } else {
+                       $k = $consumer;
+               }
+
+               $r = dba::insert(
+                       'tokens',
+                       array(
+                               'id' => $key,
+                               'secret' => $sec,
+                               'client_id' => $k,
+                               'scope' => 'request',
+                               'expires' => UNIX_TIMESTAMP() + REQUEST_TOKEN_DURATION)
+               );
+
+               if (!$r) {
+                       return null;
+               }
+
+               return new OAuthToken($key, $sec);
+       }
+
+       /**
+        * @param string $token    token
+        * @param string $consumer consumer
+        * @param string $verifier optional, defult null
+        * @return object
+        */
+       public function new_access_token($token, $consumer, $verifier = null)
+       {
+               logger(__function__.":".$token.", ". $consumer.", ". $verifier);
+
+               // return a new access token attached to this consumer
+               // for the user associated with this token if the request token
+               // is authorized
+               // should also invalidate the request token
+
+               $ret = null;
+
+               // get user for this verifier
+               $uverifier = Config::get("oauth", $verifier);
+               logger(__function__.":".$verifier.",".$uverifier);
+
+               if (is_null($verifier) || ($uverifier!==false)) {
+                       $key = self::genToken();
+                       $sec = self::genToken();
+                       $r = dba::insert(
+                               'tokens',
+                               array(
+                                       'id' => $key,
+                                       'secret' => $sec,
+                                       'client_id' => $consumer->key,
+                                       'scope' => 'access',
+                                       'expires' => UNIX_TIMESTAMP() + ACCESS_TOKEN_DURATION,
+                                       'uid' => $uverifier)
+                       );
+
+                       if ($r) {
+                               $ret = new OAuthToken($key, $sec);
+                       }
+               }
+
+
+               dba::delete('tokens', array('id' => $token->key));
+
+
+               if (!is_null($ret) && $uverifier !== false) {
+                       Config::delete("oauth", $verifier);
+               }
+
+               return $ret;
+       }
+}
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100644 (file)
new mode 100755 (executable)
old mode 100755 (executable)
new mode 100644 (file)