createModel()->newQuery(); foreach ($credentials as $key => $value) { if (! str_contains($key, 'password')) { $query->where($key, $value); } } // Auf "lv" gilt grundsätzlich keine local_group-Einschränkung. if (app('tenant')->slug === 'lv') { return $query->first(); } // Auf Sub-Tenants: // - Entweder gehört der Nutzer zum aktuellen Tenant (local_group) // - ODER er ist auf LV-Ebene Administrator // -> "Bundesrecht steht über Landesrecht": Login überall möglich. $query->where('active', true) ->where(function ($q) { $q->where('local_group', app('tenant')->slug) ->orWhere('user_role_main', UserRole::USER_ROLE_ADMIN); }); return $query->first(); } }