aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/widgets.php7
-rw-r--r--include/zot.php16
-rw-r--r--mod/connections.php3
-rw-r--r--version.inc2
-rw-r--r--view/pdl/mod_connections.pdl1
5 files changed, 27 insertions, 2 deletions
diff --git a/include/widgets.php b/include/widgets.php
index 96bced87f..1aa018fb6 100644
--- a/include/widgets.php
+++ b/include/widgets.php
@@ -48,6 +48,13 @@ function widget_collections($args) {
$abook_id = 0;
$wmode = 0;
break;
+ case 'connections':
+ $every = 'connections';
+ $each = 'group';
+ $edit = true;
+ $current = $_REQUEST['gid'];
+ $abook_id = 0;
+ $wmode = 0;
case 'groups':
$every = 'connections';
$each = argv(0);
diff --git a/include/zot.php b/include/zot.php
index bd9526f2d..8dcc19522 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -989,8 +989,22 @@ function import_xchan($arr,$ud_flags = UPDATE_FLAGS_UPDATED, $ud_arr = null) {
// Are we a directory server of some kind?
+ $other_realm = false;
+ $realm = get_directory_realm();
+ if(array_key_exists('site',$arr)
+ && array_key_exists('realm',$arr['site'])
+ && (strpos($arr['site']['realm'],$realm) !== false))
+ $other_realm = true;
+
if($dirmode != DIRECTORY_MODE_NORMAL) {
- if(array_key_exists('profile',$arr) && is_array($arr['profile'])) {
+
+ // We're some kind of directory server. However we can only add directory information
+ // if the entry is in the same realm (or is a sub-realm). Sub-realms are denoted by
+ // including the parent realm in the name. e.g. 'RED_GLOBAL:foo' would allow an entry to
+ // be in directories for the local realm (foo) and also the RED_GLOBAL realm.
+
+
+ if(array_key_exists('profile',$arr) && is_array($arr['profile']) && (! $other_realm)) {
$profile_changed = import_directory_profile($xchan_hash,$arr['profile'],$address,$ud_flags, 1);
if($profile_changed) {
$what .= 'profile ';
diff --git a/mod/connections.php b/mod/connections.php
index 1875ed908..028889647 100644
--- a/mod/connections.php
+++ b/mod/connections.php
@@ -337,6 +337,9 @@ function connections_content(&$a) {
}
$sql_extra .= (($searching) ? protect_sprintf(" AND xchan_name like '%$search_txt%' ") : "");
+ if($_REQUEST['gid']) {
+ $sql_extra .= " and xchan_hash in ( select xchan from group_member where gid = " . intval($_REQUEST['gid']) . " and uid = " . intval(local_user()) . " ) ";
+ }
$r = q("SELECT COUNT(abook.abook_id) AS total FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash
where abook_channel = %d and not (abook_flags & %d) and not (xchan_flags & %d ) $sql_extra $sql_extra2 ",
diff --git a/version.inc b/version.inc
index 652a04db0..6d17789e1 100644
--- a/version.inc
+++ b/version.inc
@@ -1 +1 @@
-2014-08-16.769
+2014-08-17.770
diff --git a/view/pdl/mod_connections.pdl b/view/pdl/mod_connections.pdl
index fc86e4490..fd3f25483 100644
--- a/view/pdl/mod_connections.pdl
+++ b/view/pdl/mod_connections.pdl
@@ -1,5 +1,6 @@
[region=aside]
[widget=follow][/widget]
+[widget=collections][var=mode][connections[/arg][/widget]
[widget=suggestions][/widget]
[widget=findpeople][/widget]
[/region]