Make user details a page (#726)

This commit is contained in:
Daniel Valdivia
2021-05-08 00:00:29 -07:00
committed by GitHub
parent ffb3362f79
commit 24410e7c85
33 changed files with 1144 additions and 366 deletions

View File

@@ -115,7 +115,7 @@ func listUsers(ctx context.Context, client MinioAdmin) ([]*models.User, error) {
userElem := &models.User{
AccessKey: accessKey,
Status: string(user.Status),
Policy: user.PolicyName,
Policy: strings.Split(user.PolicyName, ","),
MemberOf: user.MemberOf,
}
users = append(users, userElem)
@@ -165,7 +165,7 @@ func addUser(ctx context.Context, client MinioAdmin, accessKey, secretKey *strin
userRet := &models.User{
AccessKey: *accessKey,
MemberOf: nil,
Policy: "",
Policy: []string{},
Status: "",
}
return userRet, nil
@@ -250,7 +250,7 @@ func getUserInfoResponse(session *models.Principal, params admin_api.GetUserInfo
userInformation := &models.User{
AccessKey: params.Name,
MemberOf: user.MemberOf,
Policy: user.PolicyName,
Policy: strings.Split(user.PolicyName, ","),
Status: string(user.Status),
}
@@ -333,10 +333,12 @@ func updateUserGroups(ctx context.Context, client MinioAdmin, user string, group
return nil, err
}
policies := strings.Split(userInfo.PolicyName, ",")
userReturn := &models.User{
AccessKey: user,
MemberOf: userInfo.MemberOf,
Policy: userInfo.PolicyName,
Policy: policies,
Status: string(userInfo.Status),
}
@@ -492,18 +494,20 @@ func getListUsersWithAccessToBucketResponse(session *models.Principal, bucket st
var retval []string
seen := make(map[string]bool)
for i := 0; i < len(users); i++ {
policy, err := adminClient.getPolicy(ctx, users[i].Policy)
if err == nil {
parsedPolicy, err2 := parsePolicy(users[i].Policy, policy)
if err2 == nil && policyMatchesBucket(parsedPolicy, bucket) {
retval = append(retval, users[i].AccessKey)
seen[users[i].AccessKey] = true
for _, policyName := range users[i].Policy {
policy, err := adminClient.getPolicy(ctx, policyName)
if err == nil {
parsedPolicy, err2 := parsePolicy(policyName, policy)
if err2 == nil && policyMatchesBucket(parsedPolicy, bucket) {
retval = append(retval, users[i].AccessKey)
seen[users[i].AccessKey] = true
}
if err2 != nil {
log.Println(err2)
}
} else {
log.Println(err)
}
if err2 != nil {
log.Println(err2)
}
} else {
log.Println(err)
}
}

View File

@@ -19,6 +19,7 @@ package restapi
import (
"context"
"fmt"
"strings"
"testing"
"github.com/minio/minio/pkg/madmin"
@@ -99,7 +100,7 @@ func TestListUsers(t *testing.T) {
for _, b := range userMap {
assert.Contains(mockUserMap, b.AccessKey)
assert.Equal(string(mockUserMap[b.AccessKey].Status), b.Status)
assert.Equal(mockUserMap[b.AccessKey].PolicyName, b.Policy)
assert.Equal(mockUserMap[b.AccessKey].PolicyName, strings.Join(b.Policy, ","))
assert.ElementsMatch(mockUserMap[b.AccessKey].MemberOf, []string{"group1", "group2"})
}

View File

@@ -6684,7 +6684,10 @@ func init() {
}
},
"policy": {
"type": "string"
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"
@@ -13936,7 +13939,10 @@ func init() {
}
},
"policy": {
"type": "string"
"type": "array",
"items": {
"type": "string"
}
},
"status": {
"type": "string"