fix(client): Read-only-UI nur bei bestätigter READ-Rolle
Während des Ladens geteilter Logbücher wird Schreibzugriff nicht mehr fälschlich gesperrt; der Zugriffs-Effect setzt bei fehlendem Record kein OWNER mehr. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
+7
-7
@@ -85,13 +85,17 @@ function App() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (activeLogbookRecord?.isShared !== 1) {
|
if (!activeLogbookRecord) {
|
||||||
|
setActiveAccessRole(null)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (activeLogbookRecord.isShared !== 1) {
|
||||||
setActiveAccessRole('OWNER')
|
setActiveAccessRole('OWNER')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const cachedRole = activeLogbookRecord.collaborationRole
|
const cachedRole = activeLogbookRecord.collaborationRole
|
||||||
// Fail-closed for write UI until role is known: do not assume WRITE
|
|
||||||
setActiveAccessRole(
|
setActiveAccessRole(
|
||||||
cachedRole ? parseCollaborationRole(cachedRole, `logbook ${activeLogbookId}`) : null
|
cachedRole ? parseCollaborationRole(cachedRole, `logbook ${activeLogbookId}`) : null
|
||||||
)
|
)
|
||||||
@@ -418,12 +422,8 @@ function App() {
|
|||||||
|
|
||||||
const pwaInstallBanner = <PwaInstallPrompt variant="banner" />
|
const pwaInstallBanner = <PwaInstallPrompt variant="banner" />
|
||||||
|
|
||||||
const sharedLogbook =
|
|
||||||
activeLogbookRecord === undefined ? null : activeLogbookRecord.isShared === 1
|
|
||||||
const logbookReadOnly =
|
const logbookReadOnly =
|
||||||
activeLogbookId != null &&
|
activeLogbookRecord?.isShared === 1 && activeAccessRole === 'READ'
|
||||||
(sharedLogbook === null || sharedLogbook) &&
|
|
||||||
activeAccessRole !== 'WRITE'
|
|
||||||
|
|
||||||
if (!activeLogbookId) {
|
if (!activeLogbookId) {
|
||||||
return (
|
return (
|
||||||
|
|||||||
Reference in New Issue
Block a user