Hallo,
ich möchte iin meinem Programm verschiedenen Benutzern verschiedene Rechte zuweisen. Die ganze Sache habe ich auch schon gelöst, allerdings so wie ich persönlich finden sehr kompliziert und vermutlich auch nicht nach dem
Standart verfahren.
Momentan speicher ich die verschiedenen Einstellungen(siehe Anhang 1) in einer Firebird
DB als Integervariablen.
Delphi-Quellcode:
function TBenutzerForm.SetRecord(ReadUser : TReadConfig):Boolean;
begin
SetRecord := true;
with ReadUser do
begin
BenutzerName := BenutzerEdit.Text;
Passwort := PasswortEdit.Text;
if VerbindenCheckBox.Checked = true then
Verbinden := 1
else
Verbinden := 0;
if TrennenCheckBox.Checked = true then
Trennen := 1
else
Trennen := 0;
usw. Diesen Record schreibe ich dann in die
DB. Finde ich persönlich auch noch ganz OK. Wäre die Frage ob das die Allgemeinheit auch so sieht.
Weiter geht es aber dann mit dem Programmstart. Dabei muss sind jetzt eigendlich alle Funktionen Enabled = false, da der USer sich erst mal Anmelden soll.
Gibt er seine Daten ein, lade ich die Einstellungen momentan so...
Delphi-Quellcode:
case FPasswort.ShowModal of mrOK:
begin
Anmelden1.Enabled := false;
Abmelden.Enabled := true;
UserRights.BenutzerName := FPasswort.BenutzerED.Text;
DM_PS.ReadUserRights(UserRights);
with UserRights do
begin
if Verbinden = 1 then
BTVerbinden.Enabled := true
else
BTVerbinden.Enabled := false;
case Zentralen of
0:AnlagenSetup1.Enabled := false;
1:begin
AnlagenSetup1.Enabled := true;
Hardware.Hardwareanbindung.RGZentralentyp.Enabled := false;
Hardware.Hardwareanbindung.SpeichernButton.Enabled := false;
Hardware.Hardwareanbindung.UebernehmenButton.Enabled := false;
end;
2:begin
AnlagenSetup1.Enabled := true;
Hardware.Hardwareanbindung.RGZentralentyp.Enabled := false;
Hardware.Hardwareanbindung.SpeichernButton.Enabled := false;
Hardware.Hardwareanbindung.UebernehmenButton.Enabled := false;
end;
3:begin
AnlagenSetup1.Enabled := true;
Hardware.Hardwareanbindung.RGZentralentyp.Enabled := true;
Hardware.Hardwareanbindung.SpeichernButton.Enabled := true;
Hardware.Hardwareanbindung.UebernehmenButton.Enabled := true;
end;
end;
usw. Hierbei setzte ich ja jetzt viele Komponenten auf berechtigt oder nicht. Gewisse Personen sollen Lesen können, andere wiederum nicht. Wieder andere sollen neu´Anlegen können oder überschreiben. Das führt dazu, das ich vielen Komponenten in meinem Programm ja dieses sagen muss.
Kann man sowas nicht irgendwie beim Programmstart in der Komponenete selber vereinen . So in der Art, eine Eigenschaft der Komponente selbst. Soll heißen, Komponente sucht beim Start den integer Wert der im Record steht und setzt auf z.B. Visible = true oder false oder Enabled = true oder false.
Ich hoffe ich konnte jettzt beschreiben was ich suche.
Also danke schon mal und Gruß
Jens