Secutest-Protokolle für Bugzilla 3.6.2

Es sollte eigentlich kein Problem sein, Protokolle in Form von RTF-Dateien zu “parsen”, in eine SQL-Datenbank zu schreiben und dann mit einem einfachen PHP-Script jene übersichtlich in einer Tabelle darzustellen. Auch praktische Filteroptionen oder Suchfelder sind schnell implementiert. In meiner Zivildienststelle wird jetzt genau so eine tabellarische Übersicht für Protokolle benötigt. Der Vorteil einer webbasierten Anwendung liegt hierbei klar auf der Hand: Mehrere Angestellte können gleichzeitig, Betriebssystem unabhängig, kollaborativ auf die Daten zugreifen und diese bearbeiten. Von Vorteil wäre in diesem Fall auch eine Benutzerverwaltung, die in der Lage ist, anstehende VDE-Prüfungen ordsveränderlicher Geräte an verschiedene Benutzer zeitlich korrekt zu verteilen und ggf. diese über Mail informiert.
Die Opensource-Anwendung Bugzilla ist für diese Aufgabe vielleicht zu umfangreich, aber zum Glück lässt sich diese Bugtracking-Software gut anpassen, sodass sie auch für solche Einsatzgebiete praktikabel erscheint.
Die Installation von Bugzilla ist nicht ganz einfach, dafür aber gut auf bugzilla.org dokumentiert. Der Download des Archives http://ftp.mozilla.org/pub/mozilla.org/webtools/bugzilla-3.6.2.tar.gz sowie die Installation eines MySQL- und Apache-Servers mit mod_perl (perl-apache-mod) sind hierbei notwendig. Desweiteren muss der Mod in die Apache-Conf eingetragen werden, danach erfolgt die Installation einiger Perl-Module über CPAN. Z.B.:

cd /var/www/bugzilla
./install-module --all
# edit localconfig
groupadd apache
# rerun checksetup

Das original GermZilla-Template habe ich noch ein wenig angepasst, damit Cookies für die Extraspalten automatisch gesetzt werden und dass Zeitangaben in der “Buglist” nach ihrer Priorität farblich markiert werden (modifiziert: bugzilla/template/de/default/list/table.html.tmpl sowie bugzilla/template/de/default/global/header.html.tmpl).

“Produkte” (Prüfungskategorien) und Protokollkategorien werden mit folgendem MySQL-Befehl in die Datenbank hinzugefügt:

ALTER TABLE bugs ADD cf_hersteller VARCHAR(255);
ALTER TABLE bugs ADD cf_geraeteart VARCHAR(255);
ALTER TABLE bugs ADD cf_type VARCHAR(255);
ALTER TABLE bugs ADD cf_ergebnis VARCHAR(255);
ALTER TABLE bugs ADD cf_kategorie VARCHAR(255);
ALTER TABLE bugs ADD cf_pruefung DATE;
ALTER TABLE bugs ADD cf_gedruckt DATE;
ALTER TABLE bugs ADD cf_schutzklasse VARCHAR(255);
ALTER TABLE bugs ADD cf_baujahr VARCHAR(255);
ALTER TABLE bugs ADD cf_naechstepruefung DATE;
ALTER TABLE bugs ADD cf_auftragnummer VARCHAR(255);
ALTER TABLE bugs ADD cf_fabrnr VARCHAR(255);
ALTER TABLE bugs ADD cf_nennstr VARCHAR(255);
ALTER TABLE bugs ADD cf_nennspg VARCHAR(255);
ALTER TABLE bugs ADD cf_nennleistg VARCHAR(255);
ALTER TABLE bugs ADD cf_pruefungnach VARCHAR(255);
ALTER TABLE bugs ADD cf_rtfpath VARCHAR(255);

Das sieht dann ungefähr so aus (show columns from bugs;):

+---------------------+--------------+------+-----+---------+----------------+
| cf_hersteller | mediumtext | YES | | NULL | |
| cf_geraeteart | varchar(255) | YES | | NULL | |
| cf_type | varchar(255) | YES | | NULL | |
| cf_ergebnis | varchar(255) | YES | | NULL | |
| cf_kategorie | varchar(255) | YES | | NULL | |
| cf_pruefung | date | YES | | NULL | |
| cf_gedruckt | date | YES | | NULL | |
| cf_schutzklasse | varchar(255) | YES | | NULL | |
| cf_baujahr | varchar(255) | YES | | NULL | |
| cf_naechstepruefung | date | YES | | NULL | |
| cf_auftragnummer | varchar(255) | YES | | NULL | |
| cf_fabrnr | varchar(255) | YES | | NULL | |
| cf_nennstr | varchar(255) | YES | | NULL | |
| cf_nennspg | varchar(255) | YES | | NULL | |
| cf_nennleistg | varchar(255) | YES | | NULL | |
| cf_pruefungnach | varchar(255) | YES | | NULL | |
| cf_rtfpath | varchar(255) | YES | | NULL | |
+---------------------+--------------+------+-----+---------+----------------+

Damit Bugzilla gleich die Übersicht verschiedener Protokolle anzeigt, wird in der Datei bugzilla/index.cgi “welcome-admin.html.tmpl” und “index.html.tmpl” mit “redirect.php” ersetzt. Redirect.php wird wiederum in bugzilla/template/en/default/ angelegt mit folgendem Inhalt:

<meta HTTP-EQUIV="REFRESH" content="0; url=describecomponents.cgi">

Das englische Template soll automatisch alle Benutzer auf das deutsche Template umleiten und dabei noch die wichtigsten Cookies, für die richtige Darstellung der Buglist, setzen. An einer passenden Stelle muss dazu in bugzilla/template/en/default/global/head.html.tmlp folgender Javascript-Code hinzugefügt werden:

<script type="text/javascript">
document.cookie = "LASTORDER=cf_naechstepruefung";
document.cookie = "COLUMNLIST=cf_kategorie cf_geraeteart cf_hersteller cf_type cf_ergebnis cf_pruefung cf_naechstepruefung";
document.cookie = "TUI=expert_fields=1";
document.cookie = "DEFAULTFORMAT=specific";
document.cookie = "style=default";
set_language('DE');
</script>

Die Sprachvariablen “Bugs” und “Bug” ersetzt man mit “Protokoll” und “Protokolle” in der Datei template/de/default/global/variables.none.tmpl. Jetzt sollte Bugzilla nach hinzugefügten Protokollen ungefähr so aussehen:

Das Programm, welches die SecuTest-Protokolldateien einliest und im richtigen Format in die Bugzilla-Datenbank schiebt (zurzeit noch automatisch zu Produkt Nr. 1), kann hier heruntergeladen werden: vdeprotadd.exe.

In den kommenden Tagen wird sich zeigen, ob das Programm gut für den dauerhaften Einsatz zur erfassung zahlreicher elektrischer Geräte geeignet ist. Ggf. muss noch einiges angepasst werden …

No Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

* Checkbox GDPR is required

*

I agree

Software
Virtual 3D online exhibition with MapBox GL JS

For my last semester in university (summer semester 2018) at the KIT, I was part of a project to create an “online art exhibition”. We planned to produce different media formats in smaller groups. One for video, another for text and promotion and one for the online presence. I’ve figured …

Software
Host your own Mapbox GL JS vector tiles map

I’ve done some research recently on how I could host my own online map viewer with a MapBox GL JS instance, an excellent and modern open-source alternative for Google Maps. The server should also serve own preprocessed map data from OpenStreetmap planet extracts. No external or third-party service will be …

Software
1
Easily setup Signal 2FA on Nextcloud 14

Two-factor authentication (short 2FA) is an important security concept to secure unauthorized access to your web applications. Popular online services like Google Mail, Instagram or Facebook already provide this mechanism to secure user accounts with an additional one-time token. Considering someone is able to obtain your username and password combination, …