Android App Entwicklung: Verschiedene Benutzerrollen?
Hallo alle zusammen,
ich möchte gerne anfangen mit der Android App Programmierung und möchte gerne ein kleines privates Projekt realisieren.
Es geht darum, dass zuerst ich als "SupderAdmin" Accounts anlegen kann (normale Admins), die widerum selbst Accounts anlegen können (normale User).
Je nachdem, welche Rolle man hat, stehen einem mehr Funktionalitäten zur Verfügung.
Ein Admin kann zum Beispiel einen normalen User anlegen. Der User hat, wenn er die App öffnet, seinen "Kontostand" und seine Einnahmen/Ausgaben vor Augen. Diese Beträge werden vom Admin festgelegt, d.h. der Admin gibt zuerst eine Gesamtsumme an. Wenn der User was eingekauft hat, erstellt der Admin einen Beitrag "Ausgabe" mit Details und Betrag und dieser Betrag wird automatisch dann von der Gesamtsumme abgezogen.
Sozusagen eine Online Banking App, nur dass Einnahmen/Ausgaben manuell eingetragen werden.
- Frage gibt es eine Bibliothek o.Ä. in Java mit der die Benutzerrechte realisiert werden können.
- Möchte ich gerne mit einer Datenbank arbeiten, die dann die Accounts speichert und die dazugehörigen Einnahmen Ausgaben usw. welche kostenlose Datenbank würdet ihr mir dafür empfehlen?
Das Projekt soll mit der Zeit bestimmt erweitert werden, weshalb ich mich nicht auf irgendwas beschränken will, das nur für die oben angezeigten Funktionalitäten erfüllt.
Vielen Dank!
1 Antwort
Erstens: Bei Android ist bereits SQLite als Datenbank dabei. Die kannst Du nutzen. Ich empfehle dafür Android Room (einen ORM-Mapper).
https://developer.android.com/training/data-storage/sqlite
Zweitens: Das hat ja nichts mit allgemeinen Rechten in Android zu tun. Diese "Rechteverwaltung" ist ja eher eine "Rollenverwaltung" innerhalb Deiner App. Für diese bist Du schon alleine verantwortlich. Das bedeutet, Du musst in der DB zum Benutzerdatensatz irgendwie speichern, welche Rolle er einnimmt und dann eben die Funktionalität der App entsprechend des eingeloggten Users anpassen.
Ganz einfach. Du machst eine Klasse "User", die per ORM in der DB gespeichert werden kann. Diese hat ein int-Feld namens "Role". Das hat den Wert 0 für SuperAdmin, 1 für Admin und 2 für "normaler User".
Beim Login holst Du den Benutzer und kannst dann in der App an verschiedenen Stellen anhand des Werts von "Role" entscheiden, ob der User was darf oder nicht.
Fertig.
Vielen Dank, hört sich plausibel an, werde ich dann mal versuchen :)
Hallo, ja genau, ich meinte die Rollenverwaltung. Ich weiß aber nicht wo ich da genau ansetzen soll, zumal ich Grundlagenwissen in Java vorweise (also natürlich auch Objektorientierung Vererbung usw. aber nur Grundlagen).