]> git.mxchange.org Git - friendica.git/commitdiff
initial dfrn update to pass perms
authorFriendika <info@friendika.com>
Mon, 11 Apr 2011 01:38:55 +0000 (18:38 -0700)
committerFriendika <info@friendika.com>
Mon, 11 Apr 2011 01:38:55 +0000 (18:38 -0700)
boot.php
database.sql
include/items.php
mod/dfrn_notify.php
mod/dfrn_poll.php
update.php

index 75f031908eacd6f54f0a3541f2758f2abd5f41cb..669326dc633a996b3d6723821da906a7ae3fcaaa 100644 (file)
--- a/boot.php
+++ b/boot.php
@@ -4,7 +4,7 @@ set_time_limit(0);
 
 define ( 'FRIENDIKA_VERSION',      '2.1.945' );
 define ( 'DFRN_PROTOCOL_VERSION',  '2.2'  );
-define ( 'DB_UPDATE_VERSION',      1047   );
+define ( 'DB_UPDATE_VERSION',      1048   );
 
 define ( 'EOL',                    "<br />\r\n"     );
 define ( 'ATOM_TIME',              'Y-m-d\TH:i:s\Z' );
index eb6eebc4a77f9c5aee316155a8a6846961775506..defab4e8f7c3252f9e62ef8bc81e4fa9ea7b33fc 100644 (file)
@@ -85,6 +85,7 @@ CREATE TABLE IF NOT EXISTS `contact` (
   `priority` tinyint(3) NOT NULL,
   `blocked` tinyint(1) NOT NULL DEFAULT '1',
   `readonly` tinyint(1) NOT NULL DEFAULT '0',
+  `writable` tinyint(1) NOT NULL DEFAULT '0',
   `pending` tinyint(1) NOT NULL DEFAULT '1',
   `rating` tinyint(1) NOT NULL DEFAULT '0',
   `reason` text NOT NULL,
index 5969466813a0d1b406a8319c3802abfc4ef6a007..d7644fb421cb315523ead3db28b40005d0eb4e21 100644 (file)
@@ -867,14 +867,14 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
        if($dissolve)
                $postvars['dissolve'] = '1';
 
-       if(($contact['rel']) && ($contact['rel'] != REL_FAN) && (! $contact['blocked']) && (! $contact['readonly'])) {
-               $postvars['data'] = $atom;
-       }
-       elseif($owner['page-flags'] == PAGE_COMMUNITY) {
+
+       if((($contact['rel']) && ($contact['rel'] != REL_FAN) && (! $contact['blocked'])) || ($owner['page-flags'] == PAGE_COMMUNITY)) {
                $postvars['data'] = $atom;
+               $postvars['perm'] = 'rw';
        }
        else {
                $postvars['data'] = str_replace('<dfrn:comment-allow>1','<dfrn:comment-allow>0',$atom);
+               $postvars['perm'] = 'r';
        }
 
        if($rino && $rino_allowed && (! $dissolve)) {
@@ -916,7 +916,6 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
        if((! $curl_stat) || (! strlen($xml)))
                return(-1); // timed out
 
-
        if(strpos($xml,'<?xml') === false) {
                logger('dfrn_deliver: phase 2: no valid XML returned');
                logger('dfrn_deliver: phase 2: returned XML: ' . $xml, LOGGER_DATA);
@@ -925,8 +924,7 @@ function dfrn_deliver($owner,$contact,$atom, $dissolve = false) {
 
        $res = parse_xml_string($xml);
 
-       return $res->status;
+       return $res->status; 
 }
 
 
index cd67df1d7c8da9d1cbeefde0161d19c6d4390edb..dd6866b385c8e084be3a2e7845ff9a6d28491310 100644 (file)
@@ -10,6 +10,12 @@ function dfrn_notify_post(&$a) {
        $data         = ((x($_POST,'data'))         ? $_POST['data']                    : '');
        $key          = ((x($_POST,'key'))          ? $_POST['key']                     : '');
        $dissolve     = ((x($_POST,'dissolve'))     ? intval($_POST['dissolve'])        :  0);
+       $perm         = ((x($_POST,'perm'))         ? notags(trim($_POST['perm']))      : 'r');
+
+       $writable = (-1);
+       if($dfrn_version >= 2.21) {
+               $writable = (($perm === 'rw') ? 1 : 0);
+       }
 
        $direction = (-1);
        if(strpos($dfrn_id,':') == 1) {
index 2ccfadd03e0fc0198c0f924f4d84a01398ac89ff..a2fdb9ee13c532e0d85b0dc1ed944fde7e841cdc 100644 (file)
@@ -16,6 +16,7 @@ function dfrn_poll_init(&$a) {
        $challenge       = ((x($_GET,'challenge'))       ? $_GET['challenge']            : '');
        $sec             = ((x($_GET,'sec'))             ? $_GET['sec']                  : '');
        $dfrn_version    = ((x($_GET,'dfrn_version'))    ? (float) $_GET['dfrn_version'] : 2.0);
+       $perm            = ((x($_GET,'perm'))            ? $_GET['perm']                 : 'r');
 
        $direction = (-1);
 
@@ -183,8 +184,9 @@ function dfrn_poll_post(&$a) {
        $challenge    = ((x($_POST,'challenge'))    ? $_POST['challenge']            : '');
        $url          = ((x($_POST,'url'))          ? $_POST['url']                  : '');
        $sec          = ((x($_POST,'sec'))          ? $_POST['sec']                  : '');
-       $ptype        = ((x($_POST,'type'))         ? $_POST['type']                  : '');
+       $ptype        = ((x($_POST,'type'))         ? $_POST['type']                 : '');
        $dfrn_version = ((x($_POST,'dfrn_version')) ? (float) $_POST['dfrn_version'] : 2.0);
+       $perm         = ((x($_POST,'perm'))         ? $_POST['perm']                 : 'r');
 
        if($ptype === 'profile-check') {
 
@@ -344,6 +346,7 @@ function dfrn_poll_content(&$a) {
        $destination_url = ((x($_GET,'destination_url')) ? $_GET['destination_url']      : '');
        $sec             = ((x($_GET,'sec'))             ? $_GET['sec']                  : '');
        $dfrn_version    = ((x($_GET,'dfrn_version'))    ? (float) $_GET['dfrn_version'] : 2.0);
+       $perm            = ((x($_GET,'perm'))            ? $_GET['perm']                 : 'r');
 
        $direction = (-1);
        if(strpos($dfrn_id,':') == 1) {
index 1c243e6ee685f5252fe5be4f5ede4fafe49d5875..1d45f5f11aca38a707f30746ec07e9a18801c315 100644 (file)
@@ -423,3 +423,8 @@ function update_1045() {
 function update_1046() {
        q("ALTER TABLE `item` ADD `attach` MEDIUMTEXT NOT NULL AFTER `tag` ");
 }
+
+function update_1047() {
+       q("ALTER TABLE `contact` ADD `writable` TINYINT( 1 ) NOT NULL DEFAULT '0' AFTER `readonly` ");
+}
+