diff --git a/apps/web/src/app/(portal)/admin/ldap/page.tsx b/apps/web/src/app/(portal)/admin/ldap/page.tsx
index 261f3bd..9205a71 100644
--- a/apps/web/src/app/(portal)/admin/ldap/page.tsx
+++ b/apps/web/src/app/(portal)/admin/ldap/page.tsx
@@ -81,6 +81,15 @@ export default function AdminLdapPage() {
const [discovering, setDiscovering] = useState(false);
const [manualDn, setManualDn] = useState('');
const [savingFilter, setSavingFilter] = useState(false);
+ const [discoverSearch, setDiscoverSearch] = useState('');
+
+ const filteredDiscovered = discovered?.filter((entry) => {
+ const q = discoverSearch.trim().toLowerCase();
+ if (!q) return true;
+ return (
+ entry.name.toLowerCase().includes(q) || entry.dn.toLowerCase().includes(q)
+ );
+ });
const hasAccess =
currentUser?.role === 'ADMIN' || currentUser?.role === 'SUPER_ADMIN';
@@ -555,26 +564,41 @@ export default function AdminLdapPage() {
{discovered && discovered.length > 0 && (
-
- {discovered.map((entry) => (
-
- ))}
+
+
setDiscoverSearch(e.target.value)}
+ placeholder={t('groupFilter.searchPlaceholder')}
+ className="flex h-9 w-full rounded-md border border-input bg-background px-3 py-1 text-sm"
+ />
+
+ {filteredDiscovered && filteredDiscovered.length > 0 ? (
+ filteredDiscovered.map((entry) => (
+
+ ))
+ ) : (
+
+ {t('groupFilter.noMatches')}
+
+ )}
+
)}
diff --git a/apps/web/src/messages/de.json b/apps/web/src/messages/de.json
index 2cef254..f64ead1 100644
--- a/apps/web/src/messages/de.json
+++ b/apps/web/src/messages/de.json
@@ -318,6 +318,8 @@
"typeOu": "OU",
"typeGroup": "Gruppe",
"noneFound": "Keine Gruppen oder OUs gefunden.",
+ "searchPlaceholder": "Gruppen/OUs durchsuchen...",
+ "noMatches": "Keine Treffer fuer diese Suche.",
"manualDn": "DN manuell hinzufuegen",
"addDn": "Hinzufuegen",
"selected": "Ausgewaehlt",
diff --git a/apps/web/src/messages/en.json b/apps/web/src/messages/en.json
index 18e03ff..4b62c4f 100644
--- a/apps/web/src/messages/en.json
+++ b/apps/web/src/messages/en.json
@@ -318,6 +318,8 @@
"typeOu": "OU",
"typeGroup": "Group",
"noneFound": "No groups or OUs found.",
+ "searchPlaceholder": "Search groups/OUs...",
+ "noMatches": "No matches for this search.",
"manualDn": "Add DN manually",
"addDn": "Add",
"selected": "Selected",