AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi DMS - Berechtigungssystem mit vererbbaren Berechtigungen
Thema durchsuchen
Ansicht
Themen-Optionen

DMS - Berechtigungssystem mit vererbbaren Berechtigungen

Ein Thema von Aviator · begonnen am 30. Aug 2016 · letzter Beitrag vom 2. Sep 2016
Antwort Antwort
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 15:40
Ich würde Rollen anlegen, denen Personen zugeordnet werden können.
Das bedeutet, dass für jeden Standardfall (Projekte, Angebote, Ausschreibungen, Kundenaufträge, Lieferaufträge etc.) eine Rolle angelegt werden muss. Jedem Dokument, das neu im DMS aufgenommen wird, muss eine oder mehrere Rollen zugewiesen werden und zwar vom Eigentümer (Ersteller) des Dokuments. Ggf. kann man sogar darüber nachdenken, dass der Eigentümer Rollen für spezielle Fälle anlegen kann...

Auf jeden Fall ist jetzt die Suche nach einem Dokument auf die Dokumente eingeschränkt, die einer oder mehrerer Rollen zugewiesen sind.

Ich stelle es mir sehr schwierig und sehr Zeitraubend vor, bei der Suche nach Dokumenten ALLE Verzeichnisse zu durchwühlen, für die der Suchende Berechtigungen hat.

Einen Tod muss man immer sterben, aber ein Rollen-System ist relativ einfach zu implementieren, der Pflegeaufwand für Standardrollen relativ gering und die Last hat eigentlich der Eigentümer des Dokuments. Nur die Personalfluktuation stellt noch ein klein wenig Verwaltungsaufwand dar (neue Mitarbeiter aufnehmen, ausgeschiedene Mitarbeiter kennzeichnen).

Grüße
Mikhal
Hallo mikhal,

so ist es aktuell. Jedem Dokument werden die Mitarbeiter zugeordnet, die das Dokument sehen, downloaden oder bearbeiten können. Das hat sich aber für sehr schwierig und zeitraubend erwiesen. Niemand hatte mehr Lust die Dokumente einzuchecken, da es viel zu viel Arbeit war immer die Benutzerrechte zu hinterlegen. Rollen, oder wie ich es nenne, Gruppen, machen das ganze etwas einfacher, das stimmt. Aber auch die aktuelle Art der Ablage der Dokumente erwies sich als nicht wirklich gut.

Es soll später möglich sein, die Dokumente auf einen Ordner zu ziehen (aus dem Windows Explorer) und sich dann um nichts weiteres mehr kümmern zu müssen. Die Rechte des neuen Dokuments werden vom übergeordneten Ordner geerbt und das war es. Wenn dann spezielle Rechte gesetzt werden sollen, dann muss der User das eben machen, das ist klar.

Für die Suche der Dokumente gibt es ja immer noch die Eingabe von Schlagwörtern. Somit werden entweder alle Dokumente untereinander aufgelistet, oder aber man klickt sich durch die entsprechenden Ordner und erhält nur noch die Dokumente, die etwas mit dem Schlagwort zu tun haben.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
798 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 15:45
Nicht der Benutzer wird dem Dokument zugeordnet, sondern die Rolle. Innerhalb der Rolle können vielleicht auch noch Berechtigungen einschränkt oder erweitert werden. Der Komplexität sind keine Grenzen gesetzt.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 16:16
Nicht der Benutzer wird dem Dokument zugeordnet, sondern die Rolle. Innerhalb der Rolle können vielleicht auch noch Berechtigungen einschränkt oder erweitert werden. Der Komplexität sind keine Grenzen gesetzt.

Grüße
Mikhal
Ja das ist schon klar. Aber das Verfahren ist ja im Prinzip das selbe wie es jetzt schon ist. Jedes Dokument muss nach oder während dem Einchecken noch einmal angefasst werden um Berechtigungen zu hinterlegen. Und genau das soll eben mit dem neuen Berechtigungssystem wegfallen.

Ein simples Drag & Drop aus dem Windows Explorer auf das DMS soll reichen, um ein Dokument einzuchecken. Spezielle Berechtigungen können dann immer noch gesetzt werden wenn erforderlich.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#4

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 16:37
...Ein simples Drag & Drop aus dem Windows Explorer auf das DMS soll reichen, um ein Dokument einzuchecken. Spezielle Berechtigungen können dann immer noch gesetzt werden wenn erforderlich.
Ich würde den Windows Explorer und auch alle anderen Datei-Zugriffsmöglichkeiten komplett außen vor lassen. Kein User hat Zugriff auf eine Datei, nur das DMS selber hat Zugriff, und weiß, wo die Daten/Dateien überhaupt liegen.

