AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerrechte?

Ein Thema von OrNEC · begonnen am 23. Dez 2014 · letzter Beitrag vom 24. Dez 2014
Antwort Antwort
Seite 1 von 2  1 2      
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#1

Benutzerrechte?

  Alt 23. Dez 2014, 11:33
Delphi-Version: 7
Wie werden eigentlich mit Delphi Benutzerrechte bestimmt? Meine Anwendung soll Benutzerverwaltung bekommen mit verschiedenen Benutzerrechten. Gibt's vielleicht irgendwo ein Manuell dazu?

Thx
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Benutzerrechte?

  Alt 23. Dez 2014, 11:39
Eigentlich genauso wie mit jeder anderen Programmiersprache auch
Am Einfachsten durch entsprechendes Ausblenden von Funktionen/Menüpunkte beim Start der Anwendung.
Markus Kinzler
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#3

AW: Benutzerrechte?

  Alt 23. Dez 2014, 13:42
Wie werden eigentlich mit Delphi Benutzerrechte bestimmt? Meine Anwendung soll Benutzerverwaltung bekommen mit verschiedenen Benutzerrechten. Gibt's vielleicht irgendwo ein Manuell dazu?
Viele Wege führen nach Rom. Letztlich mußt du dir selbst dein System ausdenken und an deine Anforderungen anpassen. Eines meiner Systeme sieht so aus:

Beim Start der Anwendung wird ein Anmeldeformular geladen, in das man Benutzername und Passwort eingibt, die als Hashwert in der zugehörigen Datenbank gespeichert sind. In der Benutzertabelle der Datenbank steht ein Verweis auf die Rechte-Tabelle:
0 = Administrator, der darf alles.
1 = Chef, der darf fast alles.
2 = Vorgesetzter, der darf ein bissel weniger als der Chef.
3 = Mitarbeiter, der darf nur das Nötigste.
4 = Besucher, der hat nur Leserechte und darf nix schreiben.

Fängt nun ein neuer Mitarbeiter an, geht man zum vorgesetzten Abteilungsleiter, der darf neue Benutzer anlegen. Mitarbeiter dürfen das nicht. Zum Anlegen eines neuen Benutzers verwende ich dasselbe Formular wie bei der Anmeldung, nur daß zwei weitere Komponenten beim Anlegen bzw. Ändern sichtbar werden: das zweite Passwort-Edit (Passwort wiederholen) und die Combo mit den verfügbaren Rechten.

Muß ein Benutzer geändert oder gelöscht werden, geht man zum Chef, denn nur der und der Admin dürfen das. Der Admin darf zusätzlich noch ein paar mehr Sachen, die die fachliche Kompetenz des Chefs übersteigen würden.

Wie du das nun genau umsetzt, bleibt natürlich dir überlassen.
  Mit Zitat antworten Zitat
OrNEC

Registriert seit: 6. Nov 2009
493 Beiträge
 
FreePascal / Lazarus
 
#4

AW: Benutzerrechte?

  Alt 23. Dez 2014, 14:39
Wie du das nun genau umsetzt, bleibt natürlich dir überlassen.
Und wie hast Du das umgesetzt? Damit ich wenigsten eine Idee habe wie es gehen könnte.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#5

AW: Benutzerrechte?

  Alt 23. Dez 2014, 17:03
Was genau verstehst du denn an obiger Skizze nicht? Oder anders gefragt: Was erwartest du jetzt? Quellcode?
  Mit Zitat antworten Zitat
vagtler

Registriert seit: 9. Jul 2010
Ort: Köln
667 Beiträge
 
Delphi 2010 Professional
 
#6

AW: Benutzerrechte?

  Alt 23. Dez 2014, 18:08
Such mal nach Bei Google suchenRBAC (Role Based Access Control). Im Gegensatz zu anderen gängigen Programmiersprachen/Frameworks (siehe z.B. Bei Google suchenC sharp RBAC oder Bei Google suchenRBAC node.js) sind mir für Delphi keine Beispiel-Implementierungen bekannt.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Benutzerrechte?

  Alt 23. Dez 2014, 18:15
Ich habe es bei mir ähnlich wie Perlsau: Es gibt Benutzer und die gehören einer Gruppe an. Eine Gruppe hat einen numerischen Wert (zwischen 0 und 100) der ausdrückt, wieviel sie dürfen. Manche Dinge gehen ab einem Rechtewert von 30, andere ab 70.

Für komplexere Dinge hat mir schlicht die Zeit gefehlt. Der Ansatz hat auf jeden Fall den Schwachpunkt den ein schlauer Mann hier bestens auf den Punkt gebracht hat:
Ich würde sagen, erstmal ok, aber ich stelle mir vor, dass in der Praxis kein User in einer unternehmesweiten "Fachlichkeit" überall einen bestimmten/gleichen Level hat/ erreicht.
Du bekommst also irgendwann Probleme, weil der Müller (der König aus dem Lager), die Feinheiten in der Produktion justiert...
Das entsprechende Thema aus dem das Zitat stammt ist vielleicht auch noch eine Lektüre wert.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#8

AW: Benutzerrechte?

  Alt 23. Dez 2014, 18:45
Man könnte z.B. ein Byte mit den Benutzerrechten mitschleppen und mit entsprechender Maskierung das Rechtelevel feststellen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Aviator

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

AW: Benutzerrechte?

  Alt 23. Dez 2014, 19:00
Ich speichere mir die Benutzerrechte eines Benutzers als Integer-Wert in der Datenbank. Der Wert wird dann beim Anmelden wieder in seine binären Bestandteile zerlegt. Die Zerlegung erfolgt mit Bitverschiebung. Wenn das niederwertigste Bit eine 1 ist, dann wird das entsprechende Recht hinzugefügt, ist es 0 dann eben nicht. Die möglichen Rechte sind in einem bzw. mehreren Type(s) hinterlegt. Die Rechte, die der Benutzer nach der Anmeldung bekommt, sind in einem Set of Permissions abgelegt.

Bei Bedarf kann ich auch gerne mal ein wenig Quellcode posten, der diese Vorgehensweise deutlich macht. Ob es der beste Weg ist weiß ich nicht, aber er hat sich bei mir auf jeden Fall bewährt. So hab ich z.B. auch die Möglichkeit, jedem Benutzer individuell alle möglichen Kombinationen von Rechten zu geben.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#10

AW: Benutzerrechte?

  Alt 23. Dez 2014, 21:51
Delphi liefert da glaub ich wenig systematische Ansätze. Am ehesten sind vielleicht die schon erwähnten Actionlists oder auch die Form (als Maske) zu nennen.
Letztlich dreht sich alles um die Funktionen, die Deine Anwendung bereitstellt.
Die Funktionen kannst Du beliebig mit Berechtigungsverfahren kreuzen.
Funktion gegen Benutzergruppe oder -Level
Funktion gegen Skill
usw. usf.
Dabei kann man ein Verfahren wählen wie hier bereits genannt, man kann sich an SQL orientieren (Select, Execute, Insert, Update, Delete) bis hin zu dem Recht, Rechte zu vergeben.
Man kann diese Rechte auf Objekt oder bis hin zu Attributen oder Volumen ausdehnen, anhand einer Mandantendimension aufteilen und man kann auch Sichheits- oder Datenschutzaspekte berücksichtigen (was schon sehr professionell ist)
Man kann in Berechtigungsverwaltung auch Object Lifecycles einbinden, womit das Recht zur Ausführung nicht mehr nur am Benutzerrecht hängt, sondern auch am Zustand des Objekts.

Am Ende muss man noch berücksichtigen, dass all das auch zu verwalten ist (neben dem Coding) und man muss einen Mittelweg zwischen Aufwand und Nutzen finden.

Wir haben mal ein solches System entwickelt und der Kunde hat irgendwann gefragt, ob man nicht die Mandantenebene weglassen kann und eine Rechtedefinition je Benutzer für alle Mandanten gilt. Es war ihm zuviel Aufwand.
Gruß, Jo
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:42 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