Geschrieben von skaldrom am 30. August 2007
Wie schon ein paar mal erwähnt: Websvn ist ein geniales Tool! Es ermöglicht das Browsen von verschiedenen Repositories übers Web mit dem Browser. Manchmal möchte man aber nicht alle Verzeichnisse freigeben und anzeigen.
Ich habe einen Patch erstellt, der eine neue Option in /etc/websvn/config.inc erlaubt: $config->excludeRepository(”name”);. Diese Option kann mehrfach angegeben werden und alle excludeten Repositories werden nicht mehr dargestellt…
Beispiel:
// Select Repositories to exclude
$config->excludeRepository("Geheime-Codes");
$config->excludeRepository("Jokes");
Und hier der Patch: Websvn exclude Repositories Patch.
Viel Spass… Eine Rückmeldung bei Anwendung würde mich freuen…
Ähnliche Artikel
Eingeordnet in Web | 1 Kommentar »
Geschrieben von skaldrom am 15. August 2007
Websvn kann mehrere Repositories in verschiedenen Unterverzeichnissen darstellen, allerdings muss man sich entscheiden: Alle Repositories aller Unterverzeichnisse aufs mal oder nur Repositories eines einzelnen Unterverzeichnisses.
Bei uns im Betrieb hat jede Abteilung (Informatik, Physik, …) ihre Repositories in eigenen Verzeichnissen auf dem Server. Websvn unterstützt zwar mehrere parentPath und stellt alle SVN-Repositories in diesen Verzeichnissen dar, will man aber auch noch einzelne Ansichten für die Abteilungen machen wird es schwer. Lösung: Der parentPath wird an Hand der URL gesetzt.
Unter Debian kann die Datei /etc/websvn/svn_deb_conf.inc direkt missbraucht werden. In anderen Distributionen muss eventuell am Schluss der Datei config.inc folgendes Codesnippet eingefügt und danach für die Änderungen gebraucht werden:
<?php
if ( file_exists("/etc/websvn/svn_sup_conf.inc") ) {
include("/etc/websvn/svn_sup_conf.inc");
}
?>
Nun soll an Hand des Pfades der /etc/websvn/svn_deb_conf.inc parentPath gesetzt werden:
- /websvn
- Alle Repositories
- /websvn/informatik
- Alle Repositories der Abteilung Informatik
- /websvn/physik
- Alle Repositories der Abteilung Physik
Dafür muss man in der oben konfigurierten Datei folgendes zum Besten geben (bei mehr Abteilungen einfach intelligent erweitern):
<?php
$repository=
dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']);
// echo "::: $repository :::";
switch($repository) {
case "/websvn/informatik":
case "/websvn/physik":
$reppath=
"/data/svn/repositories/".
substr(dirname($GLOBALS['HTTP_SERVER_VARS']['PHP_SELF']),
8).
"/";
// "/websvn/" entfernen
//print "::: $reppath :::"; exit(1);
$config->
parentPath($reppath);
break;
default:
$config->
parentPath("/data/svn/repositories/informatik");
$config->
parentPath("/data/svn/repositories/physik");
break;
}
?>
Der Apache muss dies natürlich auch noch mitkriegen. Die /websvn/ URL-Teile müssen dort konfiguriert werden (site-available oder .htaccess) und das wärs dann:
# Websvn is installed in /usr/share/websvn
Alias /websvn /usr/share/websvn
Alias /websvn/informatik /usr/share/websvn
Alias /websvn/physik /usr/share/websvn
<Location /websvn>
# DO FUNKY (AUTHENTICATION) STUFF HERE
<IfModule mod_php4.c>
php_flag magic_quotes_gpc Off
php_flag track_vars On
</IfModule>
</Location>
Ähnliche Artikel
Eingeordnet in Linux, Web | Keine Kommentare »
Geschrieben von skaldrom am 7. August 2007
Zentrale Accountverwaltung (oder in Managerdeutsch: Single Signon) ist etwas schönes! Der IT-Support kann sich darum kümmern, spontan Änderungen vornehmen und die Websiteverantwortlichen müssen nicht mehr rennen und vergessene Passworte zurücksetzen. Viele Zentrale Verzeichnisse laufen unter Windows mittels ADCs (Active Directory Connector). Der ist so nett und stellt seine Dienste auch als LDAP (Lightweight Directory Access Protocol) zur Verfügung. Der Apache kann darüber (auch unter Linux) authentifizieren mit Basic Authentication, also mit dem Passwortfenster aber ohne PHP und PERL und so…
Benötigt wird das Modul authnz-ldap. Unter Debian kann das eingeschaltet werden mittels:
In einer .htaccess Datei oder in der Site-Konfiguration kann man nun sehr gezielt für Verzeichnisse oder URLs die Authentifizierung einschalten. Hier ein Beispiel:
<location /admin>
AuthName "LDAP-Authentifizierter Bereich"
AuthType Basic
AuthBasicProvider ldap
AuthLDAPBindDN ldapreader@aden.local
AuthLDAPBindPassword secretpassword
AuthLDAPUrl ldap://adc1.aden.local/ou=Accounts,dc=aden,dc=local?sAMAccountName?sub
AuthzLDAPAuthoritative on
require ldap-group CN=Angestellte,OU=Berechtigungsgruppen,OU=Gruppen,DC=domain,DC=local
</location>
- ldapreader@aden.local:
- Ist ein Benutzer mit Leserechten aus der Domäne domain.local
- secretpassword:
- Ist das Passwort dieses Benutzers.
- require:
- Gibt an, wer Zugriff hat. ldap-group authentifiziert ganze Gruppen. Es gibt aber auch noch andere Direktiven.
Das Ganze funktioniert natürlich auch für SVN und Websvn Zugriffe über das Web!
Ähnliche Artikel
Eingeordnet in Webapplikationen | Keine Kommentare »
Geschrieben von skaldrom am 5. August 2007
Um zu einem SSL- Zertifikat zu kommen, kann unter Debian folgendes Kommando verwendet werden:
apache2-ssl-certificate
Dieses könnte man nun signieren lassen oder wenn man nur die Verschlüsselungseigenschaften braucht einfach so belassen. Wenn Apache das Modul mod_ssl geladen hat, kann man nun noch die Datei ans richtige Ort bewegen (Siehe SSLCertificateFile Parameter weiter unten).
Port 443 ist der Port auf dem der Apache auf https Verbindungen hört. Dass er dort ein Ohr platziert muss /vserver/webv2/etc/apache2/ports.conf angepasst werden;
Man hat ein schönes Zertifikat mit ganz vielen Bitlein und nun sollen die Benutzer dies auch gefälligst nutzen. Auf gut Deutsch: man zwingt alle http-Anfragen auf https (http://sicher.oncode.info soll zu https://sicher.oncode.info werden). mod_rewrite für Apache kann das gut, sehr gut sogar und erst noch automatisch. Dafür muss Apache folgendermassen konfiguriert werden:
Datei /vserver/webv2/etc/apache2/sites-available/default
NameVirtualHost *:443
NameVirtualHost *:80
<virtualhost *:80>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R]
</virtualhost>
<virtualhost *:443>
ServerName sicher.oncode.info
ServerAdmin apache.admin@onc0de.info
SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
[...]
</virtualhost>
Ein nettes Tutorial gibt es auch auf Tim Bormans Blog.
Ähnliche Artikel
Eingeordnet in Netzwerk, Webapplikationen | Keine Kommentare »
Geschrieben von skaldrom am 16. May 2007
In einem älteren Posting habe ich schon beschrieben, dass wir das LMS Moodle mit SVN integrieren. Um die Integration voranzutreiben habe ich einen Block gecoded, von welchem aus man direkt die Dateien aktualisieren kann:

Den Code zu posten macht nicht viel Sinn, da es sehr installationsabhängig ist. Auf Anfrage hin rücke ich aber gerne was raus
….
Ähnliche Artikel
Eingeordnet in Learninmanagement Systeme (lms) | Keine Kommentare »
Geschrieben von skaldrom am 15. March 2007
Aufgabe
Und die Aufgabe sei: Es werde ein Tool geschaffen, das jeden Tag prüft, wer an den Repositories gefrickelt hat und daraus ein Changelog generieret. Fürtherhin sei eine Liste als Index erstellt, die alle diese Repositories mit den Committern anzeiget und mit Links versehet, die zum detailierten Changelog geleiten. Auch ein RSS sei geschaffen, der abonniert werden kann.
So sei es. svn2log kann Text-Changelogs generieren. source-highlight kann daraus html-Seiten basteln. Damit svn2log auch Commits ohne Kommentar berücksichtigt, wird es gepatcht.
So sei Dir ein BASH-Script geschrieben, das durch unsere 2 Stufige Repositoryhierarchie hindurchloopt, und 4 Dinge erzeuge:
- Text Changelog generell
- Text Changelog der letzten 7 Tage
- Html Changelog generell
- Html Changelog der letzten 7 Tage
Und danach ein PHP fürwahr ein Index erstelle der eine Übersicht zeige und der auch via RSS in ein jede heimische Stube kommen kann!
Beispiel: 
Bemerkungen
Nachtrag: Eine weitere Möglichkeit ist svn2rss. Ein etwas mächtigeres Paket, geschrieben in Ruby.
Code
Den Code gibts bei oncode.info.
Ähnliche Artikel
Eingeordnet in Linux | Keine Kommentare »
Geschrieben von skaldrom am 21. September 2006
Moodle eignet sich sehr gut um Dokumente für Lernende bereitzuhalten und zu publizieren. SVN eignet sich, um Dokumente abzulegen wenn mehrere Leute zusammenarbeiten. Was liegt also näher als die beiden Dinge zu kombinieren?
Vorteile:
- Es sind immer aktuelle Dokumente auf dem Moodle
- Das lästige Hochladen entfällt
- Es ist mächtig 1337!
Soweit die Theorie, doch wie läuft das in der Praxis?
Grundsätzlich werden auf dem Moodleserver die SVN-Verzeichnisse ausgecheckt. Jede Nacht läuft ein Cronjob, der diese Arbeitsverzeichnisse aktualisiert und noch nicht vorhandene an diesen Ort auscheckt. Im Moodle “data” Verzeichnis werden in den Kursen symbolische Links auf diese Arbeitsverzeichnisse gesetzt, die dann in Moodle selber wie normale Verzeichnisse behandelt werden können.
Um diese Arbeitsverzeichnisse auszuchecken habe ich ein Bash-Script geschrieben, für das Setzen der Links gibt es ein ganz hässliches Webinterface. Beide Quellcodes stelle ich gerne zur Verfügung, hierhin passense nicht….
Probleme:
- Die Berechtigungen der Arbeitsverzeichnisse müssen so gesetzt werden, dass normale Benutzer über Moodle keine Dateien verändern oder löschen können.
- Da es ein Link ist und kein echtes Verzeichnis, lässt Moodle keine “Verzeichnis Ressourcentypen” zu. Korrigiert werden kann dies in lib/moodlelib.php, Funktion get_directory_list:
if (!
is_dir($rootdir) && !
is_link($rootdir)) { // Must be a directory
und:
- Die SVN-Arbeitsverzeichnisse sollen ja nicht migebackupt werden, da man gescheiter die Repositories sichert. Darum in backup/backuplib.php, Funktion backup_copy_course_files anpassen:
if ($dir !==
$name_moddata and
$dir !==
$name_backupdata and !
is_link($rootdir.
"/".
$dir)) {
Ähnliche Artikel
Eingeordnet in Learninmanagement Systeme (lms) | 1 Kommentar »