- {validation.targetUsername
+ {userExists === true
? `Bitte melden Sie sich als "${validation.targetUsername}" an, um die Einladung anzunehmen.`
- : 'Bitte melden Sie sich an, um die Einladung anzunehmen.'}
+ : userExists === false
+ ? 'Bitte erstellen Sie ein Konto, um die Einladung anzunehmen.'
+ : 'Bitte melden Sie sich an oder erstellen Sie ein Konto, um die Einladung anzunehmen.'}
- Sie können sich mit Ihrem bestehenden Konto anmelden oder ein neues erstellen.
- Die Einladung wird automatisch nach der Anmeldung akzeptiert.
+ {userExists === true
+ ? 'Melden Sie sich mit Ihrem bestehenden Konto an. Die Einladung wird automatisch nach der Anmeldung akzeptiert.'
+ : userExists === false
+ ? 'Erstellen Sie ein neues Konto. Die Einladung wird automatisch nach der Registrierung akzeptiert.'
+ : 'Die Einladung wird automatisch nach der Anmeldung akzeptiert.'}
diff --git a/src/pages/admin/AdminMandateRolePermissionsPage.tsx b/src/pages/admin/AdminMandateRolePermissionsPage.tsx
index 619e39c..b54ebc1 100644
--- a/src/pages/admin/AdminMandateRolePermissionsPage.tsx
+++ b/src/pages/admin/AdminMandateRolePermissionsPage.tsx
@@ -69,7 +69,7 @@ export const AdminMandateRolePermissionsPage: React.FC = () => {
// State
const [mandates, setMandates] = useState([]);
const [selectedMandateId, setSelectedMandateId] = useState('');
- const [scopeFilter, setScopeFilter] = useState<'all' | 'mandate' | 'global'>('all');
+ const [scopeFilter, setScopeFilter] = useState<'all' | 'mandate' | 'global'>('mandate');
const [expandedRoleId, setExpandedRoleId] = useState(null);
// Cleanup state
@@ -117,19 +117,24 @@ export const AdminMandateRolePermissionsPage: React.FC = () => {
setExpandedRoleId(prev => prev === roleId ? null : roleId);
};
+ // Check if a role is a template (not bound to a specific mandate)
+ const _isTemplateRole = (role: Role): boolean => {
+ return !!role.isSystemRole || !role.mandateId;
+ };
+
// Get scope badge
const getScopeBadge = (role: Role) => {
if (role.isSystemRole) {
return (
- System
+ System-Template
);
}
if (!role.mandateId) {
return (
- Global
+ Template
);
}
@@ -185,9 +190,9 @@ export const AdminMandateRolePermissionsPage: React.FC = () => {
// Filter options for scope
const scopeOptions = useMemo(() => [
- { value: 'all', label: 'Alle Rollen' },
- { value: 'mandate', label: 'Nur Mandanten-Rollen' },
- { value: 'global', label: 'Nur globale Rollen' },
+ { value: 'mandate', label: 'Mandanten-Rollen' },
+ { value: 'all', label: 'Alle (inkl. Templates)' },
+ { value: 'global', label: 'Nur Templates' },
], []);
if (error) {
@@ -274,7 +279,8 @@ export const AdminMandateRolePermissionsPage: React.FC = () => {
Klicken Sie auf eine Rolle, um deren Berechtigungen (AccessRules) zu bearbeiten.
- Alle Rollen-Berechtigungen sind bearbeitbar (System-Rollen-Namen sind geschützt).
+ Template-Rollen sind schreibgeschützt - Änderungen an Templates wirken sich nur auf neu erstellte Mandanten aus.
+ Mandanten-Rollen sind direkt bearbeitbar.
{scopeFilter === 'mandate'
- ? 'Es gibt noch keine mandantenspezifischen Rollen.'
+ ? 'Es gibt noch keine Mandanten-Rollen. System-Rollen werden bei der Mandant-Erstellung automatisch kopiert.'
: scopeFilter === 'global'
- ? 'Es gibt noch keine globalen Rollen.'
+ ? 'Es gibt noch keine Rollen-Templates.'
: 'Es gibt noch keine Rollen für diesen Mandanten.'}
+
+
+ Dies ist eine Template-Rolle. Änderungen an den Berechtigungen wirken sich nur auf neu erstellte Mandanten aus.
+ Bestehende Mandanten-Instanzen werden nicht aktualisiert.
+
+
- System-Rollen (admin, user, viewer) können nicht bearbeitet oder gelöscht werden.
- Globale Rollen gelten für alle Mandanten.
- Mandanten-Rollen gelten nur für den ausgewählten Mandanten.
+ System-Templates (admin, user, viewer) werden bei der Mandant-Erstellung automatisch als Mandanten-Instanz-Rollen kopiert.
+ Templates selbst können nicht gelöscht werden.
+ Mandanten-Rollen gelten nur für den ausgewählten Mandanten und sind den Benutzern zuweisbar.
{scopeFilter === 'mandate'
- ? 'Es gibt noch keine mandantenspezifischen Rollen.'
+ ? 'Es gibt noch keine Mandanten-Rollen. System-Rollen werden bei der Mandant-Erstellung automatisch kopiert.'
: scopeFilter === 'global'
- ? 'Es gibt noch keine globalen Rollen.'
+ ? 'Es gibt noch keine Rollen-Templates.'
: 'Es gibt noch keine Rollen für diesen Mandanten.'}