policy: Add Merge API (#11793)

This commit adds a new API in pkg/bucket/policy package called
Merge to merge multiple policies of a user or a group into one
policy document.
This commit is contained in:
Anis Elleuch
2021-03-16 16:50:36 +01:00
committed by GitHub
parent 6160188bf3
commit fa94682e83
12 changed files with 279 additions and 31 deletions

View File

@@ -29,6 +29,15 @@ func (set ValueSet) Add(value Value) {
set[value] = struct{}{}
}
// ToSlice converts ValueSet to a slice of Value
func (set ValueSet) ToSlice() []Value {
var values []Value
for k := range set {
values = append(values, k)
}
return values
}
// MarshalJSON - encodes ValueSet to JSON data.
func (set ValueSet) MarshalJSON() ([]byte, error) {
var values []Value
@@ -73,6 +82,11 @@ func (set *ValueSet) UnmarshalJSON(data []byte) error {
return nil
}
// Clone clones ValueSet structure
func (set ValueSet) Clone() ValueSet {
return NewValueSet(set.ToSlice()...)
}
// NewValueSet - returns new value set containing given values.
func NewValueSet(values ...Value) ValueSet {
set := make(ValueSet)