Confluence mit dem Synology Verzeichnisdienst / LDAP verbinden
Neben des internen einfachen Login Mechanismus kann man Confluence auch beibringen, die Anmeldung per LDAP zu erlauben. Leider ist die Anbindung nicht ganz offensichtlich gestaltet, daher möchte ich die wichtigsten Parameter hier mal aufzählen – in der Hoffnung, dass der nächste arme Operator nicht die gleichen Qualen wie ich erleiden muss:
Im Adminbereich wählt man unter “Benutzer & Sicherheit” den Punkt Benutzerverzeichnisse. Dort fügt man ein neues Verzeichnis mit folgenden Daten hinzu (ich beschränke mich mal auf die nicht so offensichtlichen Punkte):
Servereinstellungen
Verzeichnistyp: OpenLDAP (Read-Only Posix Schema)
Benutzername: [Bind-DN] (findet man im Synology Backend in der Verzeichnisdienstübersicht, z.B.: “uid=root,cn=users,dc=nas,dc=local”)
LDAP Schema
Basis-DN: [Basis-DN] (findet man im Synology Backend in der Verzeichnisdienstübersicht, z.B.: “dc=nas,dc=me-intranet”)
LDAP Berechtigungen
Schreibgeschützt bei lokalen Gruppen (diese Einstellung macht Sinn, damit man LDAP User den vorhandenen Gruppen wie z.B. Confluence-admin hinzufügen kann)
Einstellungen des Benutzerschemas
Benutzer-Objektklasse: inetorgperson
Benutzer-Objektfilter: (uid=*)
Attribut “Benutzername”: uid
Attribut “Benutzername RDN”: cn
Attribut “Vorname des Benutzers”: givenName
Attribut “Nachname des Benutzers”: sn
Attribut “Benutzer-Anzeigename”: displayName
Attribut “Benutzer-E-Mail”: mail
Attribut “Benutzerpasswort”: userpassword
Verschlüsselung des Benutzer-Passworts: SHA
Einstellungen für Gruppenschema
Gruppenobjektklasse: posixgroup
Gruppenobjektfilter: (objectClass=posixGroup)
Attribut “Gruppenname”: cn
Attribut “Gruppenbeschreibung”: displayName
Einstellungen für Mitgliedschaftsschema
Attribut “Gruppenmitglied”: memberUid
Attribut “Benutzer-Mitgliedschaft”: gidNumber
Anschließend kann man mittels “speichern und testen” das ganze ausprobieren. Lasst euch nicht verunsichern, dass beim Test direkt ein Fehler auftritt, was normal ist. Ihr müsst erst noch in die entsprechenden Textfelder gültige LDAP Login Daten eintragen und anschließend nochmal auf “Testeinstellungen” klicken. Nun sollten alle Testfelder grün sein. Anschließdn geht ihr per “Zurück zur Verzeichnisliste” zurück und klickt auf “Synchronisieren”. Anschließend werden die Nutzer und Gruppen aus dem LDAP gezogen und sind in Confluence verfügbar.
Unter “Globale Berechtigungen” müsst ihr nun noch die Gruppen definieren, die auf die Confluence Daten zugreifen dürfen. Nur die Mitglieder der hier vermerkten Gruppen haben Zugriff auf Confluence, und auch nur DIESE Mitglieder werden für die maximale Nutzerzahl eurer Lizenz beachtet!
[Quicktip] Apache Ant sshexec Befehle per && kombinieren
Wenn man in einem Apache Ant Build Script bei einem sshexec mehrere Befehle aneinanderreihen möchte, dann kann man nicht wie von Linux gewohnt mittels “&&” konkatinieren – Ant wirft dann einen Fehler, dass ein & nicht von einem & gefolgt werden darf. Die Lösung ist sehr banal:
<sshexec host=”${host.name}” trust=”true” username=”${user}” password=”${pw}” keyfile=”${optional.keypair}” command=”command1 && command2 & & command3″/>
Was ist Wasser?
Nun, die Frage wird in diesem Video nicht SO direkt beantwortet – aber die Rede, die David Foster Wallace vor der Abschlussklasse des 2005er Jahrganges am Kenyon College vorgetragen hat, ist sehr sehr inspirierend:
[Symfony2] Wie kann man bei einem Repository findAll eine Sortierung setzen?
Mit den Magic Methoden der Symfony Repositories kann bekommt man automatisch Methoden wie findBy[Feldname] oder findAll bereitgestellt. Mit dabei ist jedoch keine direkte Möglichkeit, die Ergebnisse bereits zu sortieren. Über einen kleinen Trick geht aber auch das:
Möchte man ein findAll umsetzen, sieht der Code so aus:
$repository->findBy(array(), array('name' => 'asc'));
Jetzt werden alle Entities für dieses Repository geladen, jedoch erfolgt die entsprechende Query mit einem “ORDER BY name ASC”. Möchte man das findAll in eine spezifizierte Suche umwandeln, muss man das erste Array einfach mit dem gewünschten Feldnamen und dem zu suchenden Wert befüllen:
$repository->findBy(array('active' => 1), array('name' => 'asc'));
Durch die Nacht mit Anne Will und Serdar Somuncu
Großartige Combo!
[Quicktip] iPhone 5 Lightning Stecker hat einen Wackler
Wenn euer Lightning Stecker nicht ganz fest in eurem iPhone / iPad stecken bleibt, sondern leicht heraus ragt, dann stimmt etwas nicht. Das ganze äußert sich dann darin, dass das iPhone den Landesvorgang bei Bewegung unterbricht und neu beginnt.
Die Lösung ist aber ganz leicht: nehmt euch einen Zahnstocher und reinigt die Lightning Buchse an eurem iPhone von Fusseln – die sammeln sich da nämlich wunderbar drin und sorgen dann dafür, dass der Stecker nicht mehr richtig sitzt. Bei mir war zwischen dem Gerät und der Verkleidung des Steckers ca. 1-2mm Luft – da sollte aber gar kein Abstand sein, sodass der Stecker bombenfest hält…
boobs and burgers
Das Internet ist ab sofort an der höchsten Stufe der möglichen Evolution angekommen. Mehr muss man dazu wohl nicht mehr sagen. Einfach nur großartig…
Select Box Eintrag per Jquery auswählen
Wenn man im Netz nach Anleitung sucht, wie man einer select Box per Jquery sagt, welcher Eintrag ausgewählt sein soll, dann findet man Ratschläge, die ungefähr so aussehen:
$('#dropdownName option[value=wert1]').attr('selected', true);
Prinzipiell ist dieser Aufruf korrekt und läuft auch im Firefox und im Chrome, jedoch nicht im IE und im Safari. Dumm: im Safari wird die select Option zwar mit einem selected markiert, das Feld zeigt aber nicht die Auswahl an.
Die Lösung für das Problem ist relativ simpel, denn ab Jquery 1.6 hat sich lediglich die Syntax etwas geändert (prop statt attr):
$$('#dropdownName option[value=wert1]').prop('selected', true);
Damit sollte nun auch im IE und im Safari das Feld korrekt ausgewählt werden.