]> git.mxchange.org Git - friendica.git/commitdiff
Central function for default group, special setting for OStatus
authorMichael Vogel <icarus@dabo.de>
Sun, 6 Mar 2016 12:15:27 +0000 (13:15 +0100)
committerMichael Vogel <icarus@dabo.de>
Sun, 6 Mar 2016 12:15:27 +0000 (13:15 +0100)
include/diaspora.php
include/follow.php
include/group.php
mod/dfrn_confirm.php
mod/dfrn_request.php
mod/settings.php

index 93fe2a472feb47268375709fd4f771614c8e7634..635c1aabc306aacbb95722db2fdf7368722bb83f 100644 (file)
@@ -700,12 +700,10 @@ function diaspora_request($importer,$xml) {
                return;
        }
 
-       $g = q("select def_gid from user where uid = %d limit 1",
-               intval($importer['uid'])
-       );
-       if($g && intval($g[0]['def_gid'])) {
+       $def_gid = get_default_group($importer['uid'], $ret["network"]);
+       if (intval($def_gid)) {
                require_once('include/group.php');
-               group_add_member($importer['uid'],'',$contact_record['id'],$g[0]['def_gid']);
+               group_add_member($importer['uid'], '', $contact_record['id'], $def_gid);
        }
 
        if($importer['page-flags'] == PAGE_NORMAL) {
index 410e0e58aaa484a9b2a435f3d3f7a8d7d1a1bfc2..3af629536d61216d61c4fcc897c53e6872539585 100644 (file)
@@ -258,12 +258,10 @@ function new_contact($uid,$url,$interactive = false) {
        $contact_id  = $r[0]['id'];
        $result['cid'] = $contact_id;
 
-       $g = q("select def_gid from user where uid = %d limit 1",
-               intval($uid)
-       );
-       if($g && intval($g[0]['def_gid'])) {
+       $def_gid = get_default_group($uid, $contact["network"]);
+       if (intval($def_gid)) {
                require_once('include/group.php');
-               group_add_member($uid,'',$contact_id,$g[0]['def_gid']);
+               group_add_member($uid, '', $contact_id, $def_gid);
        }
 
        require_once("include/Photo.php");
index 2b872f16a7ce95234bdae038d3546df1f1242147..00b66ad58628f0db729447ed57987440b4a19e2f 100644 (file)
@@ -188,7 +188,7 @@ function group_public_members($gid) {
 }
 
 
-function mini_group_select($uid,$gid = 0) {
+function mini_group_select($uid,$gid = 0, $label = "") {
 
        $grps = array();
        $o = '';
@@ -205,8 +205,11 @@ function mini_group_select($uid,$gid = 0) {
        }
        logger('groups: ' . print_r($grps,true));
 
+       if ($label == "")
+               $label = t('Default privacy group for new contacts');
+
        $o = replace_macros(get_markup_template('group_selection.tpl'), array(
-               '$label' => t('Default privacy group for new contacts'),
+               '$label' => $label,
                '$groups' => $grps
        ));
        return $o;
@@ -375,3 +378,28 @@ function groups_count_unseen() {
 
        return $r;
 }
+
+/**
+ * @brief Returns the default group for a given user and network
+ *
+ * @param int $uid User id
+ * @param string $network network name
+ *
+ * @return int group id
+ */
+function get_default_group($uid, $network = "") {
+
+       $default_group = 0;
+
+       if ($network == NETWORK_OSTATUS)
+               $default_group = get_pconfig($uid, "ostatus", "default_group");
+
+       if ($default_group != 0)
+               return $default_group;
+
+       $g = q("SELECT `def_gid` FROM `user` WHERE `uid` = %d LIMIT 1", intval($uid));
+       if($g && intval($g[0]["def_gid"]))
+               $default_group = $g[0]["def_gid"];
+
+       return $default_group;
+}
index 27c04a908d297bb738e1c9ba9382d00ad01c2488..68950ec285a5f29a6be7fb037fdeb43c6f00ee99 100644 (file)
@@ -489,13 +489,10 @@ function dfrn_confirm_post(&$a,$handsfree = null) {
                        }
                }
 
-
-               $g = q("select def_gid from user where uid = %d limit 1",
-                       intval($uid)
-               );
-               if($contact && $g && intval($g[0]['def_gid'])) {
+               $def_gid = get_default_group($uid, $contact["network"]);
+               if($contact && intval($def_gid)) {
                        require_once('include/group.php');
-                       group_add_member($uid,'',$contact['id'],$g[0]['def_gid']);
+                       group_add_member($uid, '', $contact['id'], $def_gid);
                }
 
                // Let's send our user to the contact editor in case they want to
index 5455996069d0b5fd3324e0073b5c1e2d7d8b10fe..837eec2dd244ef222e9013ccb8160439c00011f0 100644 (file)
@@ -174,18 +174,16 @@ function dfrn_request_post(&$a) {
                                        info( t("Introduction complete.") . EOL);
                                }
 
-                               $r = q("select id from contact where uid = %d and url = '%s' and `site-pubkey` = '%s' limit 1",
+                               $r = q("SELECT `id`, `network` FROM `contact` WHERE `uid` = %d AND `url` = '%s' AND `site-pubkey` = '%s' LIMIT 1",
                                        intval(local_user()),
                                        dbesc($dfrn_url),
                                        $parms['key'] // this was already escaped
                                );
                                if(count($r)) {
-                                       $g = q("select def_gid from user where uid = %d limit 1",
-                                               intval(local_user())
-                                       );
-                                       if($g && intval($g[0]['def_gid'])) {
+                                       $def_gid = get_default_group(local_user(), $r[0]["network"]);
+                                       if(intval($def_gid)) {
                                                require_once('include/group.php');
-                                               group_add_member(local_user(),'',$r[0]['id'],$g[0]['def_gid']);
+                                               group_add_member(local_user(), '', $r[0]['id'], $def_gid);
                                        }
                                        $forwardurl = $a->get_baseurl()."/contacts/".$r[0]['id'];
                                } else
@@ -388,19 +386,17 @@ function dfrn_request_post(&$a) {
                                intval($rel)
                        );
 
-                       $r = q("select id from contact where poll = '%s' and uid = %d limit 1",
+                       $r = q("SELECT `id`, `network` FROM `contact` WHERE `poll` = '%s' AND `uid` = %d LIMIT 1",
                                dbesc($poll),
                                intval($uid)
                        );
                        if(count($r)) {
                                $contact_id = $r[0]['id'];
 
-                               $g = q("select def_gid from user where uid = %d limit 1",
-                                       intval($uid)
-                               );
-                               if($g && intval($g[0]['def_gid'])) {
+                               $def_gid = get_default_group($uid, $r[0]["network"]);
+                               if (intval($def_gid)) {
                                        require_once('include/group.php');
-                                       group_add_member($uid,'',$contact_id,$g[0]['def_gid']);
+                                       group_add_member($uid, '', $contact_id, $def_gid);
                                }
 
                                $photo = avatar_img($addr);
index 905a5ed08d5cbbbbc74ef4c677c44370a578c7b1..67513e533e4e982ae6f875cabbcbb000b067f57e 100644 (file)
@@ -199,6 +199,7 @@ function settings_post(&$a) {
                if(x($_POST, 'general-submit')) {
                        set_pconfig(local_user(), 'system', 'no_intelligent_shortening', intval($_POST['no_intelligent_shortening']));
                        set_pconfig(local_user(), 'system', 'ostatus_autofriend', intval($_POST['snautofollow']));
+                       set_pconfig(local_user(), 'ostatus', 'default_group', $_POST['group-selection']);
                        set_pconfig(local_user(), 'ostatus', 'legacy_contact', $_POST['legacy_contact']);
                } elseif(x($_POST, 'imap-submit')) {
 
@@ -797,8 +798,11 @@ function settings_content(&$a) {
                $settings_connectors .= '<span class="field_help">'.t('If you receive a message from an unknown OStatus user, this option decides what to do. If it is checked, a new contact will be created for every unknown user.').'</span>';
                $settings_connectors .= '</div>';
 
+               $default_group = get_pconfig(local_user(), 'ostatus', 'default_group');
                $legacy_contact = get_pconfig(local_user(), 'ostatus', 'legacy_contact');
 
+               $settings_connectors .= mini_group_select(local_user(), $default_group, t("Default group for OStatus followers"));
+
                if ($legacy_contact != "")
                        $a->page['htmlhead'] = '<meta http-equiv="refresh" content="0; URL='.$a->get_baseurl().'/ostatus_subscribe?url='.urlencode($legacy_contact).'">';