]> git.mxchange.org Git - friendica.git/blobdiff - mod/dfrn_confirm.php
default acl's
[friendica.git] / mod / dfrn_confirm.php
index e02fbf3d0a3cb78693175365f9ee8b5b76344810..a8a4b3b99cf3c9f734665fe0b7a18531e8780d1b 100644 (file)
@@ -9,19 +9,17 @@ function dfrn_confirm_post(&$a) {
 
        if(x($_POST,'source_url')) {
 
-       // We are processing an external confirmation to an introduction created by our user.
+               // We are processing an external confirmation to an introduction created by our user.
 
                $public_key = $_POST['public_key'];
                $dfrn_id = $_POST['dfrn_id'];
                $source_url = $_POST['source_url'];
                $aes_key = $_POST['aes_key'];
 
-               if(intval($node)) 
-                       $r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1",
-                               intval($node));
-               else
-                       $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1",
-                               dbesc($node));
+               // Find our user's account
+
+               $r = q("SELECT * FROM `user` WHERE `nickname` = '%s' LIMIT 1",
+                       dbesc($node));
 
                if(! count($r)) {
                        xml_status(3); // failure
@@ -32,6 +30,8 @@ function dfrn_confirm_post(&$a) {
 
                $decrypted_source_url = "";
 
+               // verify everything
+
                openssl_private_decrypt($source_url,$decrypted_source_url,$my_prvkey);
 
 
@@ -91,39 +91,19 @@ function dfrn_confirm_post(&$a) {
                                        
                                        $hash = hash('md5',uniqid(mt_rand(),true));
 
-                                       $r = q("INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`,
-                                               `height`, `width`, `data`, `scale` )
-                                               VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', 4 )",
-                                               intval($local_uid),
-                                               dbesc($hash),
-                                               datetime_convert(),
-                                               datetime_convert(),
-                                               dbesc(basename($r[0]['photo'])),
-                                               intval($img->getHeight()),
-                                               intval($img->getWidth()),
-                                               dbesc($img->imageString())
-                                       );
+                                       $r = $img->store($local_uid, $dfrn_record, $hash, $filename, t('Contact Photos') , 4);
+
                                        if($r === false)
                                                $photo_failure = true;
+                                       
                                        $img->scaleImage(80);
-                                       $r =  q("INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`,
-                                                `height`, `width`, `data`, `scale` )
-                                                VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', 5 )",
-                                                intval($local_uid),
-                                                dbesc($hash),
-                                                datetime_convert(),
-                                                datetime_convert(),
-                                                dbesc(basename($r[0]['photo'])),
-                                                intval($img->getHeight()),
-                                                intval($img->getWidth()),
-                                                dbesc($img->imageString())
-                                        );
+                                       $r = $img->store($local_uid, $dfrn_record, $hash, $filename, t('Contact Photos') , 5);
+
                                        if($r === false)
                                                $photo_failure = true;
 
                                        $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.jpg';
-                                       $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.jpg';
-                                       
+                                       $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.jpg';      
                                }
                                else
                                        $photo_failure = true;
@@ -136,13 +116,13 @@ function dfrn_confirm_post(&$a) {
                                $thumb = $a->get_baseurl() . '/images/default-profile-sm.jpg';
                        }
 
-                       $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `blocked` = 0 WHERE `id` = %d LIMIT 1",
+                       $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `blocked` = 0, `pending` = 0 WHERE `id` = %d LIMIT 1",
                                dbesc($photo),
                                dbesc($thumb),
                                intval($dfrn_record)
                        );
                        if($r === false)
-                               $_SESSION['sysmsg'] .= "Unable to set contact photo info." . EOL;
+                               notice( t("Unable to set contact photo info.") . EOL);
 
                        // Otherwise everything seems to have worked and we are almost done. Yay!
                        // Send an email notification
