aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-03-02 19:40:59 -0800
committerfriendica <info@friendica.com>2014-03-02 19:40:59 -0800
commit7baeb451836752a612ca976db04aeffcafeb621d (patch)
tree09a75e437616318eecc689c5331344c112fe4afd
parentb98ddc69de966fbb8a47ba5ca4947c6cb3f81618 (diff)
downloadvolse-hubzilla-7baeb451836752a612ca976db04aeffcafeb621d.tar.gz
volse-hubzilla-7baeb451836752a612ca976db04aeffcafeb621d.tar.bz2
volse-hubzilla-7baeb451836752a612ca976db04aeffcafeb621d.zip
some anomolies found when viewing connections in various cases.
-rwxr-xr-xboot.php4
-rwxr-xr-xinclude/text.php12
-rw-r--r--include/zot.php21
-rw-r--r--mod/zfinger.php16
-rw-r--r--view/css/mod_viewconnections.css33
5 files changed, 78 insertions, 8 deletions
diff --git a/boot.php b/boot.php
index 1c7e5f147..e2a168156 100755
--- a/boot.php
+++ b/boot.php
@@ -1810,9 +1810,7 @@ function construct_page(&$a) {
if(! count($a->layout)) {
$n = 'mod_' . $a->module . '.pdl' ;
- $u = get_theme_uid();
- if((! $u) && $a->profile_uid)
- $u = $a->profile_uid;
+ $u = comanche_get_channel_id();
if($u)
$s = get_pconfig($u,'system',$n);
if((! $s) && (($p = theme_include($n)) != ''))
diff --git a/include/text.php b/include/text.php
index dfd35c769..839e63f5e 100755
--- a/include/text.php
+++ b/include/text.php
@@ -665,8 +665,11 @@ function contact_block() {
if((! is_array($a->profile)) || ($a->profile['hide_friends']))
return $o;
- $r = q("SELECT COUNT(abook_id) AS total FROM abook WHERE abook_channel = %d and abook_flags = 0",
- intval($a->profile['uid'])
+ $r = q("SELECT COUNT(abook_id) AS total FROM abook left join xchan on abook_xchan = xchan_hash WHERE abook_channel = %d and abook_flags = 0 and not (xchan_flags & %d) and not (xchan_flags & %d) and not (xchan_flags & %d)",
+ intval($a->profile['uid']),
+ intval(XCHAN_FLAGS_HIDDEN),
+ intval(XCHAN_FLAGS_ORPHAN),
+ intval(XCHAN_FLAGS_DELETED)
);
if(count($r)) {
$total = intval($r[0]['total']);
@@ -677,8 +680,11 @@ function contact_block() {
} else {
- $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash WHERE abook_channel = %d AND abook_flags = 0 ORDER BY RAND() LIMIT %d",
+ $r = q("SELECT abook.*, xchan.* FROM abook left join xchan on abook.abook_xchan = xchan.xchan_hash WHERE abook_channel = %d AND abook_flags = 0 and not (xchan_flags & %d ) and not (xchan_flags & %d ) and not (xchan_flags & %d ) ORDER BY RAND() LIMIT %d",
intval($a->profile['uid']),
+ intval(XCHAN_FLAGS_HIDDEN),
+ intval(XCHAN_FLAGS_ORPHAN),
+ intval(XCHAN_FLAGS_DELETED),
intval($shown)
);
diff --git a/include/zot.php b/include/zot.php
index d7d7eb419..a52abfecd 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -330,8 +330,15 @@ function zot_refresh($them,$channel = null, $force = false) {
else
$permissions = $j['permissions'];
+ $connected_set = false;
+
if($permissions && is_array($permissions)) {
foreach($permissions as $k => $v) {
+ // The connected permission means you are in their address book
+ if($k === 'connected') {
+ $connected_set = intval($v);
+ continue;
+ }
if($v) {
$their_perms = $their_perms | intval($global_perms[$k][1]);
}
@@ -353,6 +360,20 @@ function zot_refresh($them,$channel = null, $force = false) {
intval($channel['channel_id']),
intval(ABOOK_FLAG_SELF)
);
+ if($connected_set === 0) {
+
+ // if they are in your address book but you aren't in theirs, mark their address book entry hidden.
+
+ $y1 = q("update abook set abook_flags = (abook_flags | %d)
+ where abook_xchan = '%s' and abook_channel = %d
+ and not (abook_flags & %d) limit 1",
+ intval(ABOOK_FLAG_HIDDEN),
+ dbesc($x['hash']),
+ intval($channel['channel_id']),
+ intval(ABOOK_FLAG_SELF)
+ );
+ }
+
if(! $y)
logger('abook update failed');
else {
diff --git a/mod/zfinger.php b/mod/zfinger.php
index 94671271b..75abfefe4 100644
--- a/mod/zfinger.php
+++ b/mod/zfinger.php
@@ -176,10 +176,22 @@ function zfinger_init(&$a) {
$ret['follow_url'] = z_root() . '/follow?f=&url=%s';
- $permissions = get_all_perms($e['channel_id'],(($ztarget && $zsig)
+ $ztarget_hash = (($ztarget && $zsig)
? base64url_encode(hash('whirlpool',$ztarget . $zsig,true))
- : '' ),false);
+ : '' );
+ $permissions = get_all_perms($e['channel_id'],$ztarget_hash,false);
+
+ $permissions['connected'] = false;
+
+ if($ztarget_hash) {
+ $b = q("select * from abook where abook_xchan = '%s' and abook_channel = %d limit 1",
+ dbesc($ztarget_hash),
+ intval($e['channel_id'])
+ );
+ if($b)
+ $permissions['connected'] = true;
+ }
$ret['permissions'] = (($ztarget && $zkey) ? aes_encapsulate(json_encode($permissions),$zkey) : $permissions);
diff --git a/view/css/mod_viewconnections.css b/view/css/mod_viewconnections.css
new file mode 100644
index 000000000..56add4cac
--- /dev/null
+++ b/view/css/mod_viewconnections.css
@@ -0,0 +1,33 @@
+
+
+.contact-entry-wrapper {
+ float: left;
+ width: 120px;
+ height: 120px;
+ padding: 10px;
+}
+
+#contacts-search {
+ font-size: 1em;
+ width: 300px;
+}
+
+#contacts-search-end {
+ margin-bottom: 10px;
+}
+
+.contact-entry-photo-end {
+ clear: both;
+}
+
+.contact-entry-name {
+ float: left;
+ margin-left: 0px;
+ margin-right: 10px;
+ width: 120px;
+ overflow: hidden;
+}
+
+.contact-entry-end {
+ clear: both;
+}