when removing a channel, check to see if there are any valid hublocs remaining before marking the xchan deleted.
Issue #657
This commit is contained in:
parent
35be89ad66
commit
d5edd89dd2
@ -245,11 +245,13 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
|||||||
intval($channel_id)
|
intval($channel_id)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$r = q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_hash = '%s'",
|
$r = q("update hubloc set hubloc_flags = (hubloc_flags | %d) where hubloc_hash = '%s'",
|
||||||
intval(HUBLOC_FLAGS_DELETED),
|
intval(HUBLOC_FLAGS_DELETED),
|
||||||
dbesc($channel['channel_hash'])
|
dbesc($channel['channel_hash'])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
|
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s'",
|
||||||
intval(XCHAN_FLAGS_DELETED),
|
intval(XCHAN_FLAGS_DELETED),
|
||||||
dbesc($channel['channel_hash'])
|
dbesc($channel['channel_hash'])
|
||||||
@ -257,7 +259,6 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
|||||||
|
|
||||||
proc_run('php','include/notifier.php','purge_all',$channel_id);
|
proc_run('php','include/notifier.php','purge_all',$channel_id);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
q("DELETE FROM `groups` WHERE `uid` = %d", intval($channel_id));
|
q("DELETE FROM `groups` WHERE `uid` = %d", intval($channel_id));
|
||||||
@ -291,11 +292,23 @@ function channel_remove($channel_id, $local = true, $unset_session=true) {
|
|||||||
dbesc(z_root())
|
dbesc(z_root())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Do we have any valid hublocs remaining?
|
||||||
|
|
||||||
|
$hublocs = 0;
|
||||||
|
|
||||||
|
$r = q("select hubloc_id from hubloc where hubloc_hash = '%s' and not (hubloc_flags & %d)",
|
||||||
|
dbesc($channel['channel_hash']),
|
||||||
|
intval(HUBLOC_FLAGS_DELETED)
|
||||||
|
);
|
||||||
|
if($r)
|
||||||
|
$hublocs = count($r);
|
||||||
|
|
||||||
|
if(! $hublocs) {
|
||||||
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' ",
|
$r = q("update xchan set xchan_flags = (xchan_flags | %d) where xchan_hash = '%s' ",
|
||||||
intval(XCHAN_FLAGS_DELETED),
|
intval(XCHAN_FLAGS_DELETED),
|
||||||
dbesc($channel['channel_hash'])
|
dbesc($channel['channel_hash'])
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
proc_run('php','include/directory.php',$channel_id);
|
proc_run('php','include/directory.php',$channel_id);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user