Die Ordnerstruktur wird wie beim Explorer im DMS angezeigt und dort werden auch die Rechte vergeben, z.B. aus der Klasse eingelesen. Wenn man die Rechtevergabe auf Dateiebene macht, viel Spass beim nächsten Systemwechsel
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 17:03
...Ein simples Drag & Drop aus dem Windows Explorer auf das DMS soll reichen, um ein Dokument einzuchecken. Spezielle Berechtigungen können dann immer noch gesetzt werden wenn erforderlich.
Ich würde den Windows Explorer und auch alle anderen Datei-Zugriffsmöglichkeiten komplett außen vor lassen. Kein User hat Zugriff auf eine Datei, nur das DMS selber hat Zugriff, und weiß, wo die Daten/Dateien überhaupt liegen.

Die Ordnerstruktur wird wie beim Explorer im DMS angezeigt und dort werden auch die Rechte vergeben, z.B. aus der Klasse eingelesen. Wenn man die Rechtevergabe auf Dateiebene macht, viel Spass beim nächsten Systemwechsel
Hallo mm1256,

ich glaube du hast dich verlesen.
Die Berechtigungen sollen natürlich nur im DMS abgebildet werden. Es ging mir lediglich darum, dass Dateien aus dem Windows Explorer ja einmalig dem DMS hinzugefügt werden müssen. Und das passiert in der Regel per FileOpen Dialog oder per Drag & Drop aus dem Explorer Fenster bzw. vom Desktop.

Sobald die Datei einmal im DMS ist, soll diese vom lokalen Rechner gelöscht werden. Alle anderen Aktionen mit dem Dokument werden über das DMS geregelt.

Deshalb betreibe ich ja den riesen Aufwand um ein eigenes Berechtigungssystem zu erstellen. Nur ist das sehr viel Arbeit, bei der ich auf eure Unterstützung hoffe.

