Änderungen von Dokument Digitale Mitgliederverwaltung

Zuletzt geändert von Daniel Herrmann am 2026/02/22 21:17

Von Version Icon 62.1 Icon
bearbeitet von Daniel Herrmann
am 2025/10/24 18:48
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version Icon 65.1 Icon
bearbeitet von Daniel Herrmann
am 2026/01/30 10:41
Änderungskommentar: Löschung des Anhangs Fall 3 Ablaufdiagramm_

Zusammenfassung

Details

Icon Seiteneigenschaften
Inhalt
... ... @@ -702,804 +702,6 @@
702 702  1. Als Teil des N8n Workflows informiert N8n das Backend darüber, dass das Dokument eingescannt und verarbeitet wurde. Der Vorgang wird entsprechend in der Datenbank als erledigt markiert.
703 703  1. (Optional): Wurde im vorherigen Schritt über den Webhook ein N8n Workflow ausgelöst, kann dieser nun weitere Schritte unternehmen (beispielsweise Vikunja Tasks erzeugen, Mails verschicken, oder ähnlich)
704 704  
705 -= Paperless NGX =
706 -
707 -Das Herzstück der digitalen Mitgliederakte bildet Paperless NGX. Es wird im Makerspace lokal betrieben und ist daher nur aus dem Netzwerk des Makerspaces oder [[per VPN>>doc:xwiki:IN.IT Infrastruktur.IT im Makerspace.[HOWTO] Makerspace VPN.WebHome]] erreichbar. Der Zugang zu Paperless ist über OpenID Connect an [[doc:xwiki:IN.IT Infrastruktur.Services.Keycloak.WebHome]] gekoppelt, Zugang besteht nur für Mitglieder der Gruppen **Vorstand** und **Mitgliederverwaltung**.
708 -
709 -== Paperless Übersicht ==
710 -
711 -**Dokumente** sind die primären Ressourcen in Paperless. Ein Dokument kann über mehrere Wege in Paperless aufgenommen werden (der Prozess wird **Ingestion** genannt):
712 -
713 -* **Per E-Mail**: es sind zwei Mail-Adressen eingerichtet, eingehende Anhänge werden automatisch von Paperless verarbeitet. Die QR Code Verarbeitung (siehe unten) findet hier ebenfalls Anwendung.
714 -** Die Mitgliederverwaltung: [[mitglieder-dokumente@makerspace-darmstadt.de>>mailto:mitglieder-dokumente@makerspace-darmstadt.de||shape="rect"]]
715 -** Den Vorstand: [[vorstand-dokumente@makerspace-darmstadt.de>>mailto:vorstand-dokumente@makerspace-darmstadt.de||shape="rect"]]
716 -* **Per Ordner**: Auf unserem NAS gibt es einen speziellen Ordner, der in Paperless eingebunden ist. Alle Dokumente, die in diesen Ordner gelegt werden, werden automatisch von Paperless verarbeitet. Dieser Ordner wird hauptsächlich vom Dokumentenscanner verwendet, der die gescannten Dokumente ablegt. Dies ermöglicht einen einfachen Scan mit einem einfachen Button, die Dokumente werden dann automatisch in Paperless erkannt
717 -* **Per Weboberfläche**: Es ist ebenfalls möglich, Dokumente manuell über die Weboberfläche hinzuzufügen.
718 -
719 -Die folgenden Grafik gibt eine Übersicht:
720 -
721 -{{confluence_drawio border="true" diagramName="Ingest Diagram" simpleViewer="false" links="auto" tbstyle="top" lbox="true" diagramWidth="1016" height="451" revision="3"/}}
722 -
723 -Die Konfiguration des Scanners ist so eingerichtet, dass nur zwei Buttons auf dem Display sichtbar sind:
724 -
725 -* **SCAN Vorstand** - Platziert das Dokument in dem Consumption Ordner für den Vorstand, Rechte und Tags werden dann automatisch gesetzt
726 -* **SCAN MV** - Platziert das Dokument in dem Consumption Ordner für die Mitgliederverwaltung, Rechte und Tags werden dann automatisch gesetzt
727 -
728 -== Übersicht der Metadaten ==
729 -
730 -Dokumente werden dann Meta-Daten zugeordnet, die eine spätere Suche und Zuordnung erleichtern. Diese Meta-Daten sind:
731 -
732 -* **Korrespondent**: Im Prinzip der "Gesprächspartner", beispielsweise der Absender eines Briefs. Im Falle der Mitgliederverwaltung wird für jedes Mitglied und jeden registrierten Gast automatisch im Hintergrund ein Korrespondent angelegt. Die Korrespondenten heißen:
733 -** Für **Mitglieder**: //Vorname Nachname (#Mitgliedsnummer)//, also beispielsweise "//Daniel Herrmann (#250)//"
734 -** Für **Gäste**: //Vorname Nachname (GEindeutigeNummer)//, also beispielsweise "//Max Mustermann (G1244)//"
735 -** Bei **Vereinseintritt** und **Vereinsaustritt** werden die Korrespondenten automatisch umbenannt, auch Namensänderungen werden automatisch verarbeitet.
736 -* **Tags**: Einem Dokument können beliebig viele Tags zugewiesen werden. **Tags** dienen der einfacheren **Zuordnung** und dem **Wiederfinden** von Dokumenten. Es gibt allerdings auch spezielle Tags für Dokumente die eingelesen aber noch nicht bearbeitet wurden, so genannte "Inbox Tags":
737 -** (% style="color:var(--ds-icon-success,#22a06b);" %)**Inbox Mitgliederverwaltung**(%%) - Alle **Dokumente** die **per Mail oder per Ordner** für die **Gruppe Mitgliederverwaltung** aufgenommen wurden und **nicht automatisch zugeordnet** werden konnten.
738 -** (% style="color:var(--ds-icon-accent-blue,#1d7afc);" %)**Inbox Vorstand**(%%) - Alle **Dokumente** die **per Mail oder per Ordner** für die **Gruppe Vorstand** aufgenommen wurden und **nicht automatisch zugeordnet** werden konnten.
739 -* **Dokumenten-Typen**: Einem Dokument wird exakt ein Typ zugewiesen. Dokumenten Typen sind im Prinzip einfache Gruppen. Für die Mitgliederverwaltung sind die Gruppen gemäß der folgenden Liste festgelegt, können aber natürlich bei Bedarf erweitert werden.
740 -** Mitgliedsantrag
741 -** SEPA Lastschriftmandat
742 -** Studienbescheinigung
743 -** Bestätigung Schlüsselausgabe
744 -** Verpflichtungserklärung Datenschutz
745 -** Übungsleitervertrag
746 -** Nutzungsvereinbarung Schulungsinhalte
747 -** Bestellung als Einweiser:in
748 -** Haftungsausschluss
749 -** Einweisungszettel
750 -** Lagervertrag Kistenlager
751 -** Lagervertrag Projektlager
752 -* (((
753 -**Storage Path**: Speicherpfade sind ein fortgeschrittenes Feature, welches kontrolliert, wie die Dateien im unterliegenden Dateisystem gespeichert werden. In der Regel arbeitet man nicht direkt mit den Dateien, aber wenn man aus lange Sicht mal aus Paperless NGX weg ziehen möchte kann es sinnvoll sein, die Dokumente in einer Struktur zu speichern, die man theoretisch auch manuell durchsuchen könnte. Details finden sich in der [[Dokumentation von Paperless zu File Name Handling>>url:https://docs.paperless-ngx.com/advanced_usage/#file-name-handling||shape="rect"]].
754 -\\{{info title="Verhalten von Paperless"}}(% style="text-decoration: none;color:var(--ds-text-accent-purple-bolder,#352c63);" %)Paperless checks the filename of a document whenever it is saved. Changing (or deleting) a (%%)[[storage path>>url:https://docs.paperless-ngx.com/advanced_usage/#storage-paths||style="text-decoration: none;" shape="rect"]](% style="text-decoration: none;color:var(--ds-text-accent-purple-bolder,#352c63);" %) will automatically be reflected in the file system. However, when changing (% style="text-decoration: none;" %){{code language="none"}}PAPERLESS_FILENAME_FORMAT{{/code}}(% style="text-decoration: none;color:var(--ds-text-accent-purple-bolder,#352c63);" %) you will need to manually run the (%%)[[
755 -
756 -{{code language="none"}}
757 -document renamer
758 -{{/code}}>>url:https://docs.paperless-ngx.com/administration/#renamer||style="text-decoration: none;" shape="rect"]](% style="text-decoration: none;color:var(--ds-text-accent-purple-bolder,#352c63);" %) to move any existing documents.{{/info}}
759 -In unserem Fall kommen die folgenden Speicherpfade zum Einsatz:
760 -\\
761 -
762 -|=(% scope="col" %)(((
763 -Name
764 -)))|=(% scope="col" %)(((
765 -Definition
766 -)))|=(% scope="col" %)(((
767 -Sichtbar für
768 -)))|=(% scope="col" %)(((
769 -Anwendung
770 -)))
771 -|(((
772 -Mitglieder Einweisungszettel
773 -)))|(((
774 -(% class="code" %)
775 -(((
776 -~{~{ correspondent }}/Einweisungen/~{~{ document_type }}-~{~{ tag_list }}-~{~{ created }}-~{~{ doc_pk }}
777 -)))
778 -)))|(((
779 -Mitgliederverwaltung
780 -)))|(((
781 -Einweisungszettel
782 -)))
783 -|(((
784 -Mitglieder Unterlagen
785 -)))|(((
786 -(% class="code" %)
787 -(((
788 -~{~{ correspondent }}/~{~{ document_type }}-~{~{ created }}-~{~{ doc_pk }}
789 -)))
790 -)))|(((
791 -Mitgliederverwaltung
792 -)))|(((
793 -Alle anderen Mitgliederdokumente
794 -)))
795 -|(((
796 -Vorstand Dokumente
797 -)))|(((
798 -(% class="code" %)
799 -(((
800 -~{~{ created_year }}/~{~{ correspondent }}/~{~{ title }}
801 -)))
802 -)))|(((
803 -Vorstand
804 -)))|(((
805 -Alle Vorstandsdokumente
806 -)))
807 -)))
808 -
809 -== Automatische Zuordnung von Metadaten ==
810 -
811 -Paperless unterstützt die automatische Zuordnung von Metadaten basierend auf festen Strings. So kann man beispielsweise angeben, dass ein Dokumententyp "Haftungsausschluss" zugewiesen werden soll, wenn der String "Haftungsausschluss" irgendwo im Dokument vorkommt. Dies ist allerdings auf eine korrekte Funktion der Texterkennung angewiesen und funktioniert erfahrungsgemäß nur in manchen Fällen, sodass mindestens eine manuelle Überprüfung trotzdem notwendig kommt. Wenn beispielsweise ein Brief mit dem Satz "ich dachte, ich hätte den Haftungsausschluss bereits abgegeben, könntet ihr dies bitte prüfen" erfasst wird, würde der basierend auf der Regel ebenfalls kategorisiert werden.
812 -
813 -**Aus diesem Grund wird auf jedes Dokument einen spezieller QR Code aufgedruckt**. Der QR code wird vom Post-Consume Script verwendet um die Metadaten in Paperless zuzuordnen. Weiterhin können Daten übermittelt werden, die dann mittels Webhook an N8n übermittelt werden und dort im Workflow verwendet werden können. Der Aufbau orientiert sich an dem Aufbau eines **JSON Web Tokens (JWT).**
814 -
815 -=== (% style="color:var(--ds-text-accent-purple-bolder,#352c63)" %)Barcode erzeugen(%%) ===
816 -
817 -(% style="color:var(--ds-text-accent-purple-bolder,#352c63)" %)Der Prozess zur Erzeugung eines QR Codes ist wie folgt:
818 -
819 -* **Payload (Daten) festlegen**. Einige Werte sind verpflichtend, andere können nach Bedarf optional hinzugefügt werden.
820 -* JWT erzeugen und signieren. der JWT besteht aus drei Teilen:
821 -** **Header**: **alg** (Algorithmus) und **typ** (JWT) sind verpflichtend. Zusätzlich fügen wir einen Timestamp, eine eindeutige ID und eine Gültigkeitsdauer hinzu.
822 -** **Body**: beinhaltet die eigentlichen Daten.
823 -** **Signature**: Mit Hilfe eines Secrets und wird die Signatur erzeugt und automatisch angehängt.
824 -* PDF417 code erzeugen: ein JWT ist per Definition URL safe und kann daher einfach in ein QR code umgewandelt werden.
825 -
826 -=== Header ===
827 -
828 -Der Header enthält wichtige Meta-Daten, diese werden von der JWT Library automatisch erzeugt und beschreiben in der Regel den verwendeten Key-Typ.
829 -
830 -=== Body ===
831 -
832 -Die folgenden Claims sind im Body verfügbar.
833 -
834 -|=(((
835 -Claim
836 -)))|=(((
837 -Type
838 -)))|=(((
839 -Pflicht
840 -)))|=(((
841 -Beschreibung
842 -)))
843 -|(((
844 -id
845 -)))|(((
846 -UUID4
847 -)))|(((
848 -✅️
849 -)))|(((
850 -Eindeutige ID dieses Dokuments
851 -)))
852 -|(((
853 -time
854 -)))|(((
855 -Zahl
856 -)))|(((
857 -✅️
858 -)))|(((
859 -UTC Linux-Timestamp an dem das Dokument und der QR Code erzeugt wurden
860 -)))
861 -|(((
862 -exp
863 -)))|(((
864 -Zahl
865 -)))|(((
866 -✅️
867 -)))|(((
868 -UTC Linux-Timestamp der angibt, bis wann das Dokument gültig ist.
869 -)))
870 -|(((
871 -(% class="code" %)
872 -(((
873 -typ
874 -)))
875 -)))|(((
876 -String
877 -)))|(((
878 -✅️
879 -)))|(((
880 -Typ des Dokuments basierend auf der unten definierten Liste.
881 -)))
882 -|mode|String|✅️ |Kann entweder "digital" oder "manual" sein und bestimmt, ob N8n den unterschriebenen Vertrag ans Backend meldet.
883 -|(((
884 -(% class="code" %)
885 -(((
886 -cor
887 -)))
888 -)))|(((
889 -String
890 -)))|(((
891 -❌️
892 -)))|(((
893 -Optional: Name des Korrespondenten, dem das Dokument zugeordnet werden soll
894 -)))
895 -|(((
896 -tags
897 -)))|(((
898 -List[String]
899 -)))|(((
900 -❌️
901 -)))|(((
902 -Liste an Tags, die dem Dokument zugeordnet werden soll
903 -)))
904 -|(((
905 -spth
906 -)))|(((
907 -String
908 -)))|(((
909 -❌️
910 -)))|(((
911 -Storage Path, das dem Dokument zugeordnet werden soll
912 -)))
913 -|(((
914 -opt
915 -)))|(((
916 -dict
917 -)))|(((
918 -❌️
919 -)))|(((
920 -Optionale Attribute, die mit eincodiert werden und dem N8n Workflow übergeben werden.
921 -)))
922 -
923 -=== {{id name="DigitaleMitgliederverwaltung-Footer"/}}Footer ===
924 -
925 -Der Footer wird automatisch erzeugt und erhält eine Signatur über den Header und den Body, basierend auf einem Algorithmus und einer Signatur.
926 -
927 -{{confluence_tip title="Algorithmus"}}
928 -Von den meisten Libraries werden symmetrische und asymmetrische Signaturen unterstützt. Die Verwendung eines symmetrischen Algorithmus ist für uns einfacher.
929 -
930 -Für diesen Anwendungsfall nutzen wir (% style="text-decoration: none;color:var(--ds-text,#333333);" %)**HS256** (HMAC mit SHA-256 Algorithmus).
931 -{{/confluence_tip}}
932 -
933 -=== Auswahl der Library ===
934 -
935 -Die Implementierung für die Erzeugung und das Validieren erfolgt in Python. Dies hat den Hintergrund, dass sowohl unser Backend als auch Paperless NGX (und damit das Post-Consumption Script) in Python implementiert ist. Es gibt verschiedene Libraries, die betrachtet wurden:
936 -
937 -|=(((
938 -Name
939 -)))|=(((
940 -CVE
941 -)))|=(((
942 -Github
943 -)))|=(((
944 -GH⭐
945 -)))|=(((
946 -Letztes Release
947 -)))|=(((
948 -Offene Issues
949 -)))|=(((
950 -Dokumentation
951 -)))|=(((
952 -Qualität Dokumentation
953 -)))|=(((
954 -In Backend vorhanden?
955 -)))|=(((
956 -In Paperless vorhanden?
957 -)))
958 -|(((
959 -python-jose
960 -)))|(((
961 -3/0
962 -)))|(((
963 -[[https:~~/~~/github.com/mpdavis/python-jose>>url:https://github.com/mpdavis/python-jose||shape="rect"]]
964 -)))|(((
965 -1.7k
966 -)))|(((
967 -28.05.2025
968 -)))|(((
969 -83
970 -)))|(((
971 -[[https:~~/~~/python-jose.readthedocs.io/en/latest/>>url:https://python-jose.readthedocs.io/en/latest/||shape="rect"]]
972 -)))|(((
973 -⛔ Wenige Bespiele, API Dokumentation fehlt komplett
974 -)))|(((
975 -❌️
976 -)))|(((
977 -❌️
978 -)))
979 -|(((
980 -pyJWT
981 -)))|(((
982 -4/0
983 -)))|(((
984 -[[https:~~/~~/github.com/jpadilla/pyjwt>>url:https://github.com/jpadilla/pyjwt||shape="rect"]]
985 -)))|(((
986 -5.4k
987 -)))|(((
988 -28.11.2024
989 -)))|(((
990 -30
991 -)))|(((
992 -[[https:~~/~~/pyjwt.readthedocs.io>>url:https://pyjwt.readthedocs.io||shape="rect"]]
993 -)))|(((
994 -➕️ Gute Dokumentation, API, Beispiele, Changelog
995 -)))|(((
996 -✅️ 2.10.1
997 -Dep von firebase
998 -)))|(((
999 -✅️ 2.10.1
1000 -)))
1001 -|(((
1002 -JWCrypto
1003 -)))|(((
1004 -5/0
1005 -)))|(((
1006 -[[https:~~/~~/github.com/latchset/jwcrypto>>url:https://github.com/latchset/jwcrypto||shape="rect"]]
1007 -)))|(((
1008 -465
1009 -)))|(((
1010 -06.03.2024
1011 -)))|(((
1012 -8
1013 -)))|(((
1014 -[[https:~~/~~/jwcrypto.readthedocs.io>>url:https://jwcrypto.readthedocs.io||shape="rect"]]
1015 -)))|(((
1016 -➕️ API Doc, einige Beispiele
1017 -)))|(((
1018 -✅️ 1.5.6
1019 -Dep von python-keycloak
1020 -)))|(((
1021 -❌️
1022 -)))
1023 -
1024 -Unsere bevorzugte Library ist **pyjwt**. Diese ist auch in **paperless nativ vorhanden**, sodass wir uns für die Implementierung mittels **pyjwt** entschieden haben.
1025 -
1026 -=== PDF417 Code ===
1027 -
1028 -Als Format für den Code wurde PDF417 ausgewählt, da dieser mehr Platz und Fehlerkorrektur bietet. Weiterhin gibt es eine einfach zu nutzende Library für Python (Erzeugung) und PDF417 wird von (% style="color:var(--ds-text-accent-purple-bolder,#352c63); text-decoration:none" %)ZXING unterstützt, welches in Paperless eingebettet ist. Ein solcher Barcode sieht beispielsweise so aus:
1029 -
1030 -(% style="color:var(--ds-text-accent-purple-bolder,#352c63); text-decoration:none" %)[[image:attach:barcode.jpg||height="250"]]
1031 -
1032 -(% style="color:var(--ds-text-accent-purple-bolder,#352c63); text-decoration:none" %)Daraus kann dann eine Base64 basierte Repräsentation berechnet werden, die einfach in Docuseal hochgeladen werden kann.
1033 -
1034 -=== Referenz-Implementierung ===
1035 -
1036 -Eine Referenz-Implementierung befindet sich im Makerspace Gitlab: [[https:~~/~~/git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-pdf417-reference>>url:https://git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-pdf417-reference||shape="rect"]]
1037 -
1038 -=== Post Consumption Script ===
1039 -
1040 -Die eigentliche Zuordnung der Meta-Daten erfolgt über ein so genanntes Post Consumption Script. Dieses befindet sich ebenfalls im Makerspace Gitlab: [[https:~~/~~/git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-post-consumption-script#>>url:https://git.makerspace-darmstadt.de/makerspace-it-infrastructure/mitgliederverwaltung/paperless-post-consumption-script||shape="rect"]]
1041 -
1042 -== Paperless Berechtigungen ==
1043 -
1044 -Paperless NGX hat ein Berechtigungssystem, welches sich über fast alle Ressourcen erstreckt. Grundsätzlich gibt es **Benutzer** und **Gruppen**. Berechtigungen können dann global vergeben werden (Sichtbarkeit von Features) und zusätzlich auf Objektebene vergeben werden.
1045 -
1046 -=== Benutzer und Gruppen ===
1047 -
1048 -Paperless NGX ist so konfiguriert, dass sich Benutzer mit ihrem zentralen Makerspace Login anmelden können (OIDC über Keycloak). Eine Anmeldung mit lokalen Zugangsdaten ist nicht möglich. Bei der Anmeldung werden ebenfalls die Gruppen aus Keycloak übernommen, aber nur die folgenden:
1049 -
1050 -* **Vorstand**: Für die Mitglieder des Vorstands
1051 -* **Mitgliederverwaltung**: Alle Personen, die mit der Verwaltung der Mitglieder betraut sind
1052 -* **IT Admin**: IT Administratoren im Makerspace
1053 -
1054 -Nutzer, die keine dieser Gruppen angehören haben keine Rechte in Paperless. Sie können sich zwar anmelden, aber selbst die Willkommens-Seite erzeugt eine "Permission Denied" Fehlermeldung.
1055 -
1056 -=== Globale Berechtigungen ===
1057 -
1058 -Berechtigungen werden grundsätzlich nicht auf Benutzerebene konfiguriert, sondern ausschließlich auf Gruppenebene. So wird sichergestellt, dass bei der Änderung einer Gruppenzugehörigkeit auch die damit verbundenen Rechte entzogen oder gewährt werden, ohne dass eine manuelle Änderung notwendig ist. Die folgende Tabelle gibt eine Übersicht der konfigurierten globalen Berechtigungen pro Gruppe:
1059 -
1060 -|=(% scope="row" %)(((
1061 -Berechtigung
1062 -)))|=(((
1063 -Beschreibung
1064 -)))|=(((
1065 -Mitgliederverwaltung
1066 -)))|=(((
1067 -Vorstand
1068 -)))|=(((
1069 -IT Admin
1070 -)))|=(((
1071 -Notiz
1072 -)))
1073 -|=(((
1074 -Document
1075 -)))|(((
1076 -Sehen und bearbeiten von Dokumenten.
1077 -)))|(((
1078 -ALLE
1079 -)))|(((
1080 -ALLE
1081 -)))|(((
1082 -KEINE
1083 -)))|(((
1084 -Wird zusätzlich durch Berechtigungen auf Objekt-Level eingeschränkt
1085 -)))
1086 -|=(((
1087 -Tag
1088 -)))|(((
1089 -Sehen und bearbeiten von Tags.
1090 -)))|(((
1091 -Anzeigen
1092 -)))|(((
1093 -ALLE
1094 -)))|(((
1095 -ALLE
1096 -)))|(((
1097 -Wird zusätzlich durch Berechtigungen auf Objekt-Level eingeschränkt
1098 -)))
1099 -|=(((
1100 -Correspondent
1101 -)))|(((
1102 -Sehen und bearbeiten von Korrespondenten
1103 -)))|(((
1104 -Anzeigen
1105 -)))|(((
1106 -ALLE
1107 -)))|(((
1108 -ALLE
1109 -)))|(((
1110 -Wird zusätzlich durch Berechtigungen auf Objekt-Level eingeschränkt
1111 -)))
1112 -|=(((
1113 -DocumentType
1114 -)))|(((
1115 -Sehen und bearbeiten von Dokument-Typen
1116 -)))|(((
1117 -Anzeigen
1118 -)))|(((
1119 -ALLE
1120 -)))|(((
1121 -ALLE
1122 -)))|(((
1123 -Wird zusätzlich durch Berechtigungen auf Objekt-Level eingeschränkt
1124 -)))
1125 -|=(((
1126 -StoragePath
1127 -)))|(((
1128 -Sehen und bearbeiten von Speicherpfaden
1129 -)))|(((
1130 -Anzeigen
1131 -)))|(((
1132 -Anzeigen
1133 -)))|(((
1134 -ALLE
1135 -)))|(((
1136 -Wird zusätzlich durch Berechtigungen auf Objekt-Level eingeschränkt
1137 -)))
1138 -|=(((
1139 -SavedView
1140 -)))|(((
1141 -Ansichten erzeugen und speichern
1142 -)))|(((
1143 -ALLE
1144 -)))|(((
1145 -ALLE
1146 -)))|(((
1147 -KEINE
1148 -)))|(((
1149 -
1150 -)))
1151 -|=(((
1152 -PaperlessTask
1153 -)))|(((
1154 -Dateiaufgaben einsehen und löschen
1155 -)))|(((
1156 -KEINE
1157 -)))|(((
1158 -KEINE
1159 -)))|(((
1160 -ALLE
1161 -)))|(((
1162 -
1163 -)))
1164 -|=(((
1165 -AppConfig
1166 -)))|(((
1167 -Konfiguration von Paperless NGX selbst
1168 -)))|(((
1169 -KEINE
1170 -)))|(((
1171 -KEINE
1172 -)))|(((
1173 -ALLE
1174 -)))|(((
1175 -
1176 -)))
1177 -|=(((
1178 -UISettings
1179 -)))|(((
1180 -Persönliche Anzeigeeinstellungen ändern
1181 -)))|(((
1182 -ALLE
1183 -)))|(((
1184 -ALLE
1185 -)))|(((
1186 -ALLE
1187 -)))|(((
1188 -
1189 -)))
1190 -|=(((
1191 -History
1192 -)))|(((
1193 -Dokumenten-Audit Log anzeigen oder ändern
1194 -)))|(((
1195 -Anzeigen
1196 -)))|(((
1197 -Anzeigen
1198 -)))|(((
1199 -KEINE
1200 -)))|(((
1201 -Nur für Dokumente, auf die Zugriff gewährt wurde.
1202 -)))
1203 -|=(((
1204 -Note
1205 -)))|(((
1206 -Notizen zu Dokumenten einsehen oder ändern
1207 -)))|(((
1208 -ALLE
1209 -)))|(((
1210 -ALLE
1211 -)))|(((
1212 -KEINE
1213 -)))|(((
1214 -Nur für Dokumente, auf die Zugriff gewährt wurde.
1215 -)))
1216 -|=(((
1217 -MailAccount
1218 -)))|(((
1219 -Mail-Accounts verwalten
1220 -)))|(((
1221 -KEINE
1222 -)))|(((
1223 -Anzeigen
1224 -)))|(((
1225 -ALLE
1226 -)))|(((
1227 -
1228 -)))
1229 -|=(((
1230 -MailRule
1231 -)))|(((
1232 -Verarbeitungsregeln für eingehende Mails bearbeiten
1233 -)))|(((
1234 -KEINE
1235 -)))|(((
1236 -ALLE
1237 -)))|(((
1238 -ALLE
1239 -)))|(((
1240 -
1241 -)))
1242 -|=(((
1243 -User
1244 -)))|(((
1245 -Benutzer einsehen oder verwalten
1246 -)))|(((
1247 -KEINE
1248 -)))|(((
1249 -Anzeigen
1250 -)))|(((
1251 -ALLE
1252 -)))|(((
1253 -
1254 -)))
1255 -|=(((
1256 -Group
1257 -)))|(((
1258 -Gruppen einsehen oder verwalten
1259 -)))|(((
1260 -KEINE
1261 -)))|(((
1262 -Anzeigen
1263 -)))|(((
1264 -ALLE
1265 -)))|(((
1266 -
1267 -)))
1268 -|=(((
1269 -ShareLink
1270 -)))|(((
1271 -Öffentliche Share-Links erstellen oder verwalten
1272 -)))|(((
1273 -KEINE
1274 -)))|(((
1275 -KEINE
1276 -)))|(((
1277 -KEINE
1278 -)))|(((
1279 -
1280 -)))
1281 -|=(((
1282 -CustomField
1283 -)))|(((
1284 -Custom Fields einsehen oder verwalten
1285 -)))|(((
1286 -Anzeigen
1287 -)))|(((
1288 -Anzeigen
1289 -)))|(((
1290 -ALLE
1291 -)))|(((
1292 -
1293 -)))
1294 -|=(((
1295 -Workflow
1296 -)))|(((
1297 -Workflows für neue Dokumente einsehen oder verwalten
1298 -)))|(((
1299 -KEINE
1300 -)))|(((
1301 -KEINE
1302 -)))|(((
1303 -ALLE
1304 -)))|(((
1305 -
1306 -)))
1307 -
1308 -=== Objekt-Berechtigungen ===
1309 -
1310 -Zusätzlich zu den globalen Berechtigungen können für alle Objekte noch Berechtigungen auf Objekt-Level konfiguriert werden. Dabei werden globale Regeln zuerst geprüft, danach zusätzlich die Objekt-Berechtigungen. Jedes Objekt (egal ob Dokument, Korrespondent, Tag, Dokumenten-Typ) hat zwei wichtige Einstellungen:
1311 -
1312 -* Owner / Eigentümer: Das Objekt gehört diesem Benutzer. Der Owner hat immer alle Berechtigungen für das Objekt
1313 -* Zusätzliche Berechtigungen:
1314 -** Es können getrennt voneinander Berechtigungen zum Anzeigen und Bearbeiten vergeben werden
1315 -** Diese Berechtigungen können jeweils für einzelne Benutzer oder für Gruppen gewährt werden
1316 -
1317 -Das sieht im Frontend beispielsweise so aus:
1318 -
1319 -[[image:attach:image-2025-8-25_10-19-25.png||thumbnail="true" height="250"]]
1320 -
1321 -{{info title="Berechtigungen"}}
1322 -Es sind grundsätzlich sowohl globale als auch objekt-spezifische Berechtigungen notwendig. Wenn ein Benutzer ein Objekt bearbeiten ansehen oder bearbeiten möchte ergibt sich daher die folgende Matrix:
1323 -
1324 -|=(((
1325 -Globale Berechtigung
1326 -)))|=(((
1327 -Owner
1328 -)))|=(((
1329 -Objekt-Berechtigung
1330 -)))|=(((
1331 -Ergebnis
1332 -)))
1333 -|(((
1334 -❌️
1335 -)))|(((
1336 -Egal
1337 -)))|(((
1338 -Egal
1339 -)))|(((
1340 -❌️
1341 -)))
1342 -|(((
1343 -✅️
1344 -)))|(((
1345 -✅️
1346 -)))|(((
1347 -Egal
1348 -)))|(((
1349 -✅️
1350 -)))
1351 -|(((
1352 -✅️
1353 -)))|(((
1354 -❌️
1355 -)))|(((
1356 -❌️
1357 -)))|(((
1358 -❌️
1359 -)))
1360 -|(((
1361 -✅️
1362 -)))|(((
1363 -❌️
1364 -)))|(((
1365 -✅️
1366 -)))|(((
1367 -✅️
1368 -)))
1369 -
1370 -Mit anderen Worten, um eine Aktion auszuführen, muss ein Benutzer (a) die globale Berechtigung haben **UND** (b) Owner sein **ODER** Objekt-Berechtigungen haben.
1371 -{{/info}}
1372 -
1373 -=== Lokale Owner ===
1374 -
1375 -Jedes Objekt in Paperless muss einen Owner haben. Damit der Owner nicht ein realer Benutzer ist, der gegebenenfalls den Vorstand / Mitgliederverwaltung oder Verein verlassen könnte, werden lokale Benutzer angelegt. Diese halten lediglich die Owner Rolle für die Ressourcen, können aber nicht für den Login verwendet werden.
1376 -
1377 -|=(% scope="row" %)(((
1378 -Benutzer
1379 -)))|=(((
1380 -Verwendet für
1381 -)))
1382 -|=(((
1383 -mksp-mv-owner
1384 -)))|(((
1385 -Alle Objekte (Dokumente, Dokumenttypen, Tags, Korrespondenten und Speicherpfade), die dem Use-Case **Mitgliederverwaltung** zugewiesen sind
1386 -)))
1387 -|=(((
1388 -mksp-vs-owner
1389 -)))|(((
1390 -Alle Objekte (Dokumente, Dokumenttypen, Tags, Korrespondenten und Speicherpfade), die dem Use-Case **Vorstandspost** zugewiesen sind
1391 -)))
1392 -
1393 -=== Standard-Objekt-Berechtigungen ===
1394 -
1395 -Basierend auf den hier beschrieben Regeln werden für Objekte die folgenden Berechtigungen gesetzt:
1396 -
1397 -|=(% rowspan="2" scope="rowgroup" %)(((
1398 -Objekt
1399 -
1400 -)))|=(% colspan="3" scope="colgroup" %)(((
1401 -Mitgliederverwaltung
1402 -)))|=(% rowspan="7" scope="rowgroup" %)(((
1403 -
1404 -)))|=(% colspan="3" scope="colgroup" %)(((
1405 -Vorstandspost
1406 -)))
1407 -|=(% scope="col" %)(((
1408 -Owner
1409 -)))|=(((
1410 -Anzeigen
1411 -)))|=(((
1412 -Bearbeiten
1413 -)))|=(((
1414 -Owner
1415 -)))|=(((
1416 -Anzeigen
1417 -)))|=(((
1418 -Bearbeiten
1419 -)))
1420 -|=(((
1421 -Dokument
1422 -)))|(((
1423 -mksp-mv-owner
1424 -)))|(((
1425 -Mitgliederverwaltung
1426 -)))|(((
1427 -Mitgliederverwaltung
1428 -)))|(((
1429 -mksp-vs-owner
1430 -)))|(((
1431 -Vorstand
1432 -)))|(((
1433 -Vorstand
1434 -)))
1435 -|=(((
1436 -Dokumenttyp
1437 -)))|(((
1438 -mksp-mv-owner
1439 -)))|(((
1440 -Mitgliederverwaltung, IT Admin
1441 -)))|(((
1442 -IT Admin
1443 -)))|(((
1444 -mksp-vs-owner
1445 -)))|(((
1446 -Vorstand
1447 -)))|(((
1448 -Vorstand
1449 -)))
1450 -|=(((
1451 -Tag
1452 -)))|(((
1453 -mksp-mv-owner
1454 -)))|(((
1455 -Mitgliederverwaltung, IT Admin
1456 -)))|(((
1457 -IT Admin
1458 -)))|(((
1459 -mksp-vs-owner
1460 -)))|(((
1461 -Vorstand
1462 -)))|(((
1463 -Vorstand
1464 -)))
1465 -|=(((
1466 -Korrespondent
1467 -)))|(((
1468 -mksp-mv-owner
1469 -)))|(((
1470 -Mitgliederverwaltung, IT Admin
1471 -)))|(((
1472 -IT Admin
1473 -)))|(((
1474 -mksp-vs-owner
1475 -)))|(((
1476 -Vorstand
1477 -)))|(((
1478 -Vorstand
1479 -)))
1480 -|=(((
1481 -Speicherpfad
1482 -)))|(((
1483 -mksp-mv-owner
1484 -)))|(((
1485 -Mitgliederverwaltung, IT Admin
1486 -)))|(((
1487 -IT Admin
1488 -)))|(((
1489 -mksp-vs-owner
1490 -)))|(((
1491 -Vorstand
1492 -)))|(((
1493 -IT Admin
1494 -)))
1495 -
1496 -== Workflows ==
1497 -
1498 -Paperless Workflows können zur Automatisierung verschiedener Tasks eingesetzt werden. In diesem Fall werden zwei Fälle damit abgedeckt:
1499 -
1500 -* Beim Hinzufügen der Dokumente via Webinterface **wird standardmäßig der angemeldete Nutzer als Owner des Dokuments festgelegt**. Damit haben andere Mitglieder der gleichen Gruppe (Beispielsweise Vorstand oder Mitgliederverwaltung) kein Zugriff auf die so hinzugefügten Dokumente. Aus diesem Grund setzt einer der Workflow die entsprechend notwendigen Berechtigungen.
1501 -* Einscannen von Dokumenten soll sowohl für die Mitgliederverwaltung als auch für den Vorstand möglich sein und der richtigen Gruppe zugeordnet werden. Wir haben dafür zwei unterschiedliche Ordner aus dem NAS angelegt. Der Dokumentenscanner kann Dokumente in einen der beiden Ordner legen, wir nutzen Workflows um auch hier die richtigen Berechtigungen zu setzen.
1502 -
1503 1503  = Offene Punkte =
1504 1504  
1505 1505  * Docuseal Logging + Monitoring