]> git.mxchange.org Git - friendica.git/blobdiff - mod/dfrn_confirm.php
Merge pull request #3110 from tobiasd/20170127-translationdocs
[friendica.git] / mod / dfrn_confirm.php
index 51cd59c62fe100b203e6caf8683571725491318c..e2ce806275b79f5319e4e64cee3f5cf4dc6d4efa 100644 (file)
@@ -1,28 +1,32 @@
 <?php
 
-/*
- * Module: dfrn_confirm
+/**
+ * @file mod/dfrn_confirm.php
+ * @brief Module: dfrn_confirm
  * Purpose: Friendship acceptance for DFRN contacts
- *
+ *.
  * There are two possible entry points and three scenarios.
- *
+ *.
  *   1. A form was submitted by our user approving a friendship that originated elsewhere.
  *      This may also be called from dfrn_request to automatically approve a friendship.
  *
  *   2. We may be the target or other side of the conversation to scenario 1, and will
  *      interact with that process on our own user's behalf.
- *
+ *.
+ *  @see PDF with dfrn specs: https://github.com/friendica/friendica/blob/master/spec/dfrn2.pdf
+ *    You also find a graphic which describes the confirmation process at
+ *    https://github.com/friendica/friendica/blob/master/spec/dfrn2_contact_confirmation.png
  */
 
 require_once('include/enotify.php');
 require_once('include/group.php');
 require_once('include/Probe.php');
 
