/** * @param $channel * @throws SlackException */ public function manageChannel($channel) { $channelIds = []; $channelUsers = $channel->is_group ? $this->slackMonkey->getUsersForGroup($channel->slack_id) : $this->slackMonkey->getUsersForChannel($channel->slack_id); foreach ($channelUsers as $user) { $channelIds[] = $user; $hasAccess = false; foreach ($channel->groups as $group) { /** @var \JamylBot\Group $group */ if ($group->isMemberBySlack($user)) { $hasAccess = true; } } if (!$hasAccess && $user != config('slack.jamyl-id')) { $channel->is_group ? $this->slackMonkey->kickFromGroup($user, $channel->slack_id) : $this->slackMonkey->kickFromChannel($user, $channel->slack_id); } } foreach ($channel->groups as $group) { foreach ($group->users as $jamylUser) { if (!in_array($jamylUser->slack_id, $channelIds) && $group->isMemberBySlack($jamylUser->slack_id)) { $channel->is_group ? $this->slackMonkey->addToGroup($jamylUser->slack_id, $channel->slack_id) : $this->slackMonkey->addToChannel($jamylUser->slack_id, $channel->slack_id); } } } }