aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSimon L'nu <simon.lnu@gmail.com>2012-05-18 12:12:40 -0400
committerSimon L'nu <simon.lnu@gmail.com>2012-05-18 12:12:40 -0400
commit83f0807e59b5be288374a825d1e4f75869d515de (patch)
tree8f3226d74c76d736564e0c6ed9e97f6d0388126c /include
parentc024c17b5f7253432e9c53aa642f003b537f6b6b (diff)
parent38217444502aee41d71d90c0c8927999bb1b12e6 (diff)
downloadvolse-hubzilla-83f0807e59b5be288374a825d1e4f75869d515de.tar.gz
volse-hubzilla-83f0807e59b5be288374a825d1e4f75869d515de.tar.bz2
volse-hubzilla-83f0807e59b5be288374a825d1e4f75869d515de.zip
Merge branch 'master', remote-tracking branch 'remotes/upstream/master'
* remotes/upstream/master: apply max-width to images in posts, duepuntozero theming for default group selector catch more places to apply default group make it difficult to setup a private forum with no privacy more private forums, default privacy group for new contacts tell browser not to cache permission denied (private) photos so that after authenticating we don't have to fight the browser - plus more prvgroup work * master:
Diffstat (limited to 'include')
-rw-r--r--include/diaspora.php8
-rw-r--r--include/group.php31
-rw-r--r--include/items.php61
-rw-r--r--include/notifier.php8
4 files changed, 75 insertions, 33 deletions
diff --git a/include/diaspora.php b/include/diaspora.php
index 2051de5fc..3f2cdf8e4 100644
--- a/include/diaspora.php
+++ b/include/diaspora.php
@@ -569,6 +569,14 @@ 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'])) {
+ require_once('include/group.php');
+ group_add_member($importer['uid'],'',$contact_record['id'],$g[0]['def_gid']);
+ }
+
if($importer['page-flags'] == PAGE_NORMAL) {
$hash = random_string() . (string) time(); // Generate a confirm_key
diff --git a/include/group.php b/include/group.php
index edb547de6..854ac06a9 100644
--- a/include/group.php
+++ b/include/group.php
@@ -97,8 +97,9 @@ function group_rmv_member($uid,$name,$member) {
}
-function group_add_member($uid,$name,$member) {
- $gid = group_byname($uid,$name);
+function group_add_member($uid,$name,$member,$gid = 0) {
+ if(! $gid)
+ $gid = group_byname($uid,$name);
if((! $gid) || (! $uid) || (! $member))
return false;
@@ -154,6 +155,32 @@ function group_public_members($gid) {
}
+function mini_group_select($uid,$gid = 0) {
+
+ $grps = array();
+ $o = '';
+
+ $r = q("SELECT * FROM `group` WHERE `deleted` = 0 AND `uid` = %d ORDER BY `name` ASC",
+ intval($uid)
+ );
+ $grps[] = array('name' => '', 'id' => '0', 'selected' => '');
+ if(count($r)) {
+ foreach($r as $rr) {
+ $grps[] = array('name' => $rr['name'], 'id' => $rr['id'], 'selected' => (($gid == $rr['id']) ? 'true' : ''));
+ }
+
+ }
+ logger('groups: ' . print_r($grps,true));
+
+ $o = replace_macros(get_markup_template('group_selection.tpl'), array(
+ '$label' => t('Default privacy group for new contacts'),
+ '$groups' => $grps
+ ));
+ return $o;
+}
+
+
+
function group_side($every="contacts",$each="group",$edit = false, $group_id = 0, $cid = 0) {
diff --git a/include/items.php b/include/items.php
index 51e21d289..91c9056fe 100644
--- a/include/items.php
+++ b/include/items.php
@@ -988,33 +988,31 @@ function tag_deliver($uid,$item_id) {
}
}
- if((! $mention) && (! $prvgroup))
+ if(! $mention)
return;
- if($mention) {
+ // send a notification
+
+ require_once('include/enotify.php');
+ notification(array(
+ 'type' => NOTIFY_TAGSELF,
+ 'notify_flags' => $u[0]['notify-flags'],
+ 'language' => $u[0]['language'],
+ 'to_name' => $u[0]['username'],
+ 'to_email' => $u[0]['email'],
+ 'uid' => $u[0]['uid'],
+ 'item' => $item,
+ 'link' => $a->get_baseurl() . '/display/' . $u[0]['nickname'] . '/' . $item['id'],
+ 'source_name' => $item['author-name'],
+ 'source_link' => $item['author-link'],
+ 'source_photo' => $item['author-avatar'],
+ 'verb' => ACTIVITY_TAG,
+ 'otype' => 'item'
+ ));
- // send a notification
+ if((! $community_page) && (! prvgroup))
+ return;
- require_once('include/enotify.php');
- notification(array(
- 'type' => NOTIFY_TAGSELF,
- 'notify_flags' => $u[0]['notify-flags'],
- 'language' => $u[0]['language'],
- 'to_name' => $u[0]['username'],
- 'to_email' => $u[0]['email'],
- 'uid' => $u[0]['uid'],
- 'item' => $item,
- 'link' => $a->get_baseurl() . '/display/' . $u[0]['nickname'] . '/' . $item['id'],
- 'source_name' => $item['author-name'],
- 'source_link' => $item['author-link'],
- 'source_photo' => $item['author-avatar'],
- 'verb' => ACTIVITY_TAG,
- 'otype' => 'item'
- ));
-
- if(! $community_page)
- return;
- }
// tgroup delivery - setup a second delivery chain
// prevent delivery looping - only proceed
@@ -1036,8 +1034,11 @@ function tag_deliver($uid,$item_id) {
$private = ($u[0]['allow_cid'] || $u[0]['allow_gid'] || $u[0]['deny_cid'] || $u[0]['deny_gid']) ? 1 : 0;
- q("update item set wall = 1, origin = 1, forum_mode = 1, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s',
+ $forum_mode = (($prvgroup) ? 2 : 1);
+
+ q("update item set wall = 1, origin = 1, forum_mode = %d, `owner-name` = '%s', `owner-link` = '%s', `owner-avatar` = '%s',
`private` = %d, `allow_cid` = '%s', `allow_gid` = '%s', `deny_cid` = '%s', `deny_gid` = '%s' where id = %d limit 1",
+ intval($forum_mode),
dbesc($c[0]['name']),
dbesc($c[0]['url']),
dbesc($c[0]['thumb']),
@@ -2199,7 +2200,7 @@ function local_delivery($importer,$data) {
if($is_reply) {
$community = false;
- if($importer['page-flags'] == PAGE_COMMUNITY) {
+ if($importer['page-flags'] == PAGE_COMMUNITY || $importer['page-flags'] == PAGE_PRVGROUP ) {
$sql_extra = '';
$community = true;
logger('local_delivery: possible community reply');
@@ -2226,8 +2227,8 @@ function local_delivery($importer,$data) {
if($r && count($r))
$is_a_remote_comment = true;
- // Does this have the characteristics of a community comment?
- // If it's a reply to a wall post on a community page it's a
+ // Does this have the characteristics of a community or private group comment?
+ // If it's a reply to a wall post on a community/prvgroup page it's a
// valid community comment. Also forum_mode makes it valid for sure.
// If neither, it's not.
@@ -2716,6 +2717,12 @@ function new_follower($importer,$contact,$datarray,$item,$sharing = false) {
);
$a = get_app();
if(count($r)) {
+
+ if(intval($r[0]['def_gid'])) {
+ require_once('include/group.php');
+ group_add_member($r[0]['uid'],'',$contact_record['id'],$r[0]['def_gid']);
+ }
+
if(($r[0]['notify-flags'] & NOTIFY_INTRO) && ($r[0]['page-flags'] == PAGE_NORMAL)) {
$email_tpl = get_intltext_template('follow_notify_eml.tpl');
$email = replace_macros($email_tpl, array(
diff --git a/include/notifier.php b/include/notifier.php
index 6ce281372..ea4a1bea8 100644
--- a/include/notifier.php
+++ b/include/notifier.php
@@ -220,7 +220,7 @@ function notifier_run($argv, $argc){
}
- if(($cmd === 'uplink') && (intval($parent['forum_mode'])) && (! $top_level)) {
+ if(($cmd === 'uplink') && (intval($parent['forum_mode']) == 1) && (! $top_level)) {
$relay_to_owner = true;
}
@@ -265,10 +265,10 @@ function notifier_run($argv, $argc){
$deny_people = expand_acl($parent['deny_cid']);
$deny_groups = expand_groups(expand_acl($parent['deny_gid']));
- // if our parent is a forum, uplink to the origional author causing
- // a delivery fork
+ // if our parent is a public forum (forum_mode == 1), uplink to the origional author causing
+ // a delivery fork. private groups (forum_mode == 2) do not uplink
- if(intval($parent['forum_mode']) && (! $top_level) && ($cmd !== 'uplink')) {
+ if((intval($parent['forum_mode']) == 1) && (! $top_level) && ($cmd !== 'uplink')) {
proc_run('php','include/notifier','uplink',$item_id);
}