Anwendungsrechte für Benutzergruppen

16/12/2009 - 07:40 von Michael Kolowicz | Report spam
Hallo,

wir sind im Moment in der Prototyping-Phase unseres Projekts. Eine eigene
Benutzerverwaltung (Benutzergruppen - Benutzer) ist schon eingebaut.
Anfangs waren wir der Meinung es reicht, wenn man in der Lage ist
bestimmte Steuerelemente für Benutzergruppen auszubelende/deaktivieren.
Aber in der Designphase merkten wir, dass es nicht alles abdeckt, was
gefordert ist.

Was wir brauchen ist, das wir Aktionen für unsere Benutzergruppen
berechtigen müssen. Ich werde das mal an einem Beispiel erklàren:

Die Anwendung soll folgende Aktionen kennen:
-Adresse anlegen
-Adresse àndern
-Adresse löschen
-Adresse drucken

Nun gibt es eine Gruppe KontakteAdmins. Die darf natürlich alles. dann
soll es aber auch eine Gruppe KontakteAzubi geben. Der darf nur folgendes
machen:
-Adresse anlegen
-Adresse àndern

(Gut, das Beispiel könnte man noch mit dem deaktivieren einer
schaltflàche machen - aber es soll ja nur ein Beispiel sein)

Gibt es eine OpenSource-Anwendung (am besten in VB.NET) die dies macht?
Oder wo finde ich entsprechende Literatur zu dem Thema?

Vielen Dank im Vorraus
Michael
 

Lesen sie die antworten

#1 Peter Götz
16/12/2009 - 09:42 | Warnen spam
Hallo Michael,

wir sind im Moment in der Prototyping-Phase unseres
Projekts. Eine eigene Benutzerverwaltung
(Benutzergruppen - Benutzer) ist schon eingebaut.
Anfangs waren wir der Meinung es reicht, wenn man
in der Lage ist bestimmte Steuerelemente für
Benutzergruppen auszubelende/deaktivieren.
Aber in der Designphase merkten wir, dass es
nicht alles abdeckt, was gefordert ist.

Was wir brauchen ist, das wir Aktionen für unsere
Benutzergruppen berechtigen müssen. Ich werde
das mal an einem Beispiel erklàren:

Die Anwendung soll folgende Aktionen kennen:
-Adresse anlegen
-Adresse àndern
-Adresse löschen
-Adresse drucken



Dabei stelle ich mir eine Klasse vor, welche die
Methoden

Adresse anlegen
Adresse àndern
Adresse löschen
Adresse drucken

mit der Möglichkeit bestimmte Parameter, u.a. eben auch
Berechtigungsschlüssel (definiert in einer Auflsitung/Enum)

Private RightsEnum
None = 0
NewAdr = 1
EditAdr = 2
DeleteAdr = 4
PrintAdr = 8
AllRights = NewAdr or EditAdr odr DeleteAdr or PrintAdr
End Enum

zu übernehmen.


Nun gibt es eine Gruppe KontakteAdmins. Die darf
natürlich alles.



Die darf dann also

Dim Rights as RightsEnum

Rights = NewAdr Or EditAdr Or DeleteAdr Or PrintAdr
(1 or 2 or 4 or 8)

oder eben gleich

Rights = AllRights

Das Prüfen der erteilten Berechtigungen in der
Methode "Adresse anlegen" sieht dann z.B. so aus:

if Rights And RightsEnum.NewAdr = RightsEnum.NewAdr then
' Methode ausführen
else
' Ausführung verweigern
End if

in der Methode "Adresse àndern" wàre das dann

if Rights And RightsEnum.EditAdr = RightsEnum.EditAdr then
' Methode ausführen
else
' Ausführung verweigern
end if

usw., usw.

Die Rückmeldung Methode ausgeführt oder Methode
verweigert kann als Rückgabewert einer Function
oder als ByVal Parameter einer Sub erfolgen.


dann soll es aber auch eine Gruppe KontakteAzubi geben.
Der darf nur folgendes machen:
-Adresse anlegen
-Adresse àndern



Also nur

Rights = RightsEnum.NewAdr Or RightsEnum.EditAdr

(Gut, das Beispiel könnte man noch mit dem deaktivieren einer
schaltflàche machen - aber es soll ja nur ein Beispiel sein)



Auch hier kann eine Steuerung mit o.g. Werten aus einer Rechte-Enum
erfolgen:

Private Sub AnySub (Rights as RighsEnum)
' Button nur freigeben wenn die Rechte
' NewAdr und EditAdr gegeben sind.

Dim RightsFilter as RightsEnum = _
RightsEnum.NewAdr Or RightsEnum.EditAdr

Button1.Enabled = ((Rights and RightsFilter) = RightsFilter)
End Sub


Gibt es eine OpenSource-Anwendung (am besten in VB.NET)
die dies macht?
Oder wo finde ich entsprechende Literatur zu dem Thema?



Ich sehe nicht so recht, wo das eigentlich Problem liegt.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen