Einzelnen Beitrag anzeigen

Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

Verschiedene Funktionen verschiedenen Benutzer zuweisen

  Alt 8. Sep 2009, 06:41
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
Miniaturansicht angehängter Grafiken
benutzer_186.gif  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat