feat: upload user's ssh public key when user login through 'open with vscode' link
This commit is contained in:
22
src/main.ts
22
src/main.ts
@@ -3,6 +3,7 @@ import QuickAccessTreeProvider from './views/quick-access-tree';
|
||||
import DSHome from './home';
|
||||
import RemoteContainer, { openProjectWithoutLogging } from './remote-container';
|
||||
import User from './user';
|
||||
import DevstarAPIHandler from './devstar-api';
|
||||
|
||||
export class DevStarExtension {
|
||||
user: User;
|
||||
@@ -12,6 +13,7 @@ export class DevStarExtension {
|
||||
constructor(private context: vscode.ExtensionContext) {
|
||||
this.user = new User(context);
|
||||
this.remoteContainer = new RemoteContainer(this.user);
|
||||
this.dsHome = new DSHome(context);
|
||||
|
||||
const handler = vscode.window.registerUriHandler({
|
||||
handleUri: async (uri: vscode.Uri) => {
|
||||
@@ -36,6 +38,15 @@ export class DevStarExtension {
|
||||
this.user.setUserTokenToLocal(access_token)
|
||||
this.user.setUsernameToLocal(devstar_username)
|
||||
|
||||
// 检查本地是否有用户所属公钥,没有则创建
|
||||
if (!this.user.existUserPublicKey()) {
|
||||
await this.user.createUserSSHKey()
|
||||
.then(async () => {
|
||||
// 上传公钥
|
||||
const devstarAPIHandler = new DevstarAPIHandler(this.user)
|
||||
await devstarAPIHandler.uploadUserPublicKey()
|
||||
})
|
||||
}
|
||||
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
||||
} else if (devstar_username === this.user.getUsernameFromLocal()) {
|
||||
// 如果同用户已经登录,则忽略;
|
||||
@@ -49,11 +60,19 @@ export class DevStarExtension {
|
||||
this.user.setUserTokenToLocal(access_token);
|
||||
this.user.setUsernameToLocal(devstar_username);
|
||||
|
||||
// 检查本地是否有用户所属公钥,没有则创建
|
||||
if (!this.user.existUserPublicKey()) {
|
||||
await this.user.createUserSSHKey()
|
||||
.then(async () => {
|
||||
// 上传公钥
|
||||
const devstarAPIHandler = new DevstarAPIHandler(this.user)
|
||||
await devstarAPIHandler.uploadUserPublicKey()
|
||||
})
|
||||
}
|
||||
await this.remoteContainer.firstOpenProject(container_host, container_port, container_username, project_path)
|
||||
} else if (selection === 'No') {
|
||||
await openProjectWithoutLogging(container_host, container_port, container_username, project_path);
|
||||
}
|
||||
|
||||
}
|
||||
} else {
|
||||
await openProjectWithoutLogging(container_host, container_port, container_username, project_path);
|
||||
@@ -74,7 +93,6 @@ export class DevStarExtension {
|
||||
)
|
||||
);
|
||||
|
||||
this.dsHome = new DSHome(context);
|
||||
this.registerGlobalCommands(context);
|
||||
|
||||
this.startDevStarHome();
|
||||
|
Reference in New Issue
Block a user