mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-21 06:09:39 +08:00
Merge pull request #8009 from ioito/optimized/qx-clouduser-login-info
fix: 优化提取显示主账号名
This commit is contained in:
@@ -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{})
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user