Merge pull request #8009 from ioito/optimized/qx-clouduser-login-info

fix: 优化提取显示主账号名
This commit is contained in:
yunion-ci-robot
2020-09-23 10:32:21 +08:00
committed by GitHub
4 changed files with 28 additions and 2 deletions
+1
View File
@@ -32,6 +32,7 @@ func init() {
cmd.Perform("attach-policy", &options.ClouduserPolicyOptions{})
cmd.Perform("detach-policy", &options.ClouduserPolicyOptions{})
cmd.Perform("change-owner", &options.ClouduserChangeOwnerOptions{})
cmd.Perform("reset-password", &options.ClouduserResetPasswordOptions{})
cmd.Perform("cloud-user-join-group", &options.ClouduserGroupOptions{})
cmd.Perform("cloud-user-leave-group", &options.ClouduserGroupOptions{})
}
+17 -1
View File
@@ -16,6 +16,7 @@ package modules
import (
"fmt"
"net/url"
"strings"
"yunion.io/x/jsonutils"
@@ -72,15 +73,30 @@ func (this *SClouduserManager) GetLoginInfo(s *mcclient.ClientSession, id string
return nil, errors.Wrap(err, "Descrypt")
}
if user.Provider == api.CLOUD_PROVIDER_ALIYUN {
account := ""
switch user.Provider {
case api.CLOUD_PROVIDER_ALIYUN:
suffix := strings.TrimPrefix(user.IamLoginUrl, "https://signin.aliyun.com/")
suffix = strings.TrimSuffix(suffix, "/login.htm")
if len(suffix) > 0 {
user.Name = fmt.Sprintf("%s@%s", user.Name, suffix)
account = suffix
}
case api.CLOUD_PROVIDER_QCLOUD, api.CLOUD_PROVIDER_HUAWEI:
u, _ := url.Parse(user.IamLoginUrl)
if u != nil {
account = u.Query().Get("account")
}
case api.CLOUD_PROVIDER_AWS:
account = strings.TrimPrefix(user.IamLoginUrl, "https://")
if info := strings.Split(account, "."); len(info) > 0 {
account = info[0]
}
}
return jsonutils.Marshal(map[string]string{
"account": account,
"username": user.Name,
"password": password,
"url": user.IamLoginUrl,
+9
View File
@@ -105,3 +105,12 @@ type ClouduserGroupOptions struct {
func (opts *ClouduserGroupOptions) Params() (jsonutils.JSONObject, error) {
return jsonutils.Marshal(map[string]string{"cloudgroup_id": opts.CLOUDGROUP_ID}), nil
}
type ClouduserResetPasswordOptions struct {
ClouduserIdOption
Password string `help:"password"`
}
func (opts *ClouduserResetPasswordOptions) Params() (jsonutils.JSONObject, error) {
return jsonutils.Marshal(map[string]string{"password": opts.Password}), nil
}
+1 -1
View File
@@ -323,7 +323,7 @@ func (client *SHuaweiClient) GetAccountId() string {
}
func (client *SHuaweiClient) GetIamLoginUrl() string {
return fmt.Sprintf("https://auth.huaweicloud.com/authui/login.html#/login?account=%s", client.ownerName)
return fmt.Sprintf("https://auth.huaweicloud.com/authui/login.html?account=%s#/login", client.ownerName)
}
func (self *SHuaweiClient) GetIRegions() []cloudprovider.ICloudRegion {