Make the ForceGroup plugin work consistently for notices from remote users.
This commit is contained in:
parent
8e5d58fe2a
commit
9844ec76e9
@ -52,6 +52,24 @@ class ForceGroupPlugin extends Plugin
|
|||||||
function onStartNoticeDistribute($notice)
|
function onStartNoticeDistribute($notice)
|
||||||
{
|
{
|
||||||
$profile = $notice->getProfile();
|
$profile = $notice->getProfile();
|
||||||
|
|
||||||
|
$isRemote = !(User::staticGet('id', $profile->id));
|
||||||
|
if ($isRemote) {
|
||||||
|
/*
|
||||||
|
* Notices from remote users on other sites
|
||||||
|
* will normally not end up here unless they're
|
||||||
|
* specifically directed here, e.g.: via explicit
|
||||||
|
* post to a remote (to them) group. But remote
|
||||||
|
* notices can also be `pulled in' as a result of
|
||||||
|
* local users subscribing to the remote user;
|
||||||
|
* from the remote user's perspective, this results
|
||||||
|
* in group-forcing appearing effectively random.
|
||||||
|
* So let's be consistent, and just never force
|
||||||
|
* incoming remote notices into a ForceGroup:
|
||||||
|
*/
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($this->post as $nickname) {
|
foreach ($this->post as $nickname) {
|
||||||
$group = User_group::getForNickname($nickname);
|
$group = User_group::getForNickname($nickname);
|
||||||
if ($group && $profile->isMember($group)) {
|
if ($group && $profile->isMember($group)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user