An was muss ich alles denken, wie sollte meine Klassenstruktur aussehen, wie kann man Prozesse zu errechnen der Berechtigungen effizient(er) gestalten (siehe Beitrag #17). Da habe ich ja bzgl. der Berechnung schon einen Vorschlag gemacht. Eine andere Idee hatte ich bisher nicht. Und wenn ich ehrlich bin, gibt es in dem Fall nichts schnelleres außer binäre Operationen mit and, or, xor . Aber ich lasse mich auch gerne eines besseren beleheren.

PS: Du hast in deinem Beitrag den falschen zitiert.
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 18:04
ich glaube du hast dich verlesen.
Die Berechtigungen sollen natürlich nur im DMS abgebildet werden. Es ging mir lediglich darum, dass Dateien aus dem Windows Explorer ja einmalig dem DMS hinzugefügt werden müssen. Und das passiert in der Regel per FileOpen Dialog oder per Drag & Drop aus dem Explorer Fenster bzw. vom Desktop.
Ich glaube nicht, dass ich mich verlesen habe. Wir haben uns vielleicht missverstanden. Eben dieses Hinzufügen per Drag and Drop mit dem Explorer würde ich verhindern, und mit einem Frontend welches du über das DMS bereitstellst (kann ja auch aussehen wie der Explorer) erledigen. In diesem Frontend würde ich jeglichen Zugriff auf die Dateien abwickeln, und hätte somit eine zentrale Stelle, an welcher ich (über das von dir schon angedachte Klassendesign) auch alle Zugriffsrechte abfrage und definiere. Im Prinzip sowas wie echtes Client-Server-Management. Nur das DMS selber weiß, wo die Daten liegen. Die Benutzer greifen selber nicht mehr direkt auf die Daten zu.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
frapo

Registriert seit: 8. Feb 2012
Ort: OWL
32 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 18:42
Puhh.. ich muss zugeben, dass ich sehr verwirrt bin als das ich das Ganze hier noch richtig nachvollziehen könnte.

Irgendwie habe ich was gelesen von MS-SQL-Server. Da wäre ich ganz bei mkinzler. Die Reports in die DB schieben und das wunderbare Rechtesystem einer ausgewachsenen Datenbank nutzen. Lässt eigentlich nie Wünsche offen.

Dann habe ich was von Linux-Server gelesen. Warum dann nicht Samba nutzen? Da kann man ebenso richtige dolle Benutzerrechte in aller erdenklicher Form nutzen.

Das alles selber machen zu wollen, klingt für mich wie das Rad neu erfinden zu wollen. Oder gibt es irgendwas konkretes, spezielles, dass beide Ideen nie und nimmer umsetzen könnten? Wie gesagt.. ich habe es vielleicht noch nicht so recht erfasst, das Problem.
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#8

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 22:41
ich glaube du hast dich verlesen.
Die Berechtigungen sollen natürlich nur im DMS abgebildet werden. Es ging mir lediglich darum, dass Dateien aus dem Windows Explorer ja einmalig dem DMS hinzugefügt werden müssen. Und das passiert in der Regel per FileOpen Dialog oder per Drag & Drop aus dem Explorer Fenster bzw. vom Desktop.
Ich glaube nicht, dass ich mich verlesen habe. Wir haben uns vielleicht missverstanden. Eben dieses Hinzufügen per Drag and Drop mit dem Explorer würde ich verhindern, und mit einem Frontend welches du über das DMS bereitstellst (kann ja auch aussehen wie der Explorer) erledigen. In diesem Frontend würde ich jeglichen Zugriff auf die Dateien abwickeln, und hätte somit eine zentrale Stelle, an welcher ich (über das von dir schon angedachte Klassendesign) auch alle Zugriffsrechte abfrage und definiere. Im Prinzip sowas wie echtes Client-Server-Management. Nur das DMS selber weiß, wo die Daten liegen. Die Benutzer greifen selber nicht mehr direkt auf die Daten zu.
Hmm. Du meinst also, dass ich noch eine Art Windows Explorer in mein Programm implementieren soll um die Daten erstmalig zur Dokumentenverwaltung hinzuzufügen? Wenn nicht, dann verstehe ich es nicht.

Wenn die Daten erst einmal im DMS eingecheckt sind, dann werden die an einem speziellen Ort abgelegt an den niemand mehr heran kommt ohne über das DMS die Datei/das Dokument zu öffnen.

Puhh.. ich muss zugeben, dass ich sehr verwirrt bin als das ich das Ganze hier noch richtig nachvollziehen könnte.

Irgendwie habe ich was gelesen von MS-SQL-Server. Da wäre ich ganz bei mkinzler. Die Reports in die DB schieben und das wunderbare Rechtesystem einer ausgewachsenen Datenbank nutzen. Lässt eigentlich nie Wünsche offen.

Dann habe ich was von Linux-Server gelesen. Warum dann nicht Samba nutzen? Da kann man ebenso richtige dolle Benutzerrechte in aller erdenklicher Form nutzen.

Das alles selber machen zu wollen, klingt für mich wie das Rad neu erfinden zu wollen. Oder gibt es irgendwas konkretes, spezielles, dass beide Ideen nie und nimmer umsetzen könnten? Wie gesagt.. ich habe es vielleicht noch nicht so recht erfasst, das Problem.
Ich hoffe ich kann nochmal etwas Licht ins Dunkel bringen.

In der Datenbank werden die Verweise auf ein Dokument abgelegt. Das Dokument, also die Datei, wird auf einem Server abgelegt auf den so niemand direkten Zugriff hat. Das ist ein Linux Fileserver auf den per Samba zugegriffen wird.

Alle anderen Metadaten wie Dateityp, Datum des Eincheckens usw. werden ebenfalls noch in der Datenbank abgelegt. Zudem sollen später die Berechtigungen (also binäre Zahlenwerte) pro Verzeichnis bzw. auch pro Dokument in der Datenbank gespeichert werden.

Ich wüsste nicht, wie ich aus meinem Programm heraus das Berechtigungssystem von Linux oder auch Windows nutzen sollte um genau diese Dinge abzubilden. Es wird ja auch noch einige andere Rechte außer Lesen, Schreiben, Ausführen geben die pro Verzeichnis/Dokument hinterlegt werden können.

Aber wie gesagt. Ich habe jetzt etwas im Kopf von dem ich ziemlich überzeugt bin, dass das klappen müsste. Wenn es eine bessere Idee (und eine Anleitung dazu ) gibt, dann bin ich auch dafür offen.

Aktuell würde mich aber interessieren, wie ich meine Klasse sinnvoll gestalten kann um das alles so effizient wie möglich abzubilden. Die Berchnung der einzelnen Rechte habe ich ja bereits in einem anderen Post dargestellt. Das müsste so eigentlich funktionieren. Es könnte höchstens sein, dass man das nochmal effizienter gestalten kann und man hierfür nicht "so viele" xor, or und and Operationen bräuchte.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:41 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz