From e57dfc74f543c33dba2cb69a10e561dd3f085b0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 25 Aug 2020 21:21:21 +0200 Subject: [PATCH] Mimic oc10 user enabled as string MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jörn Friedrich Dreyer --- .../unreleased/mimic-user-enabled-string.md | 5 +++++ pkg/service/v0/data/user.go | 2 +- pkg/service/v0/users.go | 20 ++++++++++++++++--- 3 files changed, 23 insertions(+), 4 deletions(-) create mode 100644 changelog/unreleased/mimic-user-enabled-string.md diff --git a/changelog/unreleased/mimic-user-enabled-string.md b/changelog/unreleased/mimic-user-enabled-string.md new file mode 100644 index 000000000..136c57a6d --- /dev/null +++ b/changelog/unreleased/mimic-user-enabled-string.md @@ -0,0 +1,5 @@ +Bugfix: Mimic oc10 user enabled as string in provisioning api + +The oc10 user provisioning API uses a string for the boolean `enabled` flag. 😭 + +https://github.com/owncloud/ocis-ocs/pull/39 diff --git a/pkg/service/v0/data/user.go b/pkg/service/v0/data/user.go index 618135220..015b9a33f 100644 --- a/pkg/service/v0/data/user.go +++ b/pkg/service/v0/data/user.go @@ -8,7 +8,7 @@ type Users struct { // User holds the payload for a GetUser response type User struct { // TODO needs better naming, clarify if we need a userid, a username or both - Enabled bool `json:"enabled" xml:"enabled"` + Enabled string `json:"enabled" xml:"enabled"` UserID string `json:"id" xml:"id"` Username string `json:"username" xml:"username"` DisplayName string `json:"displayname" xml:"displayname"` diff --git a/pkg/service/v0/users.go b/pkg/service/v0/users.go index aef9ae5b7..eb2fd5ce2 100644 --- a/pkg/service/v0/users.go +++ b/pkg/service/v0/users.go @@ -56,6 +56,13 @@ func (o Ocs) GetUser(w http.ResponseWriter, r *http.Request) { } o.logger.Debug().Interface("account", account).Msg("got user") + // mimic the oc10 bool as string for the user enabled property + var enabled string + if account.AccountEnabled { + enabled = "true" + } else { + enabled = "false" + } render.Render(w, r, response.DataRender(&data.User{ UserID: account.Id, // TODO userid vs username! implications for clients if we return the userid here? -> implement graph ASAP? Username: account.PreferredName, @@ -63,8 +70,8 @@ func (o Ocs) GetUser(w http.ResponseWriter, r *http.Request) { Email: account.Mail, UIDNumber: account.UidNumber, GIDNumber: account.GidNumber, - Enabled: account.AccountEnabled, - // FIXME only return quota for users/{userid} endpoint (not /user) + Enabled: enabled, + // FIXME onlyfor users/{userid} endpoint (not /user) // TODO query storage registry for free space? of home storage, maybe... Quota: &data.Quota{ Free: 2840756224000, @@ -160,6 +167,13 @@ func (o Ocs) AddUser(w http.ResponseWriter, r *http.Request) { } o.logger.Debug().Interface("account", account).Msg("added user") + // mimic the oc10 bool as string for the user enabled property + var enabled string + if account.AccountEnabled { + enabled = "true" + } else { + enabled = "false" + } render.Render(w, r, response.DataRender(&data.User{ UserID: account.Id, Username: account.PreferredName, @@ -167,7 +181,7 @@ func (o Ocs) AddUser(w http.ResponseWriter, r *http.Request) { Email: account.Mail, UIDNumber: account.UidNumber, GIDNumber: account.UidNumber, - Enabled: account.AccountEnabled, + Enabled: enabled, })) }