Bump reva to pull in the ocm changes in reva edge.

Fixes #7003
This commit is contained in:
André Duffeck
2023-10-11 11:40:57 +02:00
parent 9e07f2f0d1
commit b6d5cd78f0
210 changed files with 24545 additions and 5573 deletions
+89
View File
@@ -0,0 +1,89 @@
// Copyright 2018-2023 CERN
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// In applying this license, CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
package cfg
import (
"errors"
"reflect"
"github.com/go-playground/locales/en"
ut "github.com/go-playground/universal-translator"
"github.com/go-playground/validator/v10"
en_translations "github.com/go-playground/validator/v10/translations/en"
"github.com/mitchellh/mapstructure"
)
// Setter is the interface a configuration struct may implement
// to set the default options.
type Setter interface {
// ApplyDefaults applies the default options.
ApplyDefaults()
}
var validate = validator.New()
var english = en.New()
var uni = ut.New(english, english)
var trans, _ = uni.GetTranslator("en")
var _ = en_translations.RegisterDefaultTranslations(validate, trans)
func init() {
validate.RegisterTagNameFunc(func(field reflect.StructField) string {
if k := field.Tag.Get("mapstructure"); k != "" {
return k
}
// if not specified, fall back to field name
return field.Name
})
}
// Decode decodes the given raw input interface to the target pointer c.
// It applies the default configuration if the target struct
// implements the Setter interface.
// It also perform a validation to all the fields of the configuration.
func Decode(input map[string]any, c any) error {
config := &mapstructure.DecoderConfig{
Metadata: nil,
Result: c,
}
decoder, err := mapstructure.NewDecoder(config)
if err != nil {
return err
}
if err := decoder.Decode(input); err != nil {
return err
}
if s, ok := c.(Setter); ok {
s.ApplyDefaults()
}
return translateError(validate.Struct(c), trans)
}
func translateError(err error, trans ut.Translator) error {
if err == nil {
return nil
}
errs := err.(validator.ValidationErrors)
translated := make([]error, 0, len(errs))
for _, err := range errs {
translated = append(translated, errors.New(err.Translate(trans)))
}
return errors.Join(translated...)
}
+58
View File
@@ -0,0 +1,58 @@
// Copyright 2018-2023 CERN
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// In applying this license, CERN does not waive the privileges and immunities
// granted to it by virtue of its status as an Intergovernmental Organization
// or submit itself to any jurisdiction.
package list
// Map returns a list constructed by appling a function f
// to all items in the list l.
func Map[T, V any](l []T, f func(T) V) []V {
m := make([]V, 0, len(l))
for _, e := range l {
m = append(m, f(e))
}
return m
}
// Remove removes the element in position i from the list.
// It does not preserve the order of the original slice.
func Remove[T any](l []T, i int) []T {
l[i] = l[len(l)-1]
return l[:len(l)-1]
}
// TakeFirst returns the first elemen, if any, that satisfies
// the predicate p.
func TakeFirst[T any](l []T, p func(T) bool) (T, bool) {
for _, e := range l {
if p(e) {
return e, true
}
}
var z T
return z, false
}
// ToMap returns a map from l where the keys are obtainined applying
// the func k to the elements of l.
func ToMap[K comparable, T any](l []T, k func(T) K) map[K]T {
m := make(map[K]T, len(l))
for _, e := range l {
m[k(e)] = e
}
return m
}
+17
View File
@@ -34,6 +34,7 @@ import (
"strings"
"time"
appprovider "github.com/cs3org/go-cs3apis/cs3/app/provider/v1beta1"
gateway "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
grouppb "github.com/cs3org/go-cs3apis/cs3/identity/group/v1beta1"
userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
@@ -382,6 +383,22 @@ func GetViewMode(viewMode string) gateway.OpenInAppRequest_ViewMode {
}
}
// GetAppViewMode converts a human-readable string to an appprovider view mode for opening a resource in an app.
func GetAppViewMode(viewMode string) appprovider.ViewMode {
switch viewMode {
case "view":
return appprovider.ViewMode_VIEW_MODE_VIEW_ONLY
case "read":
return appprovider.ViewMode_VIEW_MODE_READ_ONLY
case "write":
return appprovider.ViewMode_VIEW_MODE_READ_WRITE
case "preview":
return appprovider.ViewMode_VIEW_MODE_PREVIEW
default:
return appprovider.ViewMode_VIEW_MODE_INVALID
}
}
// AppendPlainToOpaque adds a new key value pair as a plain string on the given opaque and returns it
func AppendPlainToOpaque(o *types.Opaque, key, value string) *types.Opaque {
o = ensureOpaque(o)