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.
This commit is contained in:
Dominik Schmidt
2026-07-29 08:40:29 +02:00
parent 809d32c4d8
commit e29d961be3
3 changed files with 11 additions and 11 deletions

View File

@@ -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),

View File

@@ -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,
},
},

View File

@@ -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(),