@@ -9,7 +9,7 @@ import { AbstractClient } from "tencentcloud-sdk-nodejs/tencentcloud/common/abst
99import { Credential } from "tencentcloud-sdk-nodejs/tencentcloud/common/interface" ;
1010import { LoginProvider } from "../../../views/login/loginExplorer" ;
1111import { terraformShellManager } from "../../../client/terminal/terraformShellManager" ;
12- import { getStsClient } from "@/connectivity/client" ;
12+ import { getCamClient , getStsClient } from "@/connectivity/client" ;
1313import { StreamingStatistics } from "tencentcloud-sdk-nodejs/tencentcloud/services/dlc/v20210125/dlc_models" ;
1414
1515export namespace user {
@@ -22,6 +22,7 @@ export namespace user {
2222 type ?: string ;
2323 appid ?: string ;
2424 region ?: string ;
25+ arn ?: string ;
2526 }
2627
2728 export const AKSK_TITLE = "TcTerraform.pickup.aksk" ;
@@ -61,7 +62,7 @@ export namespace user {
6162 process . env . TENCENTCLOUD_SECRET_KEY = secretKey ;
6263
6364 // query user info
64- const resp = await ( await getStsClient ( ) ) . GetCallerIdentity ( { } ) .
65+ const stsResp = await ( await getStsClient ( ) ) . GetCallerIdentity ( ) .
6566 then (
6667 ( result ) => {
6768 console . debug ( '[DEBUG]--------------------------------result:' , result ) ;
@@ -77,12 +78,31 @@ export namespace user {
7778 }
7879 ) ;
7980
81+ const camResp = await ( await getCamClient ( ) ) . GetUserAppId ( ) .
82+ then (
83+ ( result ) => {
84+ console . debug ( '[DEBUG]--------------------------------result:' , result ) ;
85+ if ( ! result ) {
86+ throw new Error ( '[Warn] GetUserAppId result.TotalCount is 0.' ) ;
87+ }
88+ return result ;
89+ } ,
90+ ( err ) => {
91+ console . error ( '[TencentCloudSDKError] GetUserAppId got a error from SDK.' , err . message ) ;
92+ window . showErrorMessage ( 'Login Failed. Reason:' + err . message ) ;
93+ return err ;
94+ }
95+ ) ;
96+
8097 // set user info
8198 let userinfo : UserInfo = {
8299 secretId : accessKey ,
83100 secretKey : secretKey ,
84- uin : resp . PrincipalId ?? resp . UserId ?? "-" ,
85- type : resp . Type ?? "unknow"
101+ uin : stsResp . PrincipalId ?? stsResp . UserId ?? "-" ,
102+ type : stsResp . Type ?? "unknow" ,
103+ appid : camResp . AppId ?? "-" ,
104+ arn : stsResp . Arn ,
105+ region : process . env . TENCENTCLOUD_REGION ?? "unknow" ,
86106 } ;
87107 setInfo ( userinfo ) ;
88108
@@ -94,21 +114,19 @@ export namespace user {
94114 }
95115
96116 export async function loginOut ( ) {
97- const yes = localize ( "common.yes" ) ;
117+ const yes = localize ( "TcTerraform. common.yes" ) ;
98118 const action = await window . showWarningMessage (
99- localize ( "tencent.loginout.title " ) ,
119+ localize ( "TcTerraform.view.logout " ) ,
100120 {
101121 modal : true ,
102- detail : localize ( "tencent.loginout.detail " ) ,
122+ detail : localize ( "TcTerraform.view.logout.confirm " ) ,
103123 } ,
104- yes
105124 ) ;
106125 if ( action !== yes ) {
107126 return ;
108127 }
109128
110- const { secrets } = container . get < ExtensionContext > ( Context ) ;
111- await secrets . delete ( USER_INFO ) ;
129+ await clearInfo ( ) ;
112130
113131 tree . refreshTreeData ( ) ;
114132 }
@@ -186,6 +204,13 @@ export namespace user {
186204 tree . refreshTreeData ( ) ;
187205 }
188206
207+ export async function clearInfo ( ) {
208+ const { secrets } = container . get < ExtensionContext > ( Context ) ;
209+
210+ await secrets . delete ( USER_INFO ) ;
211+ tree . refreshTreeData ( ) ;
212+ }
213+
189214 export async function getInfo ( ) : Promise < UserInfo | undefined > {
190215 const { secrets } = container . get < ExtensionContext > ( Context ) ;
191216 const userinfo = await secrets . get ( USER_INFO ) ;
0 commit comments