From f9059882cf04138aa04dac8a67d8cd47ce13329c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Fri, 31 Jul 2020 22:46:59 +0200 Subject: [PATCH] environment updates for the username userid split MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .../updates-for-username-userid-split.md | 6 ++++++ pkg/command/storagehome.go | 11 ++++++----- pkg/command/storagehomedata.go | 11 ++++++----- pkg/command/storageoc.go | 11 ++++++----- pkg/command/storageocdata.go | 11 ++++++----- pkg/flagset/storageeos.go | 4 ++-- pkg/flagset/storageeosdata.go | 4 ++-- pkg/flagset/storagehome.go | 14 ++++++++++++-- pkg/flagset/storagehomedata.go | 14 ++++++++++++-- pkg/flagset/storageoc.go | 14 ++++++++++++-- pkg/flagset/storageocdata.go | 14 ++++++++++++-- pkg/flagset/storageroot.go | 4 ++-- 12 files changed, 84 insertions(+), 34 deletions(-) create mode 100644 changelog/unreleased/updates-for-username-userid-split.md diff --git a/changelog/unreleased/updates-for-username-userid-split.md b/changelog/unreleased/updates-for-username-userid-split.md new file mode 100644 index 000000000..027a87cc8 --- /dev/null +++ b/changelog/unreleased/updates-for-username-userid-split.md @@ -0,0 +1,6 @@ +Change: environment updates for the username userid split + +We updated the owncloud storage driver in reva to properly look up users by userid or username using the userprovider instead of taking the path segment as is. This requires the user service address as well as changing the default layout to the userid instead of the username. The latter is not considered a stable and persistent identifier. + +https://github.com/owncloud/ocis-reva/pull/420 +https://github.com/cs3org/reva/pull/1033 \ No newline at end of file diff --git a/pkg/command/storagehome.go b/pkg/command/storagehome.go index 69f534375..756bd9f42 100644 --- a/pkg/command/storagehome.go +++ b/pkg/command/storagehome.go @@ -129,11 +129,12 @@ func StorageHome(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": true, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": true, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storagehomedata.go b/pkg/command/storagehomedata.go index 316f1d6ca..164005148 100644 --- a/pkg/command/storagehomedata.go +++ b/pkg/command/storagehomedata.go @@ -131,11 +131,12 @@ func StorageHomeData(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageoc.go b/pkg/command/storageoc.go index 60b940a40..a7f200c40 100644 --- a/pkg/command/storageoc.go +++ b/pkg/command/storageoc.go @@ -129,11 +129,12 @@ func StorageOC(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/command/storageocdata.go b/pkg/command/storageocdata.go index 78da2e9b5..7064fe296 100644 --- a/pkg/command/storageocdata.go +++ b/pkg/command/storageocdata.go @@ -131,11 +131,12 @@ func StorageOCData(cfg *config.Config) *cli.Command { "root": cfg.Reva.Storages.Local.Root, }, "owncloud": map[string]interface{}{ - "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, - "scan": cfg.Reva.Storages.OwnCloud.Scan, - "redis": cfg.Reva.Storages.OwnCloud.Redis, - "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, - "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "datadirectory": cfg.Reva.Storages.OwnCloud.Datadirectory, + "scan": cfg.Reva.Storages.OwnCloud.Scan, + "redis": cfg.Reva.Storages.OwnCloud.Redis, + "enable_home": cfg.Reva.Storages.OwnCloud.EnableHome, + "user_layout": cfg.Reva.Storages.OwnCloud.Layout, + "userprovidersvc": cfg.Reva.Users.URL, }, "s3": map[string]interface{}{ "region": cfg.Reva.Storages.S3.Region, diff --git a/pkg/flagset/storageeos.go b/pkg/flagset/storageeos.go index e30283254..dd63d7b68 100644 --- a/pkg/flagset/storageeos.go +++ b/pkg/flagset/storageeos.go @@ -324,8 +324,8 @@ func StorageEOSWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, diff --git a/pkg/flagset/storageeosdata.go b/pkg/flagset/storageeosdata.go index 10d651c50..2ea51edeb 100644 --- a/pkg/flagset/storageeosdata.go +++ b/pkg/flagset/storageeosdata.go @@ -302,8 +302,8 @@ func StorageEOSDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, diff --git a/pkg/flagset/storagehome.go b/pkg/flagset/storagehome.go index fcfd59552..a80324b69 100644 --- a/pkg/flagset/storagehome.go +++ b/pkg/flagset/storagehome.go @@ -329,10 +329,20 @@ func StorageHomeWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storagehomedata.go b/pkg/flagset/storagehomedata.go index 8b8393a65..a7f24e8ae 100644 --- a/pkg/flagset/storagehomedata.go +++ b/pkg/flagset/storagehomedata.go @@ -303,8 +303,8 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, @@ -318,5 +318,15 @@ func StorageHomeDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storageoc.go b/pkg/flagset/storageoc.go index 62d58bccb..9f44d50cf 100644 --- a/pkg/flagset/storageoc.go +++ b/pkg/flagset/storageoc.go @@ -327,10 +327,20 @@ func StorageOCWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storageocdata.go b/pkg/flagset/storageocdata.go index bb2a645ad..0db9e3ed9 100644 --- a/pkg/flagset/storageocdata.go +++ b/pkg/flagset/storageocdata.go @@ -305,8 +305,8 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, }, @@ -320,5 +320,15 @@ func StorageOCDataWithConfig(cfg *config.Config) []cli.Flag { EnvVars: []string{"REVA_GATEWAY_URL"}, Destination: &cfg.Reva.Gateway.URL, }, + + // User provider + + &cli.StringFlag{ + Name: "users-url", + Value: "localhost:9144", + Usage: "URL to use for the reva service", + EnvVars: []string{"REVA_USERS_URL"}, + Destination: &cfg.Reva.Users.URL, + }, } } diff --git a/pkg/flagset/storageroot.go b/pkg/flagset/storageroot.go index 31b136d76..134920866 100644 --- a/pkg/flagset/storageroot.go +++ b/pkg/flagset/storageroot.go @@ -311,8 +311,8 @@ func StorageRootWithConfig(cfg *config.Config) []cli.Flag { }, &cli.StringFlag{ Name: "storage-owncloud-layout", - Value: "{{.Username}}", - Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.UsernameLower}} and {{.Provider}} also supports prefixing dirs: "{{.UsernamePrefixCount.2}}/{{.UsernameLower}}" will turn "Einstein" into "Ei/Einstein" `, + Value: "{{.Id.OpaqueId}}", + Usage: `"layout of the users home dir path on disk, in addition to {{.Username}}, {{.Mail}}, {{.Id.OpaqueId}}, {{.Id.Idp}} also supports prefixing dirs: "{{substr 0 1 .Username}}/{{.Username}}" will turn "Einstein" into "Ei/Einstein" `, EnvVars: []string{"REVA_STORAGE_OWNCLOUD_LAYOUT"}, Destination: &cfg.Reva.Storages.OwnCloud.Layout, },