ImisDevelopers / 1_011_a_infektionsfall_uebermittellung

This repository is deprecated and has not been maintained for months!
https://imis-prototyp.de/
MIT License
22 stars 6 forks source link

Zentrale Rechte Verwaltung von Endpoints für User #241

Open jonathangpk opened 4 years ago

jonathangpk commented 4 years ago

Ziel

Aktuelle Lage

Server

Client

Problem

Lösung

Mein grober Ansatz

Man kann hier sicherlich einiges auch anders Stukturieren. Wichtig ist nur das das AccessRights object serialisierbar ist und and den client gesendet werden kann.

Es gibt eine abstrakte Permissions Klasse, hier werden die default werte zu gewiesen. In der regel immer false außer zum Beispiel für canAccessUsers(). Die User Role ist eine member variable und kann fuer die permission entscheidung genutzt werden.

@Getter
public abstract class AccessRights {
    private UserRole userRole;

    private boolean canViewPatients = false;
    private boolean canRegisterTest = false;
    private boolean canSubmitTestResult = false;

    boolean canAccessUsers() {
        return userRole == UserRole.USER_ROLE_ADMIN;
    }
}

Jede Institution erstellt dann seine [Institution]AccessRights klasse, erbt von AccessRights und überschreibt die nötigen Rechte.

@Getter
public class DoctorAccessRights extends AccessRights {
    private boolean canViewPatients = true;
    private boolean canRegisterTest = true;
}

Vorteile

Drawbacks diese Ansatzes

Other Thoughts

Freu mich über euer Feedback :)

jogueber commented 4 years ago

Aktuelle Rollen:

endpoints: -doctor