JavaFX Benutzerrechte

Sam96

Mitglied
Hallo liebe Leute,

ich bin noch recht unerfahren in Java/JavaFX, habe allerdings meine erste Anwendung schon geschrieben in Verbindung mit SQLite. Ich bekomm bereits eine Menge hin, allerdings scheitert es an ein paar Stellen. Nun muss ich die nächste Offline-Anwendung schreiben, bei der Benutzer verschiedene Rechte haben.
  • Einmal ein Benutzer und einmal ein "Schreiner". Schreiner sollen in der Lage sein, ihre eigenen Werke in die Datenbank zu schreiben, so das sie von anderen gesehen, kommentiert, bewertet oder bestellt werden können.
  • Er darf aber nur seine eigenen Werke einstellen, bearbeiten oder löschen.
  • Alle Entitäten und Relationen, die ihn nicht betreffen, darf er aber einfügen bearbeiten oder löschen.

Meine Frage ist nun: Über was genau muss ich mich informieren, wenn ich diese Rechte vergeben will. Ich hab noch gar keine Ahnung wie die Benutzerrechte funktionieren oder wonach genau ich für dieses Beispiel schauen muss. Ist das kompliziert, ist das eher schwer? Habe schon nach Benutzerrechten gesucht hier im Forum, allerdings hab ich da keine wirklichen. Hoffe ihr könnt mir einen Denkanstoß geben.

Vielen lieben Dank schon mal,

Samantha
 

Joose

Top Contributor
Dafür gibt es auch nichts direkt vorgefertigtes. Da bei jedem das Rechtesystem etwas anderes ausschaut usw.
Es hat auch nicht wirklich damit zu tun ob man JavaFX nutzt oder Swing.

Zum einen kann man sowas einfach mit Rollen realisieren. Hier braucht es nichts weiter als das dem User die entsprechende Rolle (kann zum Beispiel einfach nur ein String sein) zugeordnet ist.
Wenn der User nun die Rolle "Schreiner" hat darf er das uns das machen, aber das andere nicht. (ich würde mit diesem hier anfangen, da es nicht viel braucht und nicht zu kompliziert ist)

Etwas weitreichender wäre zusätzlich zu den Rollen noch einzelne Berechtigungen. Hier überlegst du dir einzelne Berechtigungen wie "darf X löschen", "darf X bearbeiten", "darf User bearbeiten", ....
Nun kannst du zu einer Rolle einzelne Berechtigungen hinzufügen und dem User wird wieder eine Rolle zugewiesen. Jetzt hat der User alle Berechtigungen seiner Rolle (man könnte es noch erweitern und dem User abseits der Rolle noch zusätzliche Berechtigungen geben).

In deiner Anwendung passiert dann nichts anderes als dass an den entsprechenden Stellen das User Objekt abgefragt wird und kontrolliert wird ob die Berechtigung XYZ vorhanden ist. Sind keine Berechtigungen vorhanden kannst du bestimmte Elemente nicht anzeigen lassen oder Buttons disablen so das sie nicht betätigt werden können.

Aber Achtung: Sobald deine Anwendung ein Rechtesystem bekommen soll, ist es kritisch die ganze Logik und Berechtigungsprüfungen Clientseitig zu haben (da dort natürlich manipuliert werden könnte). Hier wäre eine Client-Server Architektur die bessere Wahl. Der Client dient nur noch als Anzeige und Eingabe, der Server führt die Arbeit durch und prüft die Berechtigungen serverseitig.
Sollte es sich bei dir nur um eine Testapplikation oder eine kleine Firmenanwendung (mit nicht kritischen Daten) handeln, so kann man auch auf diese Client-Server Architektur verzichten (zuviel aufwand für wenig nutzen)
 

Sam96

Mitglied
Hallo und vielen Dank für deine ausführliche Erklärung. Nun hab ich schon einmal ersten Startpunkt zum informieren und nachlesen. Die ersten Suchen führen mich zu SQL Rechten. Ist das so korrekt? Funktioniert das auch mit SQLite? Das müssen wir in der Uni für die Übung benutzen. Oder hab ich es direkt schon falsch verstanden was du mir erklären wolltest?

Lieben Gruß,

Sam
 

Joose

Top Contributor
Mit SQL Rechten haben die Rechte deiner Anwendung weniger zu tun. Die SQL Rechte definieren nur was ein Datenbankuser machen darf (welche Tabellen darf er anschauen, bearbeiten, löschen usw).

Die Berechtigungen (deiner Anwendung) musst du natürlich wo speichern usw, ob du das nun in einem File hinterlegst oder einer Datenbank wäre dabei egal.
 

Sam96

Mitglied
Das soll alles mit Sqlite laufen. Deswegen frage ich ja wegen den SQL Rechten. Meine gelesen zu haben, dass dies bei SQLite nicht so funktionieren. Wichtig ist nur, dass Schreiner nur ihre Werke einstellen löschen und bearbeiten können. Alles andere sollen sie bearbeiten können
 

Dukel

Top Contributor
Du kannst die Rechte in der DB selbst implementieren.
Viele Applikationen nutzen z.B. keine DB Rechte sondern speichern die Rechte in der DB und werten diese aus.
 

Joose

Top Contributor
Die Rechte eines Datenbankusers und die Rechte eines Users deiner Anwendung haben miteinander nichts zu tun :)
Wie schon erwähnt reicht es die Datenbank zu verwenden um deine User und Berechtigungen zu speichern. Sprich es gibt eine Tabelle mit den Usern, eine Tabelle mit den Berechtigungen und eine Tabelle welche abbildet welcher User welche Berechtigung hat.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
J Integration pay Pale in eine JavaFx Desktop Application Allgemeine Java-Themen 1
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
berserkerdq2 Jemand einen Tipp wie man ein Javafx-Hintergrund "dynamisch" macht Allgemeine Java-Themen 3
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
berserkerdq2 Frage zu IntelliJ und JavaFX Allgemeine Java-Themen 1
thor_norsk Eclipse - Fehlermeldung - JavaFX Allgemeine Java-Themen 24
volcanos JavaFX-Programme nur in NetBeans selber ausführbar ! command_line: NoClassDefFoundError Allgemeine Java-Themen 39
G JavaFX Maven Projekt als .exe Datei exportieren Allgemeine Java-Themen 10
C Java11+ JavaFX HtmlEditor ContextMenu neue MenuItems hinzufügen Allgemeine Java-Themen 5
G JavaFX var Ausdruck Allgemeine Java-Themen 1
G javafx "class path" exception Allgemeine Java-Themen 5
K Anzeigemöglichkeit von Bildern in JavaFX mit Hilfe von MongoDB GridFS Allgemeine Java-Themen 0
M JavaFX Allgemeine Java-Themen 13
P JavaFX Anwendung beendet sich selbst nur als Jar Allgemeine Java-Themen 40
L JavaFX JavaFX Chart in Apache Poi Excel Datei Allgemeine Java-Themen 2
A Zusammenspiel javafx Fenster Allgemeine Java-Themen 1
D JavaFX mit JDK 12 Allgemeine Java-Themen 31
H Internationalisierung I18n in JavaFx? Allgemeine Java-Themen 7
Tarrew JavaFX: K-NN Decision Boundary plotten (Mesh-Grid, Polylines, ... ?? ) Allgemeine Java-Themen 1
D Compiler-Fehler JavaFX - Bekomme Fehlermeldungen nicht weg Allgemeine Java-Themen 31
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M List -Tableview-Javafx-Vererbung Allgemeine Java-Themen 35
RalleYTN 2D-Grafik Bild ohne AWT, Swing und JavaFX rotieren Allgemeine Java-Themen 12
U JAVAFX Simulation Allgemeine Java-Themen 1
M javafx ComboBox- Nullpointer Exception Allgemeine Java-Themen 6
L Eclipse JavaFX Klasse starten programmatisch Allgemeine Java-Themen 1
J javaFX mySQL Allgemeine Java-Themen 3
P JavaFX HTMLEditor Menü Allgemeine Java-Themen 0
L JavaFX JavafX externe FXML laden? Allgemeine Java-Themen 4
S JavaSE, JavaEE oder JavaFX? Allgemeine Java-Themen 5
N WaitForScript- methode in javafx Allgemeine Java-Themen 1
I Javafx Open/Read und Tree Funktion Allgemeine Java-Themen 14
M Regex für Zahleneingabe in JavaFX Textfield Allgemeine Java-Themen 18
B JavaFX fxml, die selbe Instanz der Klasse Allgemeine Java-Themen 4
M JavaFX-Gegenstück zu Swing-Button-DoClick-Methode Allgemeine Java-Themen 5
A Benutzerrechte im Programm vergeben Allgemeine Java-Themen 6
D Benutzerrechte herausfinden Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben