Files
kubesphere/vendor/openpitrix.io/openpitrix/pkg/client/client.go
hongming 2c52a7064c refactor kubectl websocket API
Signed-off-by: hongming <talonwan@yunify.com>
2019-11-07 13:29:42 +08:00

36 lines
1.0 KiB
Go

// Copyright 2018 The OpenPitrix Authors. All rights reserved.
// Use of this source code is governed by a Apache license
// that can be found in the LICENSE file.
package client
import (
"context"
accessclient "openpitrix.io/openpitrix/pkg/client/access"
"openpitrix.io/openpitrix/pkg/pb"
"openpitrix.io/openpitrix/pkg/sender"
"openpitrix.io/openpitrix/pkg/util/ctxutil"
)
func SetSystemUserToContext(ctx context.Context) context.Context {
return ctxutil.ContextWithSender(ctx, sender.GetSystemSender())
}
func SetUserToContext(ctx context.Context, userId, apiMethod string) (context.Context, error) {
accessClient, err := accessclient.NewClient()
if err != nil {
return nil, err
}
response, err := accessClient.CanDo(ctx, &pb.CanDoRequest{
UserId: userId,
ApiMethod: apiMethod,
})
if err != nil {
return nil, err
}
userSender := sender.New(response.UserId, sender.OwnerPath(response.OwnerPath), sender.OwnerPath(response.AccessPath))
return ctxutil.ContextWithSender(ctx, userSender), nil
}