@@ -150,32 +130,33 @@ function dfrn_confirm_post(&$a) {
                        $r = q("SELECT * FROM `contact` LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
                                WHERE `contact`.`id` = %d LIMIT 1",
                                intval($dfrn_record));
+                       if((count($r)) && ($r[0]['notify-flags'] & NOTIFY_CONFIRM)) {
+
+                               $tpl = file_get_contents('view/intro_complete_eml.tpl');
                        
-                       $tpl = file_get_contents('view/intro_complete_eml.tpl');
-                       
-                       $email_tpl = replace_macros($tpl, array(
-                                '$sitename' => $a->config['sitename'],
-                                '$siteurl' =>  $a->get_baseurl(),
-                                '$username' => $r[0]['username'],
-                                '$email' => $r[0]['email'],
-                               '$fn' => $r[0]['name'],
-                               '$dfrn_url' => $r[0]['url'],
-                                '$uid' => $newuid ));
-
-
-                       $res = mail($r[0]['email'],"Introduction accepted at {$a->config['sitename']}",
-                               $email_tpl,"From: Administrator@{$_SERVER[SERVER_NAME]}");
-                       if(!$res) {
-                               notice( "Email notification failed." . EOL );
+                               $email_tpl = replace_macros($tpl, array(
+                                       '$sitename' => $a->config['sitename'],
+                                       '$siteurl' =>  $a->get_baseurl(),
+                                       '$username' => $r[0]['username'],
+                                       '$email' => $r[0]['email'],
+                                       '$fn' => $r[0]['name'],
+                                       '$dfrn_url' => $r[0]['url'],
+                                       '$uid' => $newuid )
+                               );
+       
+                               $res = mail($r[0]['email'], t("Introduction accepted at ") . $a->config['sitename'],
+                                       $email_tpl,t("From: Administrator@") . $_SERVER[SERVER_NAME] );
+                               if(!$res) {
+                                       notice( t("Email notification failed.") . EOL );
+                               }
                        }
                        xml_status(0); // Success
 
                        return; // NOTREACHED
-
                }
-               else
+               else {
                        xml_status(2);  // Hopefully temporary problem that can be retried.
-
+               }
                return; // NOTREACHED
 
        ////////////////////// End of this scenario ///////////////////////////////////////////////
@@ -187,7 +168,7 @@ function dfrn_confirm_post(&$a) {
                $uid = $_SESSION['uid'];
 
                if(! $uid) {
-                       notice("Permission denied." . EOL );
+                       notice( t("Permission denied.") . EOL );
                        return;
                }       
        
@@ -200,7 +181,7 @@ function dfrn_confirm_post(&$a) {
                                );
 
                if((! $r) || (! count($r))) {
-                       $_SESSION['sysmsg'] = 'Node does not exist.' . EOL ;
+                       notice( t('Node does not exist.') . EOL );
                        return;
                }
 
@@ -228,7 +209,7 @@ function dfrn_confirm_post(&$a) {
                        dbesc($private_key),
                        intval($contact_id),
                        intval($uid) 
-                       );
+               );
 
 
                $params = array();
@@ -262,7 +243,7 @@ function dfrn_confirm_post(&$a) {
                $status = (int) $xml->status;
                switch($status) {
                        case 0:
-                               $_SESSION['sysmsg'] .= "Confirmation completed successfully" . EOL;
+                               notice( t("Confirmation completed successfully") . EOL);
                                break;
                        case 1:
 
@@ -276,12 +257,12 @@ function dfrn_confirm_post(&$a) {
                                );
 
                        case 2:
-                               $_SESSION['sysmsg'] .= "Temporary failure. Please wait and try again." . EOL;
+                               notice( t("Temporary failure. Please wait and try again.") . EOL);
                                break;
 
 
                        case 3:
-                               $_SESSION['sysmsg'] .= "Introduction failed or was revoked. Cannot complete." . EOL;
+                               notice( t("Introduction failed or was revoked. Cannot complete.") . EOL);
                                break;
                }
 
@@ -316,39 +297,19 @@ function dfrn_confirm_post(&$a) {
                                        
                                $hash = hash('md5',uniqid(mt_rand(),true));
 
-                               $r = q("INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`,
-                                               `height`, `width`, `data`, `scale` )
-                                               VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', 4 )",
-                                       intval($local_uid),
-                                               dbesc($hash),
-                                               datetime_convert(),
-                                               datetime_convert(),
-                                               dbesc(basename($r[0]['photo'])),
-                                               intval($img->getHeight()),
-                                       intval($img->getWidth()),
-                                       dbesc($img->imageString())
-                               );
+                               $r = $img->store($uid, $contact_id, $hash, $filename, t('Contact Photos'), 4 );
+
                                if($r === false)
                                        $photo_failure = true;
                                $img->scaleImage(80);
-                               $r =  q("INSERT INTO `photo` ( `uid`, `resource-id`, `created`, `edited`, `filename`,
-                                       `height`, `width`, `data`, `scale` )
-                                         VALUES ( %d, '%s', '%s', '%s', '%s', %d, %d, '%s', 5 )",
-                                         intval($local_uid),
-                                         dbesc($hash),
-                                         datetime_convert(),
-                                         datetime_convert(),
-                                         dbesc(basename($r[0]['photo'])),
-                                         intval($img->getHeight()),
-                                         intval($img->getWidth()),
-                                         dbesc($img->imageString())
-                                );
+
+                               $r = $img->store($uid, $contact_id, $hash, $filename, t('Contact Photos'), 5 );
+
                                if($r === false)
                                        $photo_failure = true;
 
                                $photo = $a->get_baseurl() . '/photo/' . $hash . '-4.jpg';
                                $thumb = $a->get_baseurl() . '/photo/' . $hash . '-5.jpg';
-                                       
                        }
                        else
                                $photo_failure = true;
@@ -361,13 +322,17 @@ function dfrn_confirm_post(&$a) {
                        $thumb = $a->get_baseurl() . '/images/default-profile-sm.jpg';
                }
 
-               $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `blocked` = 0 WHERE `id` = %d LIMIT 1",
+               $r = q("UPDATE `contact` SET `photo` = '%s', `thumb` = '%s', `blocked` = 0, `pending` = 0 WHERE `id` = %d LIMIT 1",
                        dbesc($photo),
                        dbesc($thumb),
                        intval($contact_id)
                );
                if($r === false)
-                       $_SESSION['sysmsg'] .= "Unable to set contact photo info." . EOL;
+                       notice( t('Unable to set contact photo.') . EOL);
+
+               goaway($a->get_baseurl() . '/contacts/' . intval($contact_id));
+               return;  //NOTREACHED
+
        }
 
        return;