-function dfrn_confirm_post(&$a,$handsfree = null) {
+function dfrn_confirm_post(App $a, $handsfree = null) {
 
        if(is_array($handsfree)) {
 
-               /**
+               /*
                 * We were called directly from dfrn_request due to automatic friend acceptance.
                 * Any $_POST parameters we may require are supplied in the $handsfree array.
                 *
@@ -37,7 +41,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        $node = $a->argv[1];
        }
 
-               /**
+               /*
                 *
                 * Main entry point. Scenario 1. Our user received a friend request notification (perhaps
                 * from another site) and clicked 'Approve'.
@@ -87,7 +91,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        $activity = ((x($_POST,'activity'))   ? intval($_POST['activity'])      : 0 );
                }
 
-               /**
+               /*
                 *
                 * Ensure that dfrn_id has precedence when we go to find the contact record.
                 * We only want to search based on contact id if there is no dfrn_id,
@@ -103,7 +107,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        logger('Confirming follower with contact_id: ' . $cid);
 
 
-               /**
+               /*
                 *
                 * The other person will have been issued an ID when they first requested friendship.
                 * Locate their record. At this time, their record will have both pending and blocked set to 1.
@@ -117,7 +121,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        intval($uid)
                );
 
-               if(! count($r)) {
+               if (! dbm::is_result($r)) {
                        logger('Contact not found in DB.');
                        notice( t('Contact not found.') . EOL );
                        notice( t('This may occasionally happen if contact was requested by both persons and it has already been approved.') . EOL );
@@ -139,7 +143,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 
                if($network === NETWORK_DFRN) {
 
-                       /**
+                       /*
                         *
                         * Generate a key pair for all further communications with this person.
                         * We have a keypair for every contact, and a site key for unknown people.
@@ -166,7 +170,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 
                        $params = array();
 
-                       /**
+                       /*
                         *
                         * Per the DFRN protocol, we will verify both ends by encrypting the dfrn_id with our
                         * site private key (person on the other end can decrypt it with our site public key).
@@ -190,7 +194,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        $params['public_key'] = $public_key;
 
 
-                       $my_url = $a->get_baseurl() . '/profile/' . $user[0]['nickname'];
+                       $my_url = App::get_baseurl() . '/profile/' . $user[0]['nickname'];
 
                        openssl_public_encrypt($my_url, $params['source_url'], $site_pubkey);
                        $params['source_url'] = bin2hex($params['source_url']);
@@ -212,7 +216,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 
                        logger('Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params,true), LOGGER_DATA);
 
-                       /**
+                       /*
                         *
                         * POST all this stuff to the other site.
                         * Temporarily raise the network timeout to 120 seconds because the default 60
@@ -220,9 +224,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                         *
                         */
 
-                       $a->config['system']['curl_timeout'] = 120;
-
-                       $res = post_url($dfrn_confirm,$params);
+                       $res = post_url($dfrn_confirm, $params, null, $redirects, 120);
 
                        logger(' Confirm: received data: ' . $res, LOGGER_DATA);
 
@@ -411,25 +413,28 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        );
                }
 
-               if($r === false)
-                               notice( t('Unable to set contact photo.') . EOL);
+               /// @TODO is dbm::is_result() working here?
+               if ($r === false) {
+                       notice( t('Unable to set contact photo.') . EOL);
+               }
 
                // reload contact info
 
                $r = q("SELECT * FROM `contact` WHERE `id` = %d LIMIT 1",
                        intval($contact_id)
                );
-               if(count($r))
+               if (dbm::is_result($r)) {
                        $contact = $r[0];
-               else
+               } else {
                        $contact = null;
+               }
 
 
-               if((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) {
+               if ((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) {
 
-                       if(($contact) && ($contact['network'] === NETWORK_DIASPORA)) {
+                       if (($contact) && ($contact['network'] === NETWORK_DIASPORA)) {
                                require_once('include/diaspora.php');
-                               $ret = diaspora::send_share($user[0],$r[0]);
+                               $ret = Diaspora::send_share($user[0],$r[0]);
                                logger('share returns: ' . $ret);
                        }
 
@@ -439,7 +444,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                                intval($uid)
                        );
 
-                       if((count($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) {
+                       if((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0) && ($activity) && (! $hidden)) {
 
                                require_once('include/items.php');
 
@@ -499,14 +504,15 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                // Let's send our user to the contact editor in case they want to
                // do anything special with this new friend.
 
-               if($handsfree === null)
-                       goaway($a->get_baseurl() . '/contacts/' . intval($contact_id));
-               else
+               if ($handsfree === null) {
+                       goaway(App::get_baseurl() . '/contacts/' . intval($contact_id));
+               } else {
                        return;
+               }
                //NOTREACHED
        }
 
-       /**
+       /*
         *
         *
         * End of Scenario 1. [Local confirmation of remote friend request].
@@ -518,7 +524,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
         *
         */
 
-       if(x($_POST,'source_url')) {
+       if (x($_POST,'source_url')) {
 
                // We are processing an external confirmation to an introduction created by our user.
 
@@ -539,7 +545,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
 
                // If $aes_key is set, both of these items require unpacking from the hex transport encoding.
 
-               if(x($aes_key)) {
+               if (x($aes_key)) {
                        $aes_key = hex2bin($aes_key);
                        $public_key = hex2bin($public_key);
                }
@@ -549,7 +555,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1",
                        dbesc($node));
 
-               if(! count($r)) {
+               if (! dbm::is_result($r)) {
                        $message = sprintf(t('No user record found for \'%s\' '), $node);
                        xml_status(3,$message); // failure
                        // NOTREACHED
@@ -625,7 +631,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                $r = q("SELECT * FROM `contact` WHERE `dfrn-id` = '%s' LIMIT 1",
                        dbesc($decrypted_dfrn_id)
                );
-               if(count($r)) {
+               if (dbm::is_result($r)) {
                        $message = t('The ID provided by your system is a duplicate on our system. It should work if you try again.');
                        xml_status(1,$message); // Birthday paradox - duplicate dfrn-id
                        // NOTREACHED
@@ -636,7 +642,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        dbesc($dfrn_pubkey),
                        intval($dfrn_record)
                );
-               if(! count($r)) {
+               if (! dbm::is_result($r)) {
                        $message = t('Unable to set your contact credentials on our system.');
                        xml_status(3,$message);
                }
@@ -657,10 +663,11 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                $r = q("SELECT `photo` FROM `contact` WHERE `id` = %d LIMIT 1",
                        intval($dfrn_record));
 
-               if(count($r))
+               if (dbm::is_result($r)) {
                        $photo = $r[0]['photo'];
-               else
-                       $photo = $a->get_baseurl() . '/images/person-175.jpg';
+               } else {
+                       $photo = App::get_baseurl() . '/images/person-175.jpg';
+               }
 
                require_once("include/Photo.php");
 
@@ -669,11 +676,13 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                logger('dfrn_confirm: request - photos imported');
 
                $new_relation = CONTACT_IS_SHARING;
-               if(($relation == CONTACT_IS_FOLLOWER) || ($duplex))
+               if (($relation == CONTACT_IS_FOLLOWER) || ($duplex)) {
                        $new_relation = CONTACT_IS_FRIEND;
+               }
 
-               if(($relation == CONTACT_IS_FOLLOWER) && ($duplex))
+               if (($relation == CONTACT_IS_FOLLOWER) && ($duplex)) {
                        $duplex = 0;
+               }
 
                $r = q("UPDATE `contact` SET
                        `rel` = %d,
@@ -695,7 +704,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        dbesc(NETWORK_DFRN),
                        intval($dfrn_record)
                );
-               if($r === false) {    // indicates schema is messed up or total db failure
+               if ($r === false) {    // indicates schema is messed up or total db failure
                        $message = t('Unable to update your contact profile details on our system');
                        xml_status(3,$message);
                }
@@ -710,10 +719,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        intval($dfrn_record)
                );
 
-               if(count($r))
+               if (dbm::is_result($r))
                        $combined = $r[0];
 
-               if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
+               if((dbm::is_result($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
                        $mutual = ($new_relation == CONTACT_IS_FRIEND);
                        notification(array(
                                'type'         => NOTIFY_CONFIRM,
@@ -722,7 +731,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                                'to_name'      => $r[0]['username'],
                                'to_email'     => $r[0]['email'],
                                'uid'          => $r[0]['uid'],
-                               'link'             => $a->get_baseurl() . '/contacts/' . $dfrn_record,
+                               'link'             => App::get_baseurl() . '/contacts/' . $dfrn_record,
                                'source_name'  => ((strlen(stripslashes($r[0]['name']))) ? stripslashes($r[0]['name']) : t('[Name Withheld]')),
                                'source_link'  => $r[0]['url'],
                                'source_photo' => $r[0]['photo'],
@@ -738,7 +747,7 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                                intval($local_uid)
                        );
 
-                       if((count($r)) && ($r[0]['hide-friends'] == 0)) {
+                       if((dbm::is_result($r)) && ($r[0]['hide-friends'] == 0)) {
 
                                require_once('include/items.php');