AGB  ·  Datenschutz  ·  Impressum  







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

DMS - Berechtigungssystem mit vererbbaren Berechtigungen

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

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

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 16: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
795 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 16: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.610 Beiträge
 
Delphi 10.3 Rio
 
#23

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 17: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
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#24

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 17: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
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
Aviator

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

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 18: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
640 Beiträge
 
Delphi 10.1 Berlin Professional
 
#26

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 19: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
Wenn du mit Gott reden willst, dann bete.
Wenn du ihn treffen willst, schreib bei Tempo 220 eine SMS
  Mit Zitat antworten Zitat
frapo

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

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 19: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.610 Beiträge
 
Delphi 10.3 Rio
 
#28

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 1. Sep 2016, 23: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
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#29

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 2. Sep 2016, 05:31
Hmm..

[QUOTE=Aviator;1346509][QUOTE=mm1256;1346483]
ich glaube du hast dich verlesen.

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.
Die Berechtigungen als binärer Zahlenwert...

Ich glaube, da ist der Fehler!

Also ich würde nicht die Berechtigungen 'ausrechnen' sondern über die Datenbank beim Einchecken einer Datei diesem Eintrag über eine Verknüpfungstabelle die 'Gruppen' oder eventuell 'Benutzer' verlinken. Dies können N Verknüpfungen sein.

Wenn nun versucht wird auf ein 'Verzeichnis' in deinem DMS zuzugreifen, dann wird erst anhand dieser Verlinkungen das tatsächliche Recht ermittelt.

Wenn Du dieses 'Recht' direkt 'fest' bei der Datei einträgst ohne die Verknüpfungen, dann kannst Du beim Verändern eines Rechtes nicht wissen, woher die vorherigen Rechte kommen.

Alternativ kannst Du auch stat einer Gruppe oder eines Benutzers in der Verknüpfung auch den Parent in deiner visuellen Baumstruktur angeben und dann hat der Eintrag die gleichen Rechte, wie das übergeordnete Verzeichnis.

Achja, nach diesem Schema funktionieren übrigens auch Dateisysteme, dort ist die Datenabnk z.B. in der NTFS / ext3 Struktur eingebettet.

Geändert von HolgerX ( 2. Sep 2016 um 05:36 Uhr)
  Mit Zitat antworten Zitat
Aviator

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

AW: DMS - Berechtigungssystem mit vererbbaren Berechtigungen

  Alt 2. Sep 2016, 10:09
Die Berechtigungen als binärer Zahlenwert...

Ich glaube, da ist der Fehler!

Also ich würde nicht die Berechtigungen 'ausrechnen' sondern über die Datenbank beim Einchecken einer Datei diesem Eintrag über eine Verknüpfungstabelle die 'Gruppen' oder eventuell 'Benutzer' verlinken. Dies können N Verknüpfungen sein.

Wenn nun versucht wird auf ein 'Verzeichnis' in deinem DMS zuzugreifen, dann wird erst anhand dieser Verlinkungen das tatsächliche Recht ermittelt.
Hallo Holger du Frühaufsteher,

die Verlinkung der Gruppen wie du es nennst wollte ich ja auch in der Datenbank hinterlegen. Nun ist es aber ja so, dass dem Dokument eine oder mehrere Gruppen und ein oder mehrere Benutzer zugeordnet werden können. Diese Gruppen und/oder User können, wie das bei NTFS ja auch der Fall ist, pro Dokument natürlich auch unterschiedliche Rechte haben.

Wenn die Vererbung aktiviert ist, dann erhält das Dokument zwar die übergeordneten Rechte des Verzeichnis, aber ich kann ja trotzdem noch Berechtigungen hinzufügen bzw. sogar verweigern.

Also muss ja doch wiederum pro Dokument die eigentliche Berechtigung für den Benutzer aus Verzeichnis- und Dokumentrechten ermittelt werden. Und das pro Benutzer und aller dem Benutzer und Dokument zugeordneten Gruppen.

Und wenn die Vererbung deaktiviert wird, dann muss ich dem Dokument erst recht alle Informationen geben. Die Verlinkungen können auf das Dokument kopiert werden (wenn dies beim Deaktivieren gewünscht wird). Spezielle Dokumentrechte sind ja dann sowieso schon mit dem Dokument verknüpft.

Ich habe mir natürlich schon sehr viele Gedanken über das Problem gemacht. Aber vielleicht übersehe ich ja was und du kannst mir sagen, wie es einfacher gehen kann. Das Rechtesystem soll ja wirklich ziemlich stark an das NTFS Filesystem mit ACLs angelehnt sein.

Ein Problem das ich sicherlich noch habe ist, wenn ein Administrator im Hintergrund die Berechtigungen der Dokumente bzw. Verzeichnisse ändert. Sei es durch das Hinzufügen von Gruppen oder einfach nur die Erweiterung um bspw. das Recht "Verändern". Diese Rechte müssen dann ja ohne Neustart zur Laufzeit eingelesen werden. An der Stelle könnte ich mir noch etwas wie ein Aktualisieren Button vorstellen, der den ganzen Verzeichnisbaum neu aufbaut und die neuen Rechte einliest. Wie das automatisch im Hintergrund ablaufen könnte weiß ich (noch) nicht. Das selbe Problem bestünde aber auch für bereits in der Dokumentliste angezeigte Dokumente.

Wenn Du dieses 'Recht' direkt 'fest' bei der Datei einträgst ohne die Verknüpfungen, dann kannst Du beim Verändern eines Rechtes nicht wissen, woher die vorherigen Rechte kommen.

Alternativ kannst Du auch stat einer Gruppe oder eines Benutzers in der Verknüpfung auch den Parent in deiner visuellen Baumstruktur angeben und dann hat der Eintrag die gleichen Rechte, wie das übergeordnete Verzeichnis.
Also wie oben beschrieben möchte ich ja ein Flag haben das angibt, ob die Vererbung aktiviert oder deaktiviert ist. Die Idee mit dem Parent hatte ich auch schon. Allerdings dann später beim Erzeugen der Objektinstanz. Somit weiß ich, welches Verzeichnis das übergeordnete ist und kann dann immer eine Ebene nach oben gehen.


Ein anderes Problem ist, dass ich beim Suchen von Dokumenten nur noch eine Liste mit Dokumenten habe die aber nicht mehr in einer Verzeichnisstruktur dargestellt werden. Hier muss ich dazu sagen, dass ich darüber aktuell noch nicht wirklich nachgedacht habe. In der aktuellen Version ist es jedoch so. Somit hätte ich kein Parent Directory mehr um daran die Rechte abzuleiten. Aber da muss ich mir noch etwas überlegen. Bin aber auch für jeden Vorschlag dankbar.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz