Skip to content

Roles & Permissions

Derma Consent has three user roles with granular permissions.

Roles

RoleGermanDescription
ADMINAdministratorPractice owner. Full access to all features including team management, billing, and settings.
ARZTArzt (Physician)Treating doctor. Can manage patients, consent forms, treatment plans, photos, and view analytics.
EMPFANGEmpfang (Reception)Front desk staff. Can create consent forms and view the patient list. Limited access.

Permission Matrix

FeatureADMINARZTEMPFANG
Dashboard
View dashboardYesYesYes
Patients
List patientsYesYesYes
View patient detailsYesYesNo
Create patientYesYesNo
Delete patientYesNoNo
Consent Forms
Create consent formYesYesYes
List consent formsYesYesNo
View consent detailsYesYesNo
Revoke consentYesYesNo
Treatment Plans
Create treatment planYesYesNo
View treatment plansYesYesNo
Update treatment planYesYesNo
Delete treatment planYesYesNo
Photos
Upload photoYesYesNo
View photosYesYesNo
Delete photoYesYesNo
Team Management
View team membersYesNoNo
Invite team memberYesNoNo
Remove team memberYesNoNo
Change member roleYesNoNo
Settings
View/edit settingsYesNoNo
Upload logoYesNoNo
Billing
View subscriptionYesNoNo
Manage subscriptionYesNoNo
Analytics
View analyticsYesYesNo
View revenue analyticsYesNoNo
Audit
View audit logsYesNoNo
Export audit logsYesNoNo

Role Assignment

  • The first user who creates a practice is automatically assigned the ADMIN role.
  • New team members are invited via email with a specific role.
  • Only ADMIN users can change another member's role.
  • A practice must always have at least one ADMIN.

Implementation

Roles are enforced at the backend via:

  1. JwtAuthGuard — validates the JWT token on every request
  2. RolesGuard — checks the @Roles() decorator against the user's role in the JWT payload
  3. @Roles('ADMIN', 'ARZT') — decorator applied to controller methods
typescript
@UseGuards(JwtAuthGuard, RolesGuard)
@Roles('ADMIN')
@Delete(':id')
deletePatient(@Param('id') id: string) { ... }

DSGVO-konforme digitale Einwilligungen