Inhaltsverzeichnis

Datenbankschema

user

Diese Tabelle enthält die Benutzer-Daten. Das Passwort wird als BCRYPT Hash gespeichert.

+----------+--------------+------+-----+---------+-------+
| FIELD    | TYPE         | NULL | KEY | DEFAULT | Extra |
+----------+--------------+------+-----+---------+-------+
| id       | VARCHAR(64)  | NO   | PRI |         |       | Username
| name     | VARCHAR(256) | YES  |     | NULL    |       | Vor- und Nachname
| password | VARCHAR(64)  | NO   |     | ''      |       | BCRYPT Hash des Passworts
| archive  | VARCHAR(256) | YES  |     | NULL    |       | Container des Users
| ROLE     | VARCHAR(32)  | NO   |     | USER    |       | Rolle
+----------+--------------+------+-----+---------+-------+

address

Die Tabelle „address“ enthält die Adressen, die einem Benutzer zugeordnet sind. Aus den Adressen wird einFilter generiert, durch den die Antwortliste des Queries gefiltert wird. Für den Admin oder Revisor solltedie Adresse *@* konfiguriert werden.

Diese Liste wird im Info-Feld des Web-UIs angezeigt.

+---------+-------------+------+-----+---------+-------+
| FIELD   | TYPE        | NULL | KEY | DEFAULT | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | VARCHAR(64) | NO   | PRI |         |       | Username (USER.id)
| address | VARCHAR(64) | NO   | PRI |         |       | E-Mail Adresse für FILTER
+---------+-------------+------+-----+---------+-------+

appstate

Der Status des Web-UIs der Benutzer wird beim Abmelden hier gespeichert.

+--------+--------------+------+-----+---------+-------+
| FIELD  | TYPE         | NULL | KEY | DEFAULT | Extra |
+--------+--------------+------+-----+---------+-------+
| id     | VARCHAR(64)  | NO   | PRI |         |       |
| userid | VARCHAR(64)  | NO   |     |         |       |
| VALUE  | VARCHAR(254) | NO   | PRI |         |       |
+--------+--------------+------+-----+---------+-------+

storedquery

Jeder Benutzer kann im Web-UI Suchanfragen mit einem Namen abspeichern. Diese Suchanfragen werden in dieserTabelle gespeichert.

+--------+--------------+------+-----+---------+-------+
| FIELD  | TYPE         | NULL | KEY | DEFAULT | Extra |
+--------+--------------+------+-----+---------+-------+
| id     | VARCHAR(64)  | NO   | PRI |         |       | Interne Id der Abfrage
| userid | VARCHAR(64)  | YES  |     |         |       | Benutzername (USER.id) dem dieser Abfrage 
| name   | VARCHAR(255) | YES  |     |         |       | Name der gespeicherten Abfrage
| query  | text         | YES  |     | NULL    |       | Serialisiertes Objekt mit der gespeicherten Abfrage
+--------+--------------+------+-----+---------+-------+

container

Die Tabelle „container“ enthält die dem User zugeordneten Container und Subcontainer. Falls Subcontainer konfiguriert wurden, wird der Subcontainer im AUTH-Modul per „/“ an den Conainer angehängt.

+--------+--------------+------+-----+---------+-------+
| FIELD  | TYPE         | NULL | KEY | DEFAULT | Extra |
+--------+--------------+------+-----+---------+-------+
| userid | VARCHAR(64)  | NO   | PRI |         |       | Benutzer-Id
| cid    | VARCHAR(128) | NO   | PRI |         |       | Container
| scid   | VARCHAR(128) | NO   | PRI |         |       | Subcontainer
+--------+--------------+------+-----+---------+-------+

MySQL Datenbank

Beispiel der SQL Queries zum Erstellen der Benutzerdatenbank in MySQL: benno.sql

CREATE TABLE `address` (
  `id` VARCHAR(64) NOT NULL DEFAULT '',
  `address` VARCHAR(64) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`,`address`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE `appstate` (
  `id` VARCHAR(64) NOT NULL DEFAULT '',
  `userid` VARCHAR(64) NOT NULL DEFAULT '',
  `value` VARCHAR(254) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`,`value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE `container` (
  `userid` VARCHAR(64) NOT NULL DEFAULT '',
  `cid` VARCHAR(128) NOT NULL DEFAULT '',
  `scid` VARCHAR(128) NOT NULL DEFAULT '',
  PRIMARY KEY (`userid`,`cid`,`scid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
 
CREATE TABLE `filter` (
  `id` VARCHAR(64) NOT NULL DEFAULT '',
  `userid` VARCHAR(64) DEFAULT '',
  `name` VARCHAR(255) DEFAULT '',
  `filter` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE `storedquery` (
  `id` VARCHAR(64) NOT NULL DEFAULT '',
  `userid` VARCHAR(64) DEFAULT '',
  `name` VARCHAR(255) DEFAULT '',
  `query` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
CREATE TABLE `user` (
  `id` VARCHAR(64) NOT NULL DEFAULT '',
  `name` VARCHAR(256) DEFAULT NULL,
  `password` VARCHAR(64) NOT NULL DEFAULT '',
  `archive` VARCHAR(256) DEFAULT NULL,
  `role` VARCHAR(32) NOT NULL DEFAULT 'USER',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

imapuser

Diese Tabelle wird nur benötigt, wenn der Import mittels benno-imapsync erfolgen soll. Hier werden die IMAP-Benutzer gespeichert. Das Passwort wird für die Authentisierung am IMAP-Server benötigt. Es wird reversibel (3DES) verschlüsselt gespeichert und kan mit dem bei der installation von benno-imap erstellten privaten Schlüssel entschlüsselt werden.

CREATE TABLE `imapuser` (
  `id` VARCHAR(64) NOT NULL DEFAULT '',
  `imapuser` VARCHAR(64) NOT NULL DEFAULT '',
  `imaphost` VARCHAR(64) NOT NULL DEFAULT '',
  `imapstatus` longtext,
  `password` text,
  `status` INT(11) DEFAULT '0',
  PRIMARY KEY (`imapuser`,`imaphost`)
);