/** * @return array */ private function getKnownDomains() : array { $users = User::get(); $set = []; $filtered = []; /** @var User $user */ foreach ($users as $user) { $email = $user->email; $parts = explode('@', $email); $domain = $parts[1]; $set[] = $domain; } $set = array_unique($set); // filter for already banned domains: $blocked = FireflyConfig::get('blocked-domains', [])->data; foreach ($set as $domain) { // in the block array? ignore it. if (!in_array($domain, $blocked)) { $filtered[] = $domain; } } asort($filtered); return $filtered; }