From e29d961be3a52912e9c31bc9d410632669d22bcd Mon Sep 17 00:00:00 2001 From: Dominik Schmidt Date: Wed, 29 Jul 2026 08:40:29 +0200 Subject: [PATCH] refactor: rename Announcement.Write to Announcement.ReadWrite The permission gates reading the full announcement state (including disabled ones) as well as writing it, so name it ReadWrite to match the other management permissions (Accounts.ReadWrite, Settings.ReadWrite, ...) and use the READWRITE operation. --- services/settings/pkg/store/defaults/defaults.go | 4 ++-- services/settings/pkg/store/defaults/permissions.go | 10 +++++----- services/web/pkg/announcement/service.go | 8 ++++---- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/services/settings/pkg/store/defaults/defaults.go b/services/settings/pkg/store/defaults/defaults.go index 6d4899dc6c..c8d144eefd 100644 --- a/services/settings/pkg/store/defaults/defaults.go +++ b/services/settings/pkg/store/defaults/defaults.go @@ -80,7 +80,7 @@ func ServiceAccountBundle() *settingsmsg.Bundle { }, Settings: []*settingsmsg.Setting{ AccountManagementPermission(All), - AnnouncementWritePermission(All), + AnnouncementReadWritePermission(All), ChangeLogoPermission(All), CollaborationPublishNotificationPermission(All), CollaborationManageFontsPermission(All), @@ -118,7 +118,7 @@ func generateBundleAdminRole() *settingsmsg.Bundle { }, Settings: []*settingsmsg.Setting{ AccountManagementPermission(All), - AnnouncementWritePermission(All), + AnnouncementReadWritePermission(All), AutoAcceptSharesPermission(Own), ChangeLogoPermission(All), CollaborationPublishNotificationPermission(All), diff --git a/services/settings/pkg/store/defaults/permissions.go b/services/settings/pkg/store/defaults/permissions.go index 5cd898005f..7d6ee14de6 100644 --- a/services/settings/pkg/store/defaults/permissions.go +++ b/services/settings/pkg/store/defaults/permissions.go @@ -29,19 +29,19 @@ func AccountManagementPermission(c settingsmsg.Permission_Constraint) *settingsm } } -// AnnouncementWritePermission is the permission to manage the web announcement banner -func AnnouncementWritePermission(c settingsmsg.Permission_Constraint) *settingsmsg.Setting { +// AnnouncementReadWritePermission is the permission to read and manage the web announcement banner +func AnnouncementReadWritePermission(c settingsmsg.Permission_Constraint) *settingsmsg.Setting { return &settingsmsg.Setting{ Id: "52b1994b-1bdb-4c8d-a887-1967dbe8cb11", - Name: "Announcement.Write", + Name: "Announcement.ReadWrite", DisplayName: "Manage announcement", - Description: "This permission permits to manage the announcement banner shown to all users.", + Description: "This permission permits to read and manage the announcement banner shown to all users.", Resource: &settingsmsg.Resource{ Type: settingsmsg.Resource_TYPE_SYSTEM, }, Value: &settingsmsg.Setting_PermissionValue{ PermissionValue: &settingsmsg.Permission{ - Operation: settingsmsg.Permission_OPERATION_WRITE, + Operation: settingsmsg.Permission_OPERATION_READWRITE, Constraint: c, }, }, diff --git a/services/web/pkg/announcement/service.go b/services/web/pkg/announcement/service.go index b49200590f..39ef7c9443 100644 --- a/services/web/pkg/announcement/service.go +++ b/services/web/pkg/announcement/service.go @@ -13,8 +13,8 @@ import ( "github.com/opencloud-eu/reva/v2/pkg/rgrpc/todo/pool" ) -// _writePermission is the settings permission required to manage the announcement. -const _writePermission = "Announcement.Write" +// _permission is the settings permission required to read and manage the announcement. +const _permission = "Announcement.ReadWrite" // _maxBodySize caps the announcement request body. The info text is Markdown and ends up in // the public config.json that every client loads on bootstrap, so it must stay small. @@ -83,7 +83,7 @@ func (s Service) Get(w http.ResponseWriter, r *http.Request) { return } rsp, err := gatewayClient.CheckPermission(r.Context(), &permissionsapi.CheckPermissionRequest{ - Permission: _writePermission, + Permission: _permission, SubjectRef: &permissionsapi.SubjectReference{ Spec: &permissionsapi.SubjectReference_UserId{ UserId: user.GetId(), @@ -125,7 +125,7 @@ func (s Service) Set(w http.ResponseWriter, r *http.Request) { return } rsp, err := gatewayClient.CheckPermission(r.Context(), &permissionsapi.CheckPermissionRequest{ - Permission: _writePermission, + Permission: _permission, SubjectRef: &permissionsapi.SubjectReference{ Spec: &permissionsapi.SubjectReference_UserId{ UserId: user.GetId(),