AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Benutzerrechte für ein Programm verwenden
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzerrechte für ein Programm verwenden

Ein Thema von Ykcim · begonnen am 26. Aug 2008 · letzter Beitrag vom 26. Aug 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#11

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 13:50
Kannst du denn mit Datenbankabfragen umgehen?
Delphi-Quellcode:
ProgID := 1; //globale Variable, damit du von allen Forms aus darauf zugreifen kannst.

function getSecuLevel(AProgID,AUserID:integer;AMask:string):integer;
begin
  if qry.active then
    qry.close;
  qry.sql.text := 'SELECT Right FROM USERRIGHTS WHERE ProgID=:ProgID AND UserID=:UserID AND Mask=:Mask';
  qry.ParamByName('ProgID').AsInteger := AProgID;
  qry.ParamByName('UserID').AsInteger := AUserID;
  qry.ParamByName('Mask').AsString := AMask;
  qry.Open;
  if qry.RecordCount = 1 then // Sollte 1 sein, wenn die Primärschlüssel richtig sind
    Result := qry.FieldByName('Right').AsInteger;
  qry.Close;
end;
Nun kannst du folgendes machen:
  MyButtonRight := getSecuLeveL(ProgID,1,'Buttons'); Ist nur aus dem Kopf. Die Benutzer werden natürlich in einer separaten Tabelle verwaltet und von dort müsstest du dann auch die ID des Benutzers bekommen.
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 14:00
Mal ein etwas anderer Denkansatz:
- zunächst werden Konstanten für einzelne Rechte vergeben (Lesen = 1, Bearbeiten = 2, Neuanlage = 4, Löschen = 8 etc.)
- dann werden Benutzergruppen (Rollen) definiert
- nun wird festgelegt, welche Rolle welche Rechte auf welche Tabelle bekommen soll
- die Benutzer werden nun einer oder mehreren Rollen zugewiesen
- die effektiven Rechte eines Benutzers ergeben sich dann durch "verodern" der Rollenrechte
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#13

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 14:04
Hi spaxxn,

ich habe mir Delphi weitestgehend selbst beigebracht und auch schon ein größeres Programm mit sehr unterschiedlichen Features in Kombination mit SQL-Abfragen geschrieben. Aber das ist auch schon alles. Mit sql-Anweisungen Daten holen bzw. editieren bekomme ich hin, aber mit der Vergabe von Rechten und ProgrammIDs habe ich halt keine Ahnung. Deshalb bin ich um jeden Tip dankbar.

Ich werde versuchen, Deinen Code nachzuvollziehen.
Vielen Dank dafür

Ykcim
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#14

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 14:10
Wenn du das kapiert hast, dann kannst du das Ganze noch erweitern.

Z.B. um die Punkte die DeddyH angesprochen hat.

Das was ich dir da aufgezeigt habe, ist die minimalste Variante in dieser Richtung.


@DeddyH: Dein Denkansatz ist erweitert nicht anders...
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 14:11
OK, das sah mir so aus, als gingest Du über die VCL-Objekte und ich über die Tabellen, daher "anders"
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Ykcim

Registriert seit: 29. Dez 2006
Ort: NRW
804 Beiträge
 
Delphi 10.4 Sydney
 
#16

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 14:18
Sag mal spaxxn, vergibst Du für jedes Form eine ProgID?
Patrick
  Mit Zitat antworten Zitat
Benutzerbild von spaxxn
spaxxn

Registriert seit: 19. Nov 2004
253 Beiträge
 
Delphi XE2 Enterprise
 
#17

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 14:24
Nein, die ist für jedes Programm als ganzes einmalig.

In der Spalte Mask würde man Rechte für Formulare und Buttons vergeben. Du kannst auch Rechte für Datensätze in der Datenbank vergeben, wenn dir danach ist.
"Hey Süße,
hol mir mal was zu trinken! Du wirst schon wieder hässlich!"

Zitat eines Betrunkenen
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 14:41
Noch eine Idee,

wenn man alle Aktionen (Buttons klicken, Forms öffnen usw.) über das verwaltet, was dafür gedacht ist, nämlich die Actions, dann

braucht man die Benutzerrechte nur der jeweiligen Actions zuzuordnen.

Dadurch könnte sich das Programmieren der Rechteverwaltung ein wenig einfacher gestalten.

[edit: umformuliert/]
Ansgar
  Mit Zitat antworten Zitat
Ackerjan

Registriert seit: 4. Jun 2007
Ort: Potsdam
17 Beiträge
 
Delphi 2009 Enterprise
 
#19

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 16:57
Zitat von spaxxn:
Wenn du das kapiert hast, dann kannst du das Ganze noch erweitern.
Z.B. um die Punkte die DeddyH angesprochen hat.
Und dann wird verraten, warum man für die Rechte (Lesen = 1, Bearbeiten = 2, Neuanlage = 4, Löschen = 8 etc.) gut Zweierpotenzen nehmen kann !.

Will man z.B. sagen:
- für User mit den Rechten 1,4,16 ist die Componente sichtbar/aktiv machen, so kann man hier z.B. im Tag die Summe 21 eintragen und weiß alle Rechte. Wer nicht weiß warum schreibt die Zahl mal als Binärcode auf.

Viel Erfolg.
Jan
Niemals aufgeben, niemals kapitulieren! - galaxy quest
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#20

Re: Benutzerrechte für ein Programm verwenden

  Alt 26. Aug 2008, 17:17
Oder man liest hier nach.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 05:47 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