from fb_tools.xlate import format_list
# Own modules
-from .. import pp
-
from ..xlate import XLATOR
-from .ldap import LdapAppError, FatalLDAPError
from .ldap import BaseLdapApplication
-__version__ = '0.3.0'
+__version__ = '0.3.1'
LOG = logging.getLogger(__name__)
_ = XLATOR.gettext
eval_group.add_argument(
'-U', '--uniq-attribs', nargs='*', dest='uniq_attribs', metavar=_('ATTRIBUTE'),
help=_(
- "All attributes, which should be unique over the complete LDAP tree. "
- "Per default the following attributes should be unique:"
- ) + ' ' + format_list(self.default_uniq_attributes, do_repr=True),
+ "All attribute types, which should be unique over the complete LDAP tree. "
+ "Per default the following attribute types should be unique:"
+ ) + ' ' + format_list(self.default_uniq_attributes, do_repr=True),
)
eval_group.add_argument(
'--dependend-attribs', nargs='*', dest='dependend_attribs', metavar=_('ATTRIBUTE'),
help=_(
- "All attributes, where their uniqueness depends on an additional "
- "LDAP filter. For instance, dhe attribute 'gidNumber' should be unique for "
+ "All attribute types, where their uniqueness depends on an additional "
+ "LDAP filter. For instance, the attribute 'gidNumber' should be unique for "
"all entries, which are using the objectClass 'posixGroup'. The value "
"for this argument should be in the form: 'ATTRIBUTE: \"FILTER\"'. For the latter "
"example this would be: 'gidNumber: \"objectClass=posixGroup\"' (which "
dep_attribs[attr_name] = attr_filter
else:
wrong_attribs = True
- msg = _("Wrong definition if a filter dependend unique attribute given:")
+ msg = _("Wrong definition for a filter dependend unique attribute given:")
msg += ' {!r}'.format(attrib)
LOG.error(msg)
if wrong_attribs:
#
msgid ""
msgstr ""
-"Project-Id-Version: pp_admintools \n"
+"Project-Id-Version: pp_admintools 0.8.7\n"
"Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2023-01-11 17:51+0100\n"
-"PO-Revision-Date: 2023-01-11 17:55+0100\n"
+"POT-Creation-Date: 2023-05-10 16:23+0200\n"
+"PO-Revision-Date: 2023-05-10 16:00+0100\n"
"Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
"Language: de_DE\n"
"Language-Team: de_DE <solution@pixelpark.com>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.11.0\n"
+"Generated-By: Babel 2.8.0\n"
#: lib/pp_admintools/app/__init__.py:114
msgid "Using logfile {!r}."
#: lib/pp_admintools/app/check_ldap_dn_attributes.py:105
msgid "Exportig the faulty entries and attributes into a YAML file, if there were found some of them."
-msgstr "Exportieren der fehlerhaften Einträge und Attribute in eine YAML-Datei, falls welche gefunden wurden."
+msgstr ""
+"Exportieren der fehlerhaften Einträge und Attribute in eine YAML-Datei, falls welche gefunden "
+"wurden."
#: lib/pp_admintools/app/check_ldap_dn_attributes.py:134
msgid "Created export file {!r}."
msgstr "Führe aus: {}"
#: lib/pp_admintools/app/dns_deploy_zones.py:456 lib/pp_admintools/app/dns_deploy_zones.py:810
-#: lib/pp_admintools/app/ldap.py:810 lib/pp_admintools/app/ldap.py:944
-#: lib/pp_admintools/app/ldap.py:997 lib/pp_admintools/app/ldap.py:1050
-#: lib/pp_admintools/app/ldap.py:1338 lib/pp_admintools/app/ldap.py:1372
-#: lib/pp_admintools/app/ldap.py:1406 lib/pp_admintools/app/ldap.py:1440
+#: lib/pp_admintools/app/ldap.py:872 lib/pp_admintools/app/ldap.py:1006
+#: lib/pp_admintools/app/ldap.py:1059 lib/pp_admintools/app/ldap.py:1112
+#: lib/pp_admintools/app/ldap.py:1400 lib/pp_admintools/app/ldap.py:1434
+#: lib/pp_admintools/app/ldap.py:1468 lib/pp_admintools/app/ldap.py:1502
msgid "Result:"
msgstr "Ergebnis:"
msgid "Reloading {} ..."
msgstr "Reload {} …"
+#: lib/pp_admintools/app/duplicate_attribs.py:61
+msgid "Evaluating all LDAP entries, which are using duplicate attributes, which should be unique."
+msgstr "Ermittelt alle LDAP-Einträge, die Duplikat-Attribute haben, welche aber eindeutig sein sollten."
+
+#: lib/pp_admintools/app/duplicate_attribs.py:74
+msgid "Evaluation options"
+msgstr "Evaluationsoptionen"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:77 lib/pp_admintools/app/duplicate_attribs.py:85
+msgid "ATTRIBUTE"
+msgstr "ATTRIBUT"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:78
+msgid ""
+"All attribute types, which should be unique over the complete LDAP tree. Per default the "
+"following attribute types should be unique:"
+msgstr ""
+"Alle Attributtypen, die eindeutig über den gesamten LDAP-Baum sein sollten. Per Vorgabe sollen "
+"die folgenden Attributtypen eindeutig sein:"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:86
+msgid ""
+"All attribute types, where their uniqueness depends on an additional LDAP filter. For instance, "
+"the attribute 'gidNumber' should be unique for all entries, which are using the objectClass "
+"'posixGroup'. The value for this argument should be in the form: 'ATTRIBUTE: \"FILTER\"'. For "
+"the latter example this would be: 'gidNumber: \"objectClass=posixGroup\"' (which is also the "
+"default for this option). Please note, that this filter will be wrapped by parenthesis."
+msgstr ""
+"Alle Attributtypen, deren Eindeutigkeit von einem zusätzlichen LDAP-Filter abhängt. Zum Beispiel"
+" soll das Attribut 'gidNumber' eindeutig für alle Einträge sein, die die Objektklasse "
+"'posixGroup' verwenden.Der Wert dieses Arguments soll ind der Form 'ATTRIBUT: \"FILTER\"' "
+"erfolgen. Für das vorangegangene Beispiel würde das demzufolge 'gidNumber: "
+"\"objectClass=posixGroup\"' sein (welches auch die Vorgabe diese Option ist). Bitte beachten, "
+"dass dieser Filter von der Anwendung automatich mit Klammern umschlossen wird."
+
+#: lib/pp_admintools/app/duplicate_attribs.py:134
+msgid "Wrong definition for a filter dependend unique attribute given:"
+msgstr "Ungültige Definition für einen Filter eines eindeutigen Attributes angegeben:"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:153
+msgid "Checking for globally unique attribute '"
+msgstr "Überprüfe global eindeutiges Attribut '"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:154 lib/pp_admintools/app/duplicate_attribs.py:168
+msgid "' ..."
+msgstr "' …"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:167
+msgid "Checking for dependend unique attribute '"
+msgstr "Überprüfe abhängig eindeutiges Attribut '"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:175 lib/pp_admintools/app/ldap.py:559
+msgid "Used filter:"
+msgstr "Verwendeter Filter:"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:219
+msgid "No duplicates for attribute {!r} found."
+msgstr "Keine Duplikate für das Attribut {!r} gefunden."
+
#: lib/pp_admintools/app/ldap.py:117 lib/pp_admintools/app/ldap.py:280
msgid "The path {!r} must be an absolute path."
msgstr "Der Pfad {!r} muss ein absoluter Pfad sein."
#: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1454
+#: lib/pp_admintools/app/ldap.py:1516
msgid "The file {!r} does not exists."
msgstr "Die Datei {!r} existiert nicht."
#: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
-#: lib/pp_admintools/app/ldap.py:1459
+#: lib/pp_admintools/app/ldap.py:1521
msgid "The given path {!r} exists, but is not a regular file."
msgstr "Der angegebene Pfad {!r} existiert, ist aber keine reguläre Datei."
#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
-#: lib/pp_admintools/app/ldap.py:1464
+#: lib/pp_admintools/app/ldap.py:1526
msgid "The given file {!r} is not readable."
msgstr "Die angegebene Datei {} ist nicht lesbar."
#: lib/pp_admintools/app/ldap.py:546
msgid "Verifying given instances ..."
-msgstr "Überprüfene Instanzen …"
+msgstr "Überprüfe Instanzen …"
-#: lib/pp_admintools/app/ldap.py:559
-msgid "Used filter:"
-msgstr "Verwendeter Filter:"
+#: lib/pp_admintools/app/ldap.py:582
+msgid "Filtered instances:"
+msgstr "Gefilterte Instanzen:"
-#: lib/pp_admintools/app/ldap.py:584
+#: lib/pp_admintools/app/ldap.py:587
msgid "LDAP instances to use:"
msgstr "Verwendete LDAP-Instanzen:"
-#: lib/pp_admintools/app/ldap.py:600
+#: lib/pp_admintools/app/ldap.py:603
msgid "LDAP instance {!r} not found in configuration or is not usable."
msgstr "Die LDAP-Instanz {!r} wurde nicht in der Konfiguration gefunden oder ist nicht verwendbar."
-#: lib/pp_admintools/app/ldap.py:655
+#: lib/pp_admintools/app/ldap.py:658
msgid "Preparations ..."
msgstr "Vorbereitungen …"
-#: lib/pp_admintools/app/ldap.py:658
+#: lib/pp_admintools/app/ldap.py:661
msgid "Open all necessary LDAP connections ..."
msgstr "Öffne alle notwendigen LDAP-Verbindungen …"
-#: lib/pp_admintools/app/ldap.py:672
+#: lib/pp_admintools/app/ldap.py:675
msgid "Password of user {usr} on LDAP instance {inst}:"
msgstr "Passwort des Nutzers {usr} der LDAP-Instanz {inst}:"
-#: lib/pp_admintools/app/ldap.py:681
+#: lib/pp_admintools/app/ldap.py:684
msgid "Info about LDAP server {}:"
msgstr "Informationen zu LDAP-Server {}:"
-#: lib/pp_admintools/app/ldap.py:691
+#: lib/pp_admintools/app/ldap.py:694
msgid "Trying to get LDAP server object for {} ..."
msgstr "Versuche ein LDAP-Server-Objekt für {} zu bekommen …"
-#: lib/pp_admintools/app/ldap.py:707
+#: lib/pp_admintools/app/ldap.py:710
msgid "Connect options to server {!r}:"
msgstr "Verbindungs-Optionen zu Server {!r}:"
-#: lib/pp_admintools/app/ldap.py:714
+#: lib/pp_admintools/app/ldap.py:717
msgid "LDAP server {s}: {re}"
msgstr "LDAP-Server {s}: {re}"
-#: lib/pp_admintools/app/ldap.py:728
+#: lib/pp_admintools/app/ldap.py:731
msgid "Connecting to LDAP server {url} as {dn!r} ..."
msgstr "Verbinde mit LDAP-Server {url} als {dn!r} …"
-#: lib/pp_admintools/app/ldap.py:740
+#: lib/pp_admintools/app/ldap.py:743
msgid "Finishing ..."
msgstr "Beende …"
-#: lib/pp_admintools/app/ldap.py:750
+#: lib/pp_admintools/app/ldap.py:753
msgid "Disconnecting from all remaining LDAP instances ..."
msgstr "Trenne Verbindung zu allen verbleibenden LDAP-Instanzen …"
-#: lib/pp_admintools/app/ldap.py:763
+#: lib/pp_admintools/app/ldap.py:766
msgid "Unbinding from LDAP server {!r} ..."
msgstr "Trenne Bindung zu LDAP-Server {!r} …"
-#: lib/pp_admintools/app/ldap.py:770
+#: lib/pp_admintools/app/ldap.py:773
msgid "Disconnecting from LDAP server {!r} ..."
msgstr "Trenne Verbindung zu LDAP-Server {!r} …"
-#: lib/pp_admintools/app/ldap.py:787 lib/pp_admintools/app/ldap.py:830
+#: lib/pp_admintools/app/ldap.py:796
+msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
+msgstr "Suche in {uri}/{bdn} nach allen Einträgen mit dem Filter {fltr!r} und den angegebenen Attributen:"
+
+#: lib/pp_admintools/app/ldap.py:808
+msgid "Result of searching:"
+msgstr "Ergebnis der Suche:"
+
+#: lib/pp_admintools/app/ldap.py:813
+msgid "Found entry {!r}."
+msgstr "Gefundener Eintrag:"
+
+#: lib/pp_admintools/app/ldap.py:820
+msgid "Found one entry with filter {fltr!r} in {uri}/{bdn}."
+msgid_plural "Found {nr} enries with filter {fltr!r} in {uri}/{bdn}."
+msgstr[0] "Fand einen Eintrag mit dem Filter {fltr!r} in {uri}/{bdn}."
+msgstr[1] "Fand {nr} Einträge mit dem Filter {fltr!r} in {uri}/{bdn}."
+
+#: lib/pp_admintools/app/ldap.py:824
+msgid "Got response entries:"
+msgstr "Erhaltene Antworteinträge:"
+
+#: lib/pp_admintools/app/ldap.py:828
+msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
+msgstr "Keinen Eintrag mit dem Filter {fltr!r} in {uri}/{bdn} gefunden."
+
+#: lib/pp_admintools/app/ldap.py:849 lib/pp_admintools/app/ldap.py:892
msgid "Using LDAP filter: {!r}"
msgstr "Verwende LDAP-Filter: {!r}."
-#: lib/pp_admintools/app/ldap.py:796 lib/pp_admintools/app/ldap.py:839
+#: lib/pp_admintools/app/ldap.py:858 lib/pp_admintools/app/ldap.py:901
msgid "Result of searching for DNs of all entries:"
msgstr "Ergebnis der Suche nach den DNs aller Einträge:"
-#: lib/pp_admintools/app/ldap.py:800 lib/pp_admintools/app/ldap.py:843
-#: lib/pp_admintools/app/ldap.py:941 lib/pp_admintools/app/ldap.py:994
-#: lib/pp_admintools/app/ldap.py:1047 lib/pp_admintools/app/ldap.py:1135
-#: lib/pp_admintools/app/ldap.py:1335 lib/pp_admintools/app/ldap.py:1369
-#: lib/pp_admintools/app/ldap.py:1403 lib/pp_admintools/app/ldap.py:1437
+#: lib/pp_admintools/app/ldap.py:862 lib/pp_admintools/app/ldap.py:905
+#: lib/pp_admintools/app/ldap.py:1003 lib/pp_admintools/app/ldap.py:1056
+#: lib/pp_admintools/app/ldap.py:1109 lib/pp_admintools/app/ldap.py:1197
+#: lib/pp_admintools/app/ldap.py:1397 lib/pp_admintools/app/ldap.py:1431
+#: lib/pp_admintools/app/ldap.py:1465 lib/pp_admintools/app/ldap.py:1499
msgid "Got a response entry:"
msgstr "Erhaltener Antwort-Eintrag:"
-#: lib/pp_admintools/app/ldap.py:826
+#: lib/pp_admintools/app/ldap.py:888
msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
msgstr "Hole DNs aller Einträge der LDAP-Instanz {i!r} unterhalb von {b!r}."
-#: lib/pp_admintools/app/ldap.py:865
+#: lib/pp_admintools/app/ldap.py:927
msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
msgstr "Versuche den DN des Nutzer {user!r} auf der LDAP-Instanz {inst} zu ermitteln …"
-#: lib/pp_admintools/app/ldap.py:870
+#: lib/pp_admintools/app/ldap.py:932
msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
msgstr "Versuche den DN des Nutzer {u!r} als Mailadresse zu ermitteln …"
-#: lib/pp_admintools/app/ldap.py:877
+#: lib/pp_admintools/app/ldap.py:939
msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
msgstr "Versuche den DN des Nutzer {u!r} als LDAP DN zu ermitteln …"
-#: lib/pp_admintools/app/ldap.py:884
+#: lib/pp_admintools/app/ldap.py:946
msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
msgstr "Versuche den DN des Nutzer {u!r} als UID (POSIX Benutzername) zu ermitteln …"
-#: lib/pp_admintools/app/ldap.py:893 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:955 lib/pp_admintools/app/remove_ldap_user.py:290
msgid "Empty user given."
msgstr "Leere Nutzername übergeben."
-#: lib/pp_admintools/app/ldap.py:896
+#: lib/pp_admintools/app/ldap.py:958
msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
msgstr "Versuche den DN des Nutzer {u!r} als CN ({c}) zu ermitteln …"
-#: lib/pp_admintools/app/ldap.py:926 lib/pp_admintools/app/ldap.py:979
-#: lib/pp_admintools/app/ldap.py:1032 lib/pp_admintools/app/ldap.py:1323
-#: lib/pp_admintools/app/ldap.py:1357 lib/pp_admintools/app/ldap.py:1391
-#: lib/pp_admintools/app/ldap.py:1425
+#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1094 lib/pp_admintools/app/ldap.py:1385
+#: lib/pp_admintools/app/ldap.py:1419 lib/pp_admintools/app/ldap.py:1453
+#: lib/pp_admintools/app/ldap.py:1487
msgid "Searching in {uri}/{bdn} with filter: {fltr}"
msgstr "Suche in {uri}/{bdn} mit dem Filter: {fltr}"
-#: lib/pp_admintools/app/ldap.py:937
+#: lib/pp_admintools/app/ldap.py:999
msgid "Result of searching for mail address {m!r}:"
msgstr "Ergebnis der Suche nach der Mailadresse {m!r}:"
-#: lib/pp_admintools/app/ldap.py:948
+#: lib/pp_admintools/app/ldap.py:1010
msgid "User with mail address {m!r} not found in {uri}/{bdn}."
msgstr "Ein Nutzer mit der Mailadresse {m!r} wurde nicht in {uri}/{bdn} gefunden."
-#: lib/pp_admintools/app/ldap.py:990
+#: lib/pp_admintools/app/ldap.py:1052
msgid "Result of searching for uid {u!r}:"
msgstr "Ergebnis der Suche nach UID {u!r}:"
-#: lib/pp_admintools/app/ldap.py:1001
+#: lib/pp_admintools/app/ldap.py:1063
msgid "User with uid {u!r} not found in {uri}/{bdn}."
msgstr "Ein Nutzer mit der UID {u!r} wurde nicht in {uri}/{bdn} gefunden."
-#: lib/pp_admintools/app/ldap.py:1043
+#: lib/pp_admintools/app/ldap.py:1105
msgid "Result of searching for CN {cn!r}:"
msgstr "Ergebnis der Suche nach CN {cn!r}:"
-#: lib/pp_admintools/app/ldap.py:1054
+#: lib/pp_admintools/app/ldap.py:1116
msgid "User with cn {cn!r} not found in {uri}/{bdn}."
msgstr "Ein Nutzer mit dem CN {cn!r} wurde nicht in {uri}/{bdn} gefunden."
-#: lib/pp_admintools/app/ldap.py:1071 lib/pp_admintools/app/set_ldap_password.py:411
+#: lib/pp_admintools/app/ldap.py:1133 lib/pp_admintools/app/set_ldap_password.py:411
msgid "User with DN {dn!r} not found in {uri}."
msgstr "Ein Nutzer mit dem DN {dn!r} wurde nicht in {uri} gefunden."
-#: lib/pp_admintools/app/ldap.py:1089
+#: lib/pp_admintools/app/ldap.py:1151
msgid "ObjectClasses of {dn!r}:"
msgstr "ObjectClasses von {dn!r}:"
-#: lib/pp_admintools/app/ldap.py:1099
+#: lib/pp_admintools/app/ldap.py:1161
msgid "Entry {dn!r} in {uri} seems not to be an account."
msgstr "Der Eintrag {dn!r} in {uri} scheint kein Nutzerkonto zu sein."
-#: lib/pp_admintools/app/ldap.py:1121
+#: lib/pp_admintools/app/ldap.py:1183
msgid "Searching DN {dn!r} in {uri}."
msgstr "Suche DN {dn!r} in {uri}."
-#: lib/pp_admintools/app/ldap.py:1131
+#: lib/pp_admintools/app/ldap.py:1193
msgid "Result of searching for DN {dn!r}:"
msgstr "Ergebnis der Suche nach dem DN {dn!r}:"
-#: lib/pp_admintools/app/ldap.py:1139
+#: lib/pp_admintools/app/ldap.py:1201
msgid "Entry with DN {dn!r} not found in {uri}."
msgstr "Ein Eintrag bit dem DN {dn!r} wurde nicht in {uri} gefunden."
-#: lib/pp_admintools/app/ldap.py:1184
+#: lib/pp_admintools/app/ldap.py:1246
msgid "Creating entry {dn!r} on {uri}:"
msgstr "Erstelle Eintrag {dn!r} in {uri} …"
-#: lib/pp_admintools/app/ldap.py:1190
+#: lib/pp_admintools/app/ldap.py:1252
msgid "Simulation mode - entry will not be created."
msgstr "Simulationsmodus - der Eintrag wird nicht erstellt."
-#: lib/pp_admintools/app/ldap.py:1197
+#: lib/pp_admintools/app/ldap.py:1259
msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
msgstr "Die Erstellung des Eintrags {dn!r} war NICHT erfolgreich - {c}: {e}"
-#: lib/pp_admintools/app/ldap.py:1212
+#: lib/pp_admintools/app/ldap.py:1274
msgid "Creation status: {!r}."
msgstr "Erstellungsstatus: {!r}"
-#: lib/pp_admintools/app/ldap.py:1214
+#: lib/pp_admintools/app/ldap.py:1276
msgid "Result of creating:"
msgstr "Ergebnis der Erstellung:"
-#: lib/pp_admintools/app/ldap.py:1217
+#: lib/pp_admintools/app/ldap.py:1279
msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
msgstr "Die Erstellung des Eintrags {dn!r} war NICHT erfolgreich - {desc}: {msg}"
-#: lib/pp_admintools/app/ldap.py:1223
+#: lib/pp_admintools/app/ldap.py:1285
msgid "Creation successful."
msgstr "Die Erstellung war erfolgreich."
-#: lib/pp_admintools/app/ldap.py:1234
+#: lib/pp_admintools/app/ldap.py:1296
msgid "Applying changes on {uri} to DN {dn!r}:"
msgstr "Wende Änderungen in {uri} an DN {dn!r} an:"
-#: lib/pp_admintools/app/ldap.py:1239
+#: lib/pp_admintools/app/ldap.py:1301
msgid "Simulation mode - changes are not applied."
msgstr "Simulationsmodus - hier wird jetzt nichts geändert."
-#: lib/pp_admintools/app/ldap.py:1245
+#: lib/pp_admintools/app/ldap.py:1307
msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
msgstr "Die Änderung von {dn!r} war NICHT erfolgreich - {c}: {e}"
-#: lib/pp_admintools/app/ldap.py:1247 lib/pp_admintools/app/ldap.py:1266
+#: lib/pp_admintools/app/ldap.py:1309 lib/pp_admintools/app/ldap.py:1328
#: lib/pp_admintools/app/remove_ldap_user.py:417 lib/pp_admintools/app/remove_ldap_user.py:444
#: lib/pp_admintools/app/remove_ldap_user.py:471 lib/pp_admintools/app/remove_ldap_user.py:502
#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:521
msgid "Changes:"
msgstr "Änderungen:"
-#: lib/pp_admintools/app/ldap.py:1259
+#: lib/pp_admintools/app/ldap.py:1321
msgid "Modification status: {!r}."
msgstr "Änderungsstatus: {!r}."
-#: lib/pp_admintools/app/ldap.py:1261
+#: lib/pp_admintools/app/ldap.py:1323
msgid "Result of modifying:"
msgstr "Ergebnis der Änderung:"
-#: lib/pp_admintools/app/ldap.py:1264
+#: lib/pp_admintools/app/ldap.py:1326
msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
msgstr "Die Änderung von {dn!r} war NICHT erfolgreich - {desc}: {msg}"
-#: lib/pp_admintools/app/ldap.py:1269
+#: lib/pp_admintools/app/ldap.py:1331
msgid "Modification successful."
msgstr "Die Änderung war erfolgreich."
-#: lib/pp_admintools/app/ldap.py:1279
+#: lib/pp_admintools/app/ldap.py:1341
msgid "Deleting LDAP entry {dn!r} on {uri} ..."
msgstr "Lösche LDAP-Eintrag {dn!r} in {uri} …"
-#: lib/pp_admintools/app/ldap.py:1284
+#: lib/pp_admintools/app/ldap.py:1346
msgid "Simulation mode - deletion will not be executed."
msgstr "Simulationsmodus - hier wird jetzt nichts gelöscht."
-#: lib/pp_admintools/app/ldap.py:1290
+#: lib/pp_admintools/app/ldap.py:1352
msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
msgstr "Das Löschen von {dn!r} war NICHT erfolgreich - {c}: {e}"
-#: lib/pp_admintools/app/ldap.py:1295
+#: lib/pp_admintools/app/ldap.py:1357
msgid "Deletion status: {!r}."
msgstr "Löschstatus: {!r}"
-#: lib/pp_admintools/app/ldap.py:1297
+#: lib/pp_admintools/app/ldap.py:1359
msgid "Result of deletion:"
msgstr "Ergebnis der Löschung:"
-#: lib/pp_admintools/app/ldap.py:1300
+#: lib/pp_admintools/app/ldap.py:1362
msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
msgstr "Das Löschen von {dn!r} war NICHT erfolgreich - {desc}: {msg}"
-#: lib/pp_admintools/app/ldap.py:1304
+#: lib/pp_admintools/app/ldap.py:1366
msgid "Deletion successful."
msgstr "Die Löschung war erfolgreich."
-#: lib/pp_admintools/app/ldap.py:1451
+#: lib/pp_admintools/app/ldap.py:1513
msgid "Reading password file {!r} ..."
msgstr "Lese Passwortdatei {!r} …"
-#: lib/pp_admintools/app/ldap.py:1482
+#: lib/pp_admintools/app/ldap.py:1544
msgid "Could not detect RDN from DN {!r}."
msgstr "Konnte RDN nich aus {!r} ermitteln."
-#: lib/pp_admintools/app/ldap.py:1486
+#: lib/pp_admintools/app/ldap.py:1548
msgid "Found RDN attribute {!r}."
msgstr "Fand RDN-Attribut {!r}."
-#: lib/pp_admintools/app/ldap.py:1492
+#: lib/pp_admintools/app/ldap.py:1554
msgid "RDN attribute {!r} will not be touched."
msgstr "Das RDN-Attribut {!r} wird nicht angefasst."
-#: lib/pp_admintools/app/ldap.py:1498 lib/pp_admintools/app/ldap.py:1517
-#: lib/pp_admintools/app/ldap.py:1590
+#: lib/pp_admintools/app/ldap.py:1560 lib/pp_admintools/app/ldap.py:1579
+#: lib/pp_admintools/app/ldap.py:1652
msgid "Attribute {!r} will not be touched."
msgstr "Das Attribut {!r} wird nicht angefasst."
-#: lib/pp_admintools/app/ldap.py:1551
+#: lib/pp_admintools/app/ldap.py:1613
msgid "Values to add to attribute {!r}:"
msgstr "Werte, die zu Attribut {!r} hinzugefügt werden:"
-#: lib/pp_admintools/app/ldap.py:1555
+#: lib/pp_admintools/app/ldap.py:1617
msgid "Values to removed from attribute {!r}:"
msgstr "Werte, die von Attribut {!r} gelöscht werden."
-#: lib/pp_admintools/app/ldap.py:1572
+#: lib/pp_admintools/app/ldap.py:1634
msgid "Changes for attribute {!r}:"
msgstr "Änedrungen für Attribut {!r}:"
-#: lib/pp_admintools/app/ldap.py:1575
+#: lib/pp_admintools/app/ldap.py:1637
msgid "No changes to attribute {!r}."
msgstr "Keine Änderungen an Attribut {!r}."
msgstr "Habe ein {c} bei der Konvertierung von {v!r} in einen Float-Wert erhalten: {e}"
#: lib/pp_admintools/config/dns_deploy_zones.py:204 lib/pp_admintools/config/dns_deploy_zones.py:517
-#: lib/pp_admintools/config/mail.py:150 lib/pp_admintools/config/pdns.py:188
+#: lib/pp_admintools/config/mail.py:147 lib/pp_admintools/config/pdns.py:188
msgid "Evaluating config section {!r}:"
msgstr "Evaluiere Konfigurations-Abschnitt {!r}:"
msgid "Reading configuration of LDAP instance {!r} ..."
msgstr "Lese Konfiguration der LDAP-Instanz {!r} …"
-#: lib/pp_admintools/config/mail.py:171 lib/pp_admintools/config/mail.py:195
-#: lib/pp_admintools/config/mail.py:263
+#: lib/pp_admintools/config/mail.py:168 lib/pp_admintools/config/mail.py:192
+#: lib/pp_admintools/config/mail.py:264
msgid "Found invalid {what} {addr!r} in configuration."
msgstr "Ungültige {what} {addr!r} in der Konfiguration gefunden."
-#: lib/pp_admintools/config/mail.py:196
+#: lib/pp_admintools/config/mail.py:193
msgid "from address"
msgstr "Absender-Adresse"
-#: lib/pp_admintools/config/mail.py:212 lib/pp_admintools/config/mail.py:216
+#: lib/pp_admintools/config/mail.py:211 lib/pp_admintools/config/mail.py:215
msgid "recipient mail address"
msgstr "Empfänger-Adresse"
-#: lib/pp_admintools/config/mail.py:236 lib/pp_admintools/config/mail.py:240
+#: lib/pp_admintools/config/mail.py:237 lib/pp_admintools/config/mail.py:241
msgid "cc mail address"
msgstr "CC-Mail-Adresse."
-#: lib/pp_admintools/config/mail.py:264
+#: lib/pp_admintools/config/mail.py:265
msgid "reply to address"
msgstr "Reply-To-Adresse"
-#: lib/pp_admintools/config/mail.py:280
+#: lib/pp_admintools/config/mail.py:281
msgid "Found invalid mail method {!r} in configuration."
msgstr "Ungültige Mail-Methode {!r} in der Konfiguration gefunden."
-#: lib/pp_admintools/config/mail.py:314
+#: lib/pp_admintools/config/mail.py:315
msgid "Value {!r} for SMTP port is invalid:"
msgstr "Der Wert {!r} für einen SMTP-Port ist ungültig:"
-#: lib/pp_admintools/config/mail.py:319
+#: lib/pp_admintools/config/mail.py:320
msgid "Found invalid SMTP port number {} in configuration."
msgstr "Ungültige SMTP-Port-Nummer {!r} in der Konfiguration gefunden."
#
msgid ""
msgstr ""
-"Project-Id-Version: pp_admintools \n"
+"Project-Id-Version: pp_admintools 0.8.7\n"
"Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2023-01-11 17:51+0100\n"
-"PO-Revision-Date: 2023-01-11 17:50+0100\n"
+"POT-Creation-Date: 2023-05-10 16:23+0200\n"
+"PO-Revision-Date: 2023-05-10 16:00+0100\n"
"Last-Translator: Frank Brehm <frank.brehm@pixelpark.com>\n"
"Language: en_US\n"
"Language-Team: Frank Brehm <frank.brehm@pixelpark.com>\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.11.0\n"
+"Generated-By: Babel 2.8.0\n"
#: lib/pp_admintools/app/__init__.py:114
msgid "Using logfile {!r}."
msgstr ""
#: lib/pp_admintools/app/dns_deploy_zones.py:456 lib/pp_admintools/app/dns_deploy_zones.py:810
-#: lib/pp_admintools/app/ldap.py:810 lib/pp_admintools/app/ldap.py:944
-#: lib/pp_admintools/app/ldap.py:997 lib/pp_admintools/app/ldap.py:1050
-#: lib/pp_admintools/app/ldap.py:1338 lib/pp_admintools/app/ldap.py:1372
-#: lib/pp_admintools/app/ldap.py:1406 lib/pp_admintools/app/ldap.py:1440
+#: lib/pp_admintools/app/ldap.py:872 lib/pp_admintools/app/ldap.py:1006
+#: lib/pp_admintools/app/ldap.py:1059 lib/pp_admintools/app/ldap.py:1112
+#: lib/pp_admintools/app/ldap.py:1400 lib/pp_admintools/app/ldap.py:1434
+#: lib/pp_admintools/app/ldap.py:1468 lib/pp_admintools/app/ldap.py:1502
msgid "Result:"
msgstr ""
msgid "Reloading {} ..."
msgstr "Reloading {} …"
+#: lib/pp_admintools/app/duplicate_attribs.py:61
+msgid "Evaluating all LDAP entries, which are using duplicate attributes, which should be unique."
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:74
+msgid "Evaluation options"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:77 lib/pp_admintools/app/duplicate_attribs.py:85
+msgid "ATTRIBUTE"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:78
+msgid ""
+"All attribute types, which should be unique over the complete LDAP tree. Per default the "
+"following attribute types should be unique:"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:86
+msgid ""
+"All attribute types, where their uniqueness depends on an additional LDAP filter. For instance, "
+"the attribute 'gidNumber' should be unique for all entries, which are using the objectClass "
+"'posixGroup'. The value for this argument should be in the form: 'ATTRIBUTE: \"FILTER\"'. For "
+"the latter example this would be: 'gidNumber: \"objectClass=posixGroup\"' (which is also the "
+"default for this option). Please note, that this filter will be wrapped by parenthesis."
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:134
+msgid "Wrong definition for a filter dependend unique attribute given:"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:153
+msgid "Checking for globally unique attribute '"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:154 lib/pp_admintools/app/duplicate_attribs.py:168
+msgid "' ..."
+msgstr "' …"
+
+#: lib/pp_admintools/app/duplicate_attribs.py:167
+msgid "Checking for dependend unique attribute '"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:175 lib/pp_admintools/app/ldap.py:559
+msgid "Used filter:"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:219
+msgid "No duplicates for attribute {!r} found."
+msgstr ""
+
#: lib/pp_admintools/app/ldap.py:117 lib/pp_admintools/app/ldap.py:280
msgid "The path {!r} must be an absolute path."
msgstr ""
#: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1454
+#: lib/pp_admintools/app/ldap.py:1516
msgid "The file {!r} does not exists."
msgstr ""
#: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
-#: lib/pp_admintools/app/ldap.py:1459
+#: lib/pp_admintools/app/ldap.py:1521
msgid "The given path {!r} exists, but is not a regular file."
msgstr ""
#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
-#: lib/pp_admintools/app/ldap.py:1464
+#: lib/pp_admintools/app/ldap.py:1526
msgid "The given file {!r} is not readable."
msgstr ""
msgid "Verifying given instances ..."
msgstr "Verifying given instances …"
-#: lib/pp_admintools/app/ldap.py:559
-msgid "Used filter:"
+#: lib/pp_admintools/app/ldap.py:582
+msgid "Filtered instances:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:584
+#: lib/pp_admintools/app/ldap.py:587
msgid "LDAP instances to use:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:600
+#: lib/pp_admintools/app/ldap.py:603
msgid "LDAP instance {!r} not found in configuration or is not usable."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:655
+#: lib/pp_admintools/app/ldap.py:658
msgid "Preparations ..."
msgstr "Preparations …"
-#: lib/pp_admintools/app/ldap.py:658
+#: lib/pp_admintools/app/ldap.py:661
msgid "Open all necessary LDAP connections ..."
msgstr "Open all necessary LDAP connections …"
-#: lib/pp_admintools/app/ldap.py:672
+#: lib/pp_admintools/app/ldap.py:675
msgid "Password of user {usr} on LDAP instance {inst}:"
msgstr "Password of user {usr} on LDAP instance {inst}:"
-#: lib/pp_admintools/app/ldap.py:681
+#: lib/pp_admintools/app/ldap.py:684
msgid "Info about LDAP server {}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:691
+#: lib/pp_admintools/app/ldap.py:694
msgid "Trying to get LDAP server object for {} ..."
msgstr "Trying to get LDAP server object for {} …"
-#: lib/pp_admintools/app/ldap.py:707
+#: lib/pp_admintools/app/ldap.py:710
msgid "Connect options to server {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:714
+#: lib/pp_admintools/app/ldap.py:717
msgid "LDAP server {s}: {re}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:728
+#: lib/pp_admintools/app/ldap.py:731
msgid "Connecting to LDAP server {url} as {dn!r} ..."
msgstr "Connecting to LDAP server {url} as {dn!r} …"
-#: lib/pp_admintools/app/ldap.py:740
+#: lib/pp_admintools/app/ldap.py:743
msgid "Finishing ..."
msgstr "Finishing …"
-#: lib/pp_admintools/app/ldap.py:750
+#: lib/pp_admintools/app/ldap.py:753
msgid "Disconnecting from all remaining LDAP instances ..."
msgstr "Disconnecting from all remaining LDAP instances …"
-#: lib/pp_admintools/app/ldap.py:763
+#: lib/pp_admintools/app/ldap.py:766
msgid "Unbinding from LDAP server {!r} ..."
msgstr "Unbinding from LDAP server {!r} …"
-#: lib/pp_admintools/app/ldap.py:770
+#: lib/pp_admintools/app/ldap.py:773
msgid "Disconnecting from LDAP server {!r} ..."
msgstr "Disconnecting from LDAP server {!r} …"
-#: lib/pp_admintools/app/ldap.py:787 lib/pp_admintools/app/ldap.py:830
+#: lib/pp_admintools/app/ldap.py:796
+msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:808
+msgid "Result of searching:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:813
+msgid "Found entry {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:820
+msgid "Found one entry with filter {fltr!r} in {uri}/{bdn}."
+msgid_plural "Found {nr} enries with filter {fltr!r} in {uri}/{bdn}."
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/pp_admintools/app/ldap.py:824
+msgid "Got response entries:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:828
+msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:849 lib/pp_admintools/app/ldap.py:892
msgid "Using LDAP filter: {!r}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:796 lib/pp_admintools/app/ldap.py:839
+#: lib/pp_admintools/app/ldap.py:858 lib/pp_admintools/app/ldap.py:901
msgid "Result of searching for DNs of all entries:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:800 lib/pp_admintools/app/ldap.py:843
-#: lib/pp_admintools/app/ldap.py:941 lib/pp_admintools/app/ldap.py:994
-#: lib/pp_admintools/app/ldap.py:1047 lib/pp_admintools/app/ldap.py:1135
-#: lib/pp_admintools/app/ldap.py:1335 lib/pp_admintools/app/ldap.py:1369
-#: lib/pp_admintools/app/ldap.py:1403 lib/pp_admintools/app/ldap.py:1437
+#: lib/pp_admintools/app/ldap.py:862 lib/pp_admintools/app/ldap.py:905
+#: lib/pp_admintools/app/ldap.py:1003 lib/pp_admintools/app/ldap.py:1056
+#: lib/pp_admintools/app/ldap.py:1109 lib/pp_admintools/app/ldap.py:1197
+#: lib/pp_admintools/app/ldap.py:1397 lib/pp_admintools/app/ldap.py:1431
+#: lib/pp_admintools/app/ldap.py:1465 lib/pp_admintools/app/ldap.py:1499
msgid "Got a response entry:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:826
+#: lib/pp_admintools/app/ldap.py:888
msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:865
+#: lib/pp_admintools/app/ldap.py:927
msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
msgstr "Trying to evaluate DN of user {user!r} in LDAP instance {inst} …"
-#: lib/pp_admintools/app/ldap.py:870
+#: lib/pp_admintools/app/ldap.py:932
msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
msgstr "Trying to evaluate DN of user {u!r} as a mail address …"
-#: lib/pp_admintools/app/ldap.py:877
+#: lib/pp_admintools/app/ldap.py:939
msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
msgstr "Trying to evaluate DN of user {u!r} as a LDAP DN …"
-#: lib/pp_admintools/app/ldap.py:884
+#: lib/pp_admintools/app/ldap.py:946
msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
msgstr "Trying to evaluate DN of user {u!r} as a UID (Posix user name) …"
-#: lib/pp_admintools/app/ldap.py:893 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:955 lib/pp_admintools/app/remove_ldap_user.py:290
msgid "Empty user given."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:896
+#: lib/pp_admintools/app/ldap.py:958
msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
msgstr "Trying to evaluate DN of user {u!r} as a CN ({c}) …"
-#: lib/pp_admintools/app/ldap.py:926 lib/pp_admintools/app/ldap.py:979
-#: lib/pp_admintools/app/ldap.py:1032 lib/pp_admintools/app/ldap.py:1323
-#: lib/pp_admintools/app/ldap.py:1357 lib/pp_admintools/app/ldap.py:1391
-#: lib/pp_admintools/app/ldap.py:1425
+#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1094 lib/pp_admintools/app/ldap.py:1385
+#: lib/pp_admintools/app/ldap.py:1419 lib/pp_admintools/app/ldap.py:1453
+#: lib/pp_admintools/app/ldap.py:1487
msgid "Searching in {uri}/{bdn} with filter: {fltr}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:937
+#: lib/pp_admintools/app/ldap.py:999
msgid "Result of searching for mail address {m!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:948
+#: lib/pp_admintools/app/ldap.py:1010
msgid "User with mail address {m!r} not found in {uri}/{bdn}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:990
+#: lib/pp_admintools/app/ldap.py:1052
msgid "Result of searching for uid {u!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1001
+#: lib/pp_admintools/app/ldap.py:1063
msgid "User with uid {u!r} not found in {uri}/{bdn}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1043
+#: lib/pp_admintools/app/ldap.py:1105
msgid "Result of searching for CN {cn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1054
+#: lib/pp_admintools/app/ldap.py:1116
msgid "User with cn {cn!r} not found in {uri}/{bdn}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1071 lib/pp_admintools/app/set_ldap_password.py:411
+#: lib/pp_admintools/app/ldap.py:1133 lib/pp_admintools/app/set_ldap_password.py:411
msgid "User with DN {dn!r} not found in {uri}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1089
+#: lib/pp_admintools/app/ldap.py:1151
msgid "ObjectClasses of {dn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1099
+#: lib/pp_admintools/app/ldap.py:1161
msgid "Entry {dn!r} in {uri} seems not to be an account."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1121
+#: lib/pp_admintools/app/ldap.py:1183
msgid "Searching DN {dn!r} in {uri}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1131
+#: lib/pp_admintools/app/ldap.py:1193
msgid "Result of searching for DN {dn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1139
+#: lib/pp_admintools/app/ldap.py:1201
msgid "Entry with DN {dn!r} not found in {uri}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1184
+#: lib/pp_admintools/app/ldap.py:1246
msgid "Creating entry {dn!r} on {uri}:"
msgstr "Creating entry {dn!r} on {uri}:"
-#: lib/pp_admintools/app/ldap.py:1190
+#: lib/pp_admintools/app/ldap.py:1252
msgid "Simulation mode - entry will not be created."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1197
+#: lib/pp_admintools/app/ldap.py:1259
msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1212
+#: lib/pp_admintools/app/ldap.py:1274
msgid "Creation status: {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1214
+#: lib/pp_admintools/app/ldap.py:1276
msgid "Result of creating:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1217
+#: lib/pp_admintools/app/ldap.py:1279
msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1223
+#: lib/pp_admintools/app/ldap.py:1285
msgid "Creation successful."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1234
+#: lib/pp_admintools/app/ldap.py:1296
msgid "Applying changes on {uri} to DN {dn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1239
+#: lib/pp_admintools/app/ldap.py:1301
msgid "Simulation mode - changes are not applied."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1245
+#: lib/pp_admintools/app/ldap.py:1307
msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1247 lib/pp_admintools/app/ldap.py:1266
+#: lib/pp_admintools/app/ldap.py:1309 lib/pp_admintools/app/ldap.py:1328
#: lib/pp_admintools/app/remove_ldap_user.py:417 lib/pp_admintools/app/remove_ldap_user.py:444
#: lib/pp_admintools/app/remove_ldap_user.py:471 lib/pp_admintools/app/remove_ldap_user.py:502
#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:521
msgid "Changes:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1259
+#: lib/pp_admintools/app/ldap.py:1321
msgid "Modification status: {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1261
+#: lib/pp_admintools/app/ldap.py:1323
msgid "Result of modifying:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1264
+#: lib/pp_admintools/app/ldap.py:1326
msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1269
+#: lib/pp_admintools/app/ldap.py:1331
msgid "Modification successful."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1279
+#: lib/pp_admintools/app/ldap.py:1341
msgid "Deleting LDAP entry {dn!r} on {uri} ..."
msgstr "Deleting LDAP entry {dn!r} on {uri} …"
-#: lib/pp_admintools/app/ldap.py:1284
+#: lib/pp_admintools/app/ldap.py:1346
msgid "Simulation mode - deletion will not be executed."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1290
+#: lib/pp_admintools/app/ldap.py:1352
msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1295
+#: lib/pp_admintools/app/ldap.py:1357
msgid "Deletion status: {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1297
+#: lib/pp_admintools/app/ldap.py:1359
msgid "Result of deletion:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1300
+#: lib/pp_admintools/app/ldap.py:1362
msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1304
+#: lib/pp_admintools/app/ldap.py:1366
msgid "Deletion successful."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1451
+#: lib/pp_admintools/app/ldap.py:1513
msgid "Reading password file {!r} ..."
msgstr "Reading password file {!r} …"
-#: lib/pp_admintools/app/ldap.py:1482
+#: lib/pp_admintools/app/ldap.py:1544
msgid "Could not detect RDN from DN {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1486
+#: lib/pp_admintools/app/ldap.py:1548
msgid "Found RDN attribute {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1492
+#: lib/pp_admintools/app/ldap.py:1554
msgid "RDN attribute {!r} will not be touched."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1498 lib/pp_admintools/app/ldap.py:1517
-#: lib/pp_admintools/app/ldap.py:1590
+#: lib/pp_admintools/app/ldap.py:1560 lib/pp_admintools/app/ldap.py:1579
+#: lib/pp_admintools/app/ldap.py:1652
msgid "Attribute {!r} will not be touched."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1551
+#: lib/pp_admintools/app/ldap.py:1613
msgid "Values to add to attribute {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1555
+#: lib/pp_admintools/app/ldap.py:1617
msgid "Values to removed from attribute {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1572
+#: lib/pp_admintools/app/ldap.py:1634
msgid "Changes for attribute {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1575
+#: lib/pp_admintools/app/ldap.py:1637
msgid "No changes to attribute {!r}."
msgstr ""
msgstr ""
#: lib/pp_admintools/config/dns_deploy_zones.py:204 lib/pp_admintools/config/dns_deploy_zones.py:517
-#: lib/pp_admintools/config/mail.py:150 lib/pp_admintools/config/pdns.py:188
+#: lib/pp_admintools/config/mail.py:147 lib/pp_admintools/config/pdns.py:188
msgid "Evaluating config section {!r}:"
msgstr ""
msgid "Reading configuration of LDAP instance {!r} ..."
msgstr "Reading configuration of LDAP instance {!r} …"
-#: lib/pp_admintools/config/mail.py:171 lib/pp_admintools/config/mail.py:195
-#: lib/pp_admintools/config/mail.py:263
+#: lib/pp_admintools/config/mail.py:168 lib/pp_admintools/config/mail.py:192
+#: lib/pp_admintools/config/mail.py:264
msgid "Found invalid {what} {addr!r} in configuration."
msgstr ""
-#: lib/pp_admintools/config/mail.py:196
+#: lib/pp_admintools/config/mail.py:193
msgid "from address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:212 lib/pp_admintools/config/mail.py:216
+#: lib/pp_admintools/config/mail.py:211 lib/pp_admintools/config/mail.py:215
msgid "recipient mail address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:236 lib/pp_admintools/config/mail.py:240
+#: lib/pp_admintools/config/mail.py:237 lib/pp_admintools/config/mail.py:241
msgid "cc mail address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:264
+#: lib/pp_admintools/config/mail.py:265
msgid "reply to address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:280
+#: lib/pp_admintools/config/mail.py:281
msgid "Found invalid mail method {!r} in configuration."
msgstr ""
-#: lib/pp_admintools/config/mail.py:314
+#: lib/pp_admintools/config/mail.py:315
msgid "Value {!r} for SMTP port is invalid:"
msgstr ""
-#: lib/pp_admintools/config/mail.py:319
+#: lib/pp_admintools/config/mail.py:320
msgid "Found invalid SMTP port number {} in configuration."
msgstr ""
#, fuzzy
msgid ""
msgstr ""
-"Project-Id-Version: pp_admintools VERSION\n"
+"Project-Id-Version: pp_admintools 0.8.7\n"
"Report-Msgid-Bugs-To: frank.brehm@pixelpark.com\n"
-"POT-Creation-Date: 2023-01-11 17:51+0100\n"
+"POT-Creation-Date: 2023-05-10 16:23+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <frank.brehm@pixelpark.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Generated-By: Babel 2.11.0\n"
+"Generated-By: Babel 2.8.0\n"
#: lib/pp_admintools/app/__init__.py:114
msgid "Using logfile {!r}."
msgstr ""
#: lib/pp_admintools/app/dns_deploy_zones.py:456 lib/pp_admintools/app/dns_deploy_zones.py:810
-#: lib/pp_admintools/app/ldap.py:810 lib/pp_admintools/app/ldap.py:944
-#: lib/pp_admintools/app/ldap.py:997 lib/pp_admintools/app/ldap.py:1050
-#: lib/pp_admintools/app/ldap.py:1338 lib/pp_admintools/app/ldap.py:1372
-#: lib/pp_admintools/app/ldap.py:1406 lib/pp_admintools/app/ldap.py:1440
+#: lib/pp_admintools/app/ldap.py:872 lib/pp_admintools/app/ldap.py:1006
+#: lib/pp_admintools/app/ldap.py:1059 lib/pp_admintools/app/ldap.py:1112
+#: lib/pp_admintools/app/ldap.py:1400 lib/pp_admintools/app/ldap.py:1434
+#: lib/pp_admintools/app/ldap.py:1468 lib/pp_admintools/app/ldap.py:1502
msgid "Result:"
msgstr ""
msgid "Reloading {} ..."
msgstr ""
+#: lib/pp_admintools/app/duplicate_attribs.py:61
+msgid "Evaluating all LDAP entries, which are using duplicate attributes, which should be unique."
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:74
+msgid "Evaluation options"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:77 lib/pp_admintools/app/duplicate_attribs.py:85
+msgid "ATTRIBUTE"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:78
+msgid ""
+"All attribute types, which should be unique over the complete LDAP tree. Per default the "
+"following attribute types should be unique:"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:86
+msgid ""
+"All attribute types, where their uniqueness depends on an additional LDAP filter. For instance, "
+"the attribute 'gidNumber' should be unique for all entries, which are using the objectClass "
+"'posixGroup'. The value for this argument should be in the form: 'ATTRIBUTE: \"FILTER\"'. For "
+"the latter example this would be: 'gidNumber: \"objectClass=posixGroup\"' (which is also the "
+"default for this option). Please note, that this filter will be wrapped by parenthesis."
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:134
+msgid "Wrong definition for a filter dependend unique attribute given:"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:153
+msgid "Checking for globally unique attribute '"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:154 lib/pp_admintools/app/duplicate_attribs.py:168
+msgid "' ..."
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:167
+msgid "Checking for dependend unique attribute '"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:175 lib/pp_admintools/app/ldap.py:559
+msgid "Used filter:"
+msgstr ""
+
+#: lib/pp_admintools/app/duplicate_attribs.py:219
+msgid "No duplicates for attribute {!r} found."
+msgstr ""
+
#: lib/pp_admintools/app/ldap.py:117 lib/pp_admintools/app/ldap.py:280
msgid "The path {!r} must be an absolute path."
msgstr ""
#: lib/pp_admintools/app/ldap.py:123 lib/pp_admintools/app/ldap.py:284
-#: lib/pp_admintools/app/ldap.py:1454
+#: lib/pp_admintools/app/ldap.py:1516
msgid "The file {!r} does not exists."
msgstr ""
#: lib/pp_admintools/app/ldap.py:127 lib/pp_admintools/app/ldap.py:288
-#: lib/pp_admintools/app/ldap.py:1459
+#: lib/pp_admintools/app/ldap.py:1521
msgid "The given path {!r} exists, but is not a regular file."
msgstr ""
#: lib/pp_admintools/app/ldap.py:131 lib/pp_admintools/app/ldap.py:292
-#: lib/pp_admintools/app/ldap.py:1464
+#: lib/pp_admintools/app/ldap.py:1526
msgid "The given file {!r} is not readable."
msgstr ""
msgid "Verifying given instances ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:559
-msgid "Used filter:"
+#: lib/pp_admintools/app/ldap.py:582
+msgid "Filtered instances:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:584
+#: lib/pp_admintools/app/ldap.py:587
msgid "LDAP instances to use:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:600
+#: lib/pp_admintools/app/ldap.py:603
msgid "LDAP instance {!r} not found in configuration or is not usable."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:655
+#: lib/pp_admintools/app/ldap.py:658
msgid "Preparations ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:658
+#: lib/pp_admintools/app/ldap.py:661
msgid "Open all necessary LDAP connections ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:672
+#: lib/pp_admintools/app/ldap.py:675
msgid "Password of user {usr} on LDAP instance {inst}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:681
+#: lib/pp_admintools/app/ldap.py:684
msgid "Info about LDAP server {}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:691
+#: lib/pp_admintools/app/ldap.py:694
msgid "Trying to get LDAP server object for {} ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:707
+#: lib/pp_admintools/app/ldap.py:710
msgid "Connect options to server {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:714
+#: lib/pp_admintools/app/ldap.py:717
msgid "LDAP server {s}: {re}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:728
+#: lib/pp_admintools/app/ldap.py:731
msgid "Connecting to LDAP server {url} as {dn!r} ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:740
+#: lib/pp_admintools/app/ldap.py:743
msgid "Finishing ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:750
+#: lib/pp_admintools/app/ldap.py:753
msgid "Disconnecting from all remaining LDAP instances ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:763
+#: lib/pp_admintools/app/ldap.py:766
msgid "Unbinding from LDAP server {!r} ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:770
+#: lib/pp_admintools/app/ldap.py:773
msgid "Disconnecting from LDAP server {!r} ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:787 lib/pp_admintools/app/ldap.py:830
+#: lib/pp_admintools/app/ldap.py:796
+msgid "Searching in {uri}/{bdn} for all entries with filter {fltr!r}, giving attributes:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:808
+msgid "Result of searching:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:813
+msgid "Found entry {!r}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:820
+msgid "Found one entry with filter {fltr!r} in {uri}/{bdn}."
+msgid_plural "Found {nr} enries with filter {fltr!r} in {uri}/{bdn}."
+msgstr[0] ""
+msgstr[1] ""
+
+#: lib/pp_admintools/app/ldap.py:824
+msgid "Got response entries:"
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:828
+msgid "No entry found with filter {fltr!r} in {uri}/{bdn}."
+msgstr ""
+
+#: lib/pp_admintools/app/ldap.py:849 lib/pp_admintools/app/ldap.py:892
msgid "Using LDAP filter: {!r}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:796 lib/pp_admintools/app/ldap.py:839
+#: lib/pp_admintools/app/ldap.py:858 lib/pp_admintools/app/ldap.py:901
msgid "Result of searching for DNs of all entries:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:800 lib/pp_admintools/app/ldap.py:843
-#: lib/pp_admintools/app/ldap.py:941 lib/pp_admintools/app/ldap.py:994
-#: lib/pp_admintools/app/ldap.py:1047 lib/pp_admintools/app/ldap.py:1135
-#: lib/pp_admintools/app/ldap.py:1335 lib/pp_admintools/app/ldap.py:1369
-#: lib/pp_admintools/app/ldap.py:1403 lib/pp_admintools/app/ldap.py:1437
+#: lib/pp_admintools/app/ldap.py:862 lib/pp_admintools/app/ldap.py:905
+#: lib/pp_admintools/app/ldap.py:1003 lib/pp_admintools/app/ldap.py:1056
+#: lib/pp_admintools/app/ldap.py:1109 lib/pp_admintools/app/ldap.py:1197
+#: lib/pp_admintools/app/ldap.py:1397 lib/pp_admintools/app/ldap.py:1431
+#: lib/pp_admintools/app/ldap.py:1465 lib/pp_admintools/app/ldap.py:1499
msgid "Got a response entry:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:826
+#: lib/pp_admintools/app/ldap.py:888
msgid "Getting all Entry DNs of LDAP instance {i!r} below {b!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:865
+#: lib/pp_admintools/app/ldap.py:927
msgid "Trying to evaluate DN of user {user!r} in LDAP instance {inst} ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:870
+#: lib/pp_admintools/app/ldap.py:932
msgid "Trying to evaluate DN of user {u!r} as a mail address ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:877
+#: lib/pp_admintools/app/ldap.py:939
msgid "Trying to evaluate DN of user {u!r} as a LDAP DN ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:884
+#: lib/pp_admintools/app/ldap.py:946
msgid "Trying to evaluate DN of user {u!r} as a UID (Posix user name) ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:893 lib/pp_admintools/app/remove_ldap_user.py:290
+#: lib/pp_admintools/app/ldap.py:955 lib/pp_admintools/app/remove_ldap_user.py:290
msgid "Empty user given."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:896
+#: lib/pp_admintools/app/ldap.py:958
msgid "Trying to evaluate DN of user {u!r} as a CN ({c}) ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:926 lib/pp_admintools/app/ldap.py:979
-#: lib/pp_admintools/app/ldap.py:1032 lib/pp_admintools/app/ldap.py:1323
-#: lib/pp_admintools/app/ldap.py:1357 lib/pp_admintools/app/ldap.py:1391
-#: lib/pp_admintools/app/ldap.py:1425
+#: lib/pp_admintools/app/ldap.py:988 lib/pp_admintools/app/ldap.py:1041
+#: lib/pp_admintools/app/ldap.py:1094 lib/pp_admintools/app/ldap.py:1385
+#: lib/pp_admintools/app/ldap.py:1419 lib/pp_admintools/app/ldap.py:1453
+#: lib/pp_admintools/app/ldap.py:1487
msgid "Searching in {uri}/{bdn} with filter: {fltr}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:937
+#: lib/pp_admintools/app/ldap.py:999
msgid "Result of searching for mail address {m!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:948
+#: lib/pp_admintools/app/ldap.py:1010
msgid "User with mail address {m!r} not found in {uri}/{bdn}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:990
+#: lib/pp_admintools/app/ldap.py:1052
msgid "Result of searching for uid {u!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1001
+#: lib/pp_admintools/app/ldap.py:1063
msgid "User with uid {u!r} not found in {uri}/{bdn}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1043
+#: lib/pp_admintools/app/ldap.py:1105
msgid "Result of searching for CN {cn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1054
+#: lib/pp_admintools/app/ldap.py:1116
msgid "User with cn {cn!r} not found in {uri}/{bdn}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1071 lib/pp_admintools/app/set_ldap_password.py:411
+#: lib/pp_admintools/app/ldap.py:1133 lib/pp_admintools/app/set_ldap_password.py:411
msgid "User with DN {dn!r} not found in {uri}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1089
+#: lib/pp_admintools/app/ldap.py:1151
msgid "ObjectClasses of {dn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1099
+#: lib/pp_admintools/app/ldap.py:1161
msgid "Entry {dn!r} in {uri} seems not to be an account."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1121
+#: lib/pp_admintools/app/ldap.py:1183
msgid "Searching DN {dn!r} in {uri}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1131
+#: lib/pp_admintools/app/ldap.py:1193
msgid "Result of searching for DN {dn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1139
+#: lib/pp_admintools/app/ldap.py:1201
msgid "Entry with DN {dn!r} not found in {uri}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1184
+#: lib/pp_admintools/app/ldap.py:1246
msgid "Creating entry {dn!r} on {uri}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1190
+#: lib/pp_admintools/app/ldap.py:1252
msgid "Simulation mode - entry will not be created."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1197
+#: lib/pp_admintools/app/ldap.py:1259
msgid "Creation of entry {dn!r} was NOT successfull - {c}: {e}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1212
+#: lib/pp_admintools/app/ldap.py:1274
msgid "Creation status: {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1214
+#: lib/pp_admintools/app/ldap.py:1276
msgid "Result of creating:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1217
+#: lib/pp_admintools/app/ldap.py:1279
msgid "Creation of entry {dn!r} was NOT successful: {desc} - {msg}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1223
+#: lib/pp_admintools/app/ldap.py:1285
msgid "Creation successful."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1234
+#: lib/pp_admintools/app/ldap.py:1296
msgid "Applying changes on {uri} to DN {dn!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1239
+#: lib/pp_admintools/app/ldap.py:1301
msgid "Simulation mode - changes are not applied."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1245
+#: lib/pp_admintools/app/ldap.py:1307
msgid "Modification of {dn!r} was NOT successfull - {c}: {e}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1247 lib/pp_admintools/app/ldap.py:1266
+#: lib/pp_admintools/app/ldap.py:1309 lib/pp_admintools/app/ldap.py:1328
#: lib/pp_admintools/app/remove_ldap_user.py:417 lib/pp_admintools/app/remove_ldap_user.py:444
#: lib/pp_admintools/app/remove_ldap_user.py:471 lib/pp_admintools/app/remove_ldap_user.py:502
#: lib/pp_admintools/app/remove_ldap_user.py:533 lib/pp_admintools/app/set_ldap_password.py:521
msgid "Changes:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1259
+#: lib/pp_admintools/app/ldap.py:1321
msgid "Modification status: {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1261
+#: lib/pp_admintools/app/ldap.py:1323
msgid "Result of modifying:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1264
+#: lib/pp_admintools/app/ldap.py:1326
msgid "Modification of {dn!r} was NOT successful: {desc} - {msg}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1269
+#: lib/pp_admintools/app/ldap.py:1331
msgid "Modification successful."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1279
+#: lib/pp_admintools/app/ldap.py:1341
msgid "Deleting LDAP entry {dn!r} on {uri} ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1284
+#: lib/pp_admintools/app/ldap.py:1346
msgid "Simulation mode - deletion will not be executed."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1290
+#: lib/pp_admintools/app/ldap.py:1352
msgid "Deletion of {dn!r} was NOT successfull - {c}: {e}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1295
+#: lib/pp_admintools/app/ldap.py:1357
msgid "Deletion status: {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1297
+#: lib/pp_admintools/app/ldap.py:1359
msgid "Result of deletion:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1300
+#: lib/pp_admintools/app/ldap.py:1362
msgid "Deletion of {dn!r} was NOT successful: {desc} - {msg}"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1304
+#: lib/pp_admintools/app/ldap.py:1366
msgid "Deletion successful."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1451
+#: lib/pp_admintools/app/ldap.py:1513
msgid "Reading password file {!r} ..."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1482
+#: lib/pp_admintools/app/ldap.py:1544
msgid "Could not detect RDN from DN {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1486
+#: lib/pp_admintools/app/ldap.py:1548
msgid "Found RDN attribute {!r}."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1492
+#: lib/pp_admintools/app/ldap.py:1554
msgid "RDN attribute {!r} will not be touched."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1498 lib/pp_admintools/app/ldap.py:1517
-#: lib/pp_admintools/app/ldap.py:1590
+#: lib/pp_admintools/app/ldap.py:1560 lib/pp_admintools/app/ldap.py:1579
+#: lib/pp_admintools/app/ldap.py:1652
msgid "Attribute {!r} will not be touched."
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1551
+#: lib/pp_admintools/app/ldap.py:1613
msgid "Values to add to attribute {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1555
+#: lib/pp_admintools/app/ldap.py:1617
msgid "Values to removed from attribute {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1572
+#: lib/pp_admintools/app/ldap.py:1634
msgid "Changes for attribute {!r}:"
msgstr ""
-#: lib/pp_admintools/app/ldap.py:1575
+#: lib/pp_admintools/app/ldap.py:1637
msgid "No changes to attribute {!r}."
msgstr ""
msgstr ""
#: lib/pp_admintools/config/dns_deploy_zones.py:204 lib/pp_admintools/config/dns_deploy_zones.py:517
-#: lib/pp_admintools/config/mail.py:150 lib/pp_admintools/config/pdns.py:188
+#: lib/pp_admintools/config/mail.py:147 lib/pp_admintools/config/pdns.py:188
msgid "Evaluating config section {!r}:"
msgstr ""
msgid "Reading configuration of LDAP instance {!r} ..."
msgstr ""
-#: lib/pp_admintools/config/mail.py:171 lib/pp_admintools/config/mail.py:195
-#: lib/pp_admintools/config/mail.py:263
+#: lib/pp_admintools/config/mail.py:168 lib/pp_admintools/config/mail.py:192
+#: lib/pp_admintools/config/mail.py:264
msgid "Found invalid {what} {addr!r} in configuration."
msgstr ""
-#: lib/pp_admintools/config/mail.py:196
+#: lib/pp_admintools/config/mail.py:193
msgid "from address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:212 lib/pp_admintools/config/mail.py:216
+#: lib/pp_admintools/config/mail.py:211 lib/pp_admintools/config/mail.py:215
msgid "recipient mail address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:236 lib/pp_admintools/config/mail.py:240
+#: lib/pp_admintools/config/mail.py:237 lib/pp_admintools/config/mail.py:241
msgid "cc mail address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:264
+#: lib/pp_admintools/config/mail.py:265
msgid "reply to address"
msgstr ""
-#: lib/pp_admintools/config/mail.py:280
+#: lib/pp_admintools/config/mail.py:281
msgid "Found invalid mail method {!r} in configuration."
msgstr ""
-#: lib/pp_admintools/config/mail.py:314
+#: lib/pp_admintools/config/mail.py:315
msgid "Value {!r} for SMTP port is invalid:"
msgstr ""
-#: lib/pp_admintools/config/mail.py:319
+#: lib/pp_admintools/config/mail.py:320
msgid "Found invalid SMTP port number {} in configuration."
msgstr ""