aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <mike@macgirvin.com>2016-10-01 16:01:22 -0700
committerMario Vavti <mario@mariovavti.com>2016-10-02 10:05:42 +0200
commit1af56b102583ca9bd3373878aad64c5a5f7e2a65 (patch)
tree45eaa54222daee6d7418900fcca8053dab0c499a
parent27d5b9cfd00e9d7ed3d7d20b8f95ad92e8b97fc4 (diff)
downloadvolse-hubzilla-1af56b102583ca9bd3373878aad64c5a5f7e2a65.tar.gz
volse-hubzilla-1af56b102583ca9bd3373878aad64c5a5f7e2a65.tar.bz2
volse-hubzilla-1af56b102583ca9bd3373878aad64c5a5f7e2a65.zip
sync cloud storage permission changes (issue #538 continued)
-rw-r--r--Zotlabs/Module/Filestorage.php4
-rw-r--r--include/attach.php15
2 files changed, 15 insertions, 4 deletions
diff --git a/Zotlabs/Module/Filestorage.php b/Zotlabs/Module/Filestorage.php
index a401f4822..8b8620d6f 100644
--- a/Zotlabs/Module/Filestorage.php
+++ b/Zotlabs/Module/Filestorage.php
@@ -44,14 +44,14 @@ class Filestorage extends \Zotlabs\Web\Controller {
//get the object before permissions change so we can catch eventual former allowed members
$object = get_file_activity_object($channel_id, $resource, $cloudPath);
- attach_change_permissions($channel_id, $resource, $x['allow_cid'], $x['allow_gid'], $x['deny_cid'], $x['deny_gid'], $recurse);
+ attach_change_permissions($channel_id, $resource, $x['allow_cid'], $x['allow_gid'], $x['deny_cid'], $x['deny_gid'], $recurse, true);
file_activity($channel_id, $object, $x['allow_cid'], $x['allow_gid'], $x['deny_cid'], $x['deny_gid'], 'post', $notify);
goaway($cloudPath);
}
- function get() {
+ function get() {
if(argc() > 1)
$which = argv(1);
diff --git a/include/attach.php b/include/attach.php
index 3d55b3bcb..95ce09e3a 100644
--- a/include/attach.php
+++ b/include/attach.php
@@ -1198,7 +1198,11 @@ function attach_mkdirp($channel, $observer_hash, $arr = null) {
* @param string $deny_gid
* @param boolean $recurse (optional) default false
*/
-function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse = false) {
+function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse = false, $sync = false) {
+
+ $channel = channelx_by_n($channel_id);
+ if(! $channel)
+ return;
$r = q("select hash, flags, is_dir, is_photo from attach where hash = '%s' and uid = %d limit 1",
dbesc($resource),
@@ -1216,7 +1220,7 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi
);
if($r) {
foreach($r as $rr) {
- attach_change_permissions($channel_id, $rr['hash'], $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse);
+ attach_change_permissions($channel_id, $rr['hash'], $allow_cid, $allow_gid, $deny_cid, $deny_gid, $recurse, $sync);
}
}
}
@@ -1240,6 +1244,13 @@ function attach_change_permissions($channel_id, $resource, $allow_cid, $allow_gi
intval($channel_id)
);
}
+
+ if($sync) {
+ $data = attach_export_data($channel,$resource_id);
+
+ if($data)
+ build_sync_packet($channel['channel_id'],array('file' => array($data)));
+ }
}
/**