User tools

Website tools


database schema

This is an old version of the document!


Database schema

user

This table contains the user data. The password is stored as a BCRYPT hash.

+----------+--------------+------+-----+---------+-------+
| 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.

This list is displayed in the info field of the web UI.

+---------+-------------+------+-----+---------+-------+
| 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

The user's web UI status is saved here upon logout.

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

container

The "container" table contains the containers and subcontainers assigned to the user. If subcontainers have been configured, the subcontainer is appended to the container in the AUTH module using "/".

+--------+--------------+------+-----+---------+-------+
| 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
+--------+--------------+------+-----+---------+-------+

filter

In der Tabelle „filter“ können Lucene Query Filter gespeichert werden. Bei der Anmeldung werden die Filter des Benutzers mit dem Benutzernamen „userid“ geladen und bei jeder Suche per AND verknüpft.

+——–+————–+——+—–+———+——-+

Field Type Null Key Default Extra

+——–+————–+——+—–+———+——-+

id varchar(64) NO PRI
userid varchar(128) YES
name varchar(255) YES
filter text YES NULL

+——–+————–+——+—–+———+——-+

storedquery

Each user can save search queries with a name in the web UI. These search queries are stored in this table.

+--------+--------------+------+-----+---------+-------+
| 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
+--------+--------------+------+-----+---------+-------+

MySQL database

Example of SQL queries for creating the user database 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`)
);
datenbank-schema.1738917648.txt.gz · Zuletzt geändert: 2025/02/07 08:40 von lwsystems