From 157669ebdd43704f81c45ee32b927f1172c39df9 Mon Sep 17 00:00:00 2001 From: Benedikt Kulmann Date: Thu, 20 Aug 2020 12:04:19 +0200 Subject: [PATCH] Define default permissions on settings for default roles --- pkg/service/v0/service.go | 9 ++ pkg/service/v0/settings.go | 170 +++++++++++++++++++++++++++++++++++++ 2 files changed, 179 insertions(+) diff --git a/pkg/service/v0/service.go b/pkg/service/v0/service.go index 71fa434f5..93d1f13e1 100644 --- a/pkg/service/v0/service.go +++ b/pkg/service/v0/service.go @@ -43,6 +43,15 @@ func NewService(cfg *config.Config, logger log.Logger) Service { } logger.Debug().Msgf("Successfully registered settings bundle %v", bundleID) } + permissionRequests := generateDefaultPermissionsRequests() + for i := range permissionRequests { + res, err := service.manager.AddSettingToBundle(permissionRequests[i].BundleId, permissionRequests[i].Setting) + if err != nil { + logger.Err(err).Str("bundle", permissionRequests[i].BundleId).Str("setting", permissionRequests[i].Setting.Id).Msg("Error adding setting to bundle") + } else { + logger.Info().Str("bundle", permissionRequests[i].BundleId).Str("setting", res.Id).Msg("Successfully added setting to bundle") + } + } return service } diff --git a/pkg/service/v0/settings.go b/pkg/service/v0/settings.go index dad4093e1..e35876d9c 100644 --- a/pkg/service/v0/settings.go +++ b/pkg/service/v0/settings.go @@ -36,6 +36,176 @@ func generateBundleAdminRole() *settings.Bundle { } } +func generateDefaultPermissionsRequests() []settings.AddSettingToBundleRequest { + return []settings.AddSettingToBundleRequest{ + // ADMIN permissions + { + BundleId: BundleUUIDRoleAdmin, + Setting: &settings.Setting{ + Id: "560c6270-b29a-49de-8a1b-b655aa8b9c84", + Name: "read-settings-all", + DisplayName: "Permission to read values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_READ, + Constraint: settings.Permission_CONSTRAINT_ALL, + }, + }, + }, + }, + { + BundleId: BundleUUIDRoleAdmin, + Setting: &settings.Setting{ + Id: "4503cf00-8598-453d-8bd4-81ba552fd1fc", + Name: "create-settings-all", + DisplayName: "Permission to create values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_CREATE, + Constraint: settings.Permission_CONSTRAINT_ALL, + }, + }, + }, + }, + { + BundleId: BundleUUIDRoleAdmin, + Setting: &settings.Setting{ + Id: "08dda0ab-f087-4d9f-92f2-64f8f6c5a463", + Name: "update-settings-all", + DisplayName: "Permission to update values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_UPDATE, + Constraint: settings.Permission_CONSTRAINT_ALL, + }, + }, + }, + }, + { + BundleId: BundleUUIDRoleAdmin, + Setting: &settings.Setting{ + Id: "b996707a-e122-4490-b3ed-a3d22713692e", + Name: "delete-settings-all", + DisplayName: "Permission to delete values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_DELETE, + Constraint: settings.Permission_CONSTRAINT_ALL, + }, + }, + }, + }, + // USER permissions + { + BundleId: BundleUUIDRoleUser, + Setting: &settings.Setting{ + Id: "fb1036a5-6356-4dd0-b4c6-90dc6f6e86b0", + Name: "read-settings-all", + DisplayName: "Permission to read values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_READ, + Constraint: settings.Permission_CONSTRAINT_OWN, + }, + }, + }, + }, + { + BundleId: BundleUUIDRoleUser, + Setting: &settings.Setting{ + Id: "8eae5d66-cc72-4b15-a7db-33c84dbaa305", + Name: "create-settings-all", + DisplayName: "Permission to create values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_CREATE, + Constraint: settings.Permission_CONSTRAINT_OWN, + }, + }, + }, + }, + { + BundleId: BundleUUIDRoleUser, + Setting: &settings.Setting{ + Id: "d818ba99-1c81-4773-a2f3-89cecdb19b92", + Name: "update-settings-all", + DisplayName: "Permission to update values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_UPDATE, + Constraint: settings.Permission_CONSTRAINT_OWN, + }, + }, + }, + }, + { + BundleId: BundleUUIDRoleUser, + Setting: &settings.Setting{ + Id: "40273d13-9bdc-4234-8b76-56a6572d2619", + Name: "delete-settings-all", + DisplayName: "Permission to create values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_DELETE, + Constraint: settings.Permission_CONSTRAINT_OWN, + }, + }, + }, + }, + // GUEST user + { + BundleId: BundleUUIDRoleGuest, + Setting: &settings.Setting{ + Id: "5fb4ea7f-f351-4dd7-a9af-4550c44e2362", + Name: "read-settings-all", + DisplayName: "Permission to read values for all settings", + Resource: &settings.Resource{ + Type: settings.Resource_TYPE_SETTING, + Id: "all", + }, + Value: &settings.Setting_PermissionValue{ + PermissionValue: &settings.Permission{ + Operation: settings.Permission_OPERATION_READ, + Constraint: settings.Permission_CONSTRAINT_OWN, + }, + }, + }, + }, + } +} + func generateBundleUserRole() *settings.Bundle { return &settings.Bundle{ Id: BundleUUIDRoleUser,