В Benno MailArchiv электронные письма хранятся в логически плоской структуре. Вся система содержит только тот подуровневый контейнер, к которому привязано электронное письмо.
Данное назначение определяется в конфигурационном файле /etc/benno/benno.xml с использованием параметров конфигурации соответствующего контейнера.
С логической точки зрения, внутри контейнера не происходит никакой дальнейшей структуризации. Поиск и отображение результатов осуществляется REST-демоном и происходит непосредственно на уровне контейнера.
Таким образом, REST-демон имеет доступ ко всем электронным письмам в контейнере. Права доступа регулируются на этом уровне.
Поисковый запрос к REST-демону возвращает список совпадений, содержащий внутренние идентификаторы найденных электронных писем. Затем REST-интерфейс отображает соответствующее электронное письмо.
Права доступа проверяются непосредственно во время поиска. Параметры поискового запроса используются внутри системы для фильтрации действительных для данного запроса адресов электронной почты и отправки их в Lucene.
Этот фильтр устанавливается при входе пользователя в систему и не может быть изменен.
Die für den Benutzer gültigen E-Mail Adressen sowie der zugeordnete Container werden beim Anlegen des Benutzers festgelegt. Für den Benutzer hansen wurden beispielsweise die Adressen
определенный.
После входа в систему эти адреса извлекаются из базы данных пользователей и устанавливаются в качестве фильтра. Пользователь может найти только те электронные письма, в которых один из присвоенных ему адресов указан либо в качестве отправителя, либо в качестве получателя.
Если адрес электронной почты должен быть предоставлен другому пользователю, он будет добавлен к его учетной записи. Эти параметры конфигурации позволяют, например, назначить адрес электронной почты отдела его сотрудникам.
Die Filter werden intern mit der Query-Syntax von Lucene implementiert. Somit sind hier Wildcards (*) möglich, um einem User beispielsweise Zugriff auf eine komplette Sub-Domain zu ermöglichen.