From 794f6cd07cc751c0ed92bdc310f202b20775b0e0 Mon Sep 17 00:00:00 2001 From: Michael Barz Date: Fri, 17 Feb 2023 13:45:47 +0100 Subject: [PATCH] add constraints to permissions listing (#5594) --- changelog/unreleased/list-permissions.md | 6 ++++++ services/settings/pkg/service/v0/service.go | 8 +++++++- 2 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 changelog/unreleased/list-permissions.md diff --git a/changelog/unreleased/list-permissions.md b/changelog/unreleased/list-permissions.md new file mode 100644 index 0000000000..791aa3e691 --- /dev/null +++ b/changelog/unreleased/list-permissions.md @@ -0,0 +1,6 @@ +Enhancement: Add endpoint to list permissions + +We added 'https://cloud.ocis.test/api/v0/settings/permissions-list' to retrieve all permissions of the logged in user. + +https://github.com/owncloud/ocis/pull/5594 +https://github.com/owncloud/ocis/pull/5571 diff --git a/services/settings/pkg/service/v0/service.go b/services/settings/pkg/service/v0/service.go index ec2966cf2c..40c6187dd3 100644 --- a/services/settings/pkg/service/v0/service.go +++ b/services/settings/pkg/service/v0/service.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "strings" cs3permissions "github.com/cs3org/go-cs3apis/cs3/permissions/v1beta1" rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1" @@ -499,7 +500,7 @@ func (g Service) ListPermissions(ctx context.Context, req *settingssvc.ListPermi if bundle != nil { for _, setting := range bundle.GetSettings() { - permissionNames[setting.Name] = struct{}{} + permissionNames[formatPermissionName(setting)] = struct{}{} } } } @@ -667,3 +668,8 @@ func (g Service) isCurrentUser(ctx context.Context, accountID string) bool { func (g Service) canManageRoles(ctx context.Context) bool { return g.hasStaticPermission(ctx, RoleManagementPermissionID) } + +func formatPermissionName(setting *settingsmsg.Setting) string { + constraint := strings.TrimPrefix(setting.GetPermissionValue().GetConstraint().String(), "CONSTRAINT_") + return setting.Name + "." + strings.ToLower(constraint) +}