Vault Automation 0c6c13dd38
license: update headers to IBM Corp. (#10229) (#10233)
* license: update headers to IBM Corp.
* `make proto`
* update offset because source file changed

Signed-off-by: Ryan Cragun <me@ryan.ec>
Co-authored-by: Ryan Cragun <me@ryan.ec>
2025-10-21 15:20:20 -06:00

56 lines
1.4 KiB
Go

// Copyright IBM Corp. 2016, 2025
// SPDX-License-Identifier: BUSL-1.1
package mongodb
import "go.mongodb.org/mongo-driver/mongo/writeconcern"
type createUserCommand struct {
Username string `bson:"createUser"`
Password string `bson:"pwd,omitempty"`
Roles []interface{} `bson:"roles"`
}
type updateUserCommand struct {
Username string `bson:"updateUser"`
Password string `bson:"pwd"`
}
type dropUserCommand struct {
Username string `bson:"dropUser"`
WriteConcern *writeconcern.WriteConcern `bson:"writeConcern"`
}
type mongodbRole struct {
Role string `json:"role" bson:"role"`
DB string `json:"db" bson:"db"`
}
type mongodbRoles []mongodbRole
type mongoDBStatement struct {
DB string `json:"db"`
Roles mongodbRoles `json:"roles"`
}
// Convert array of role documents like:
//
// [ { "role": "readWrite" }, { "role": "readWrite", "db": "test" } ]
//
// into a "standard" MongoDB roles array containing both strings and role documents:
//
// [ "readWrite", { "role": "readWrite", "db": "test" } ]
//
// MongoDB's createUser command accepts the latter.
func (roles mongodbRoles) toStandardRolesArray() []interface{} {
var standardRolesArray []interface{}
for _, role := range roles {
if role.DB == "" {
standardRolesArray = append(standardRolesArray, role.Role)
} else {
standardRolesArray = append(standardRolesArray, role)
}
}
return standardRolesArray
}