Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
掘金者说
vscode
提交
139ccc4a
V
vscode
项目概览
掘金者说
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
139ccc4a
编写于
7月 13, 2020
作者:
R
Rachel Macfarlane
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Disable sign out for account specified through embedder API
上级
2b5ac232
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
27 addition
and
14 deletion
+27
-14
src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
...workbench/browser/parts/activitybar/activitybarActions.ts
+27
-14
未找到文件。
src/vs/workbench/browser/parts/activitybar/activitybarActions.ts
浏览文件 @
139ccc4a
...
...
@@ -31,7 +31,8 @@ import { ActionViewItem, Separator } from 'vs/base/browser/ui/actionbar/actionba
import
{
isMacintosh
}
from
'
vs/base/common/platform
'
;
import
{
ContextSubMenu
}
from
'
vs/base/browser/contextmenu
'
;
import
{
IAuthenticationService
}
from
'
vs/workbench/services/authentication/browser/authenticationService
'
;
import
{
distinct
}
from
'
vs/base/common/arrays
'
;
import
{
AuthenticationSession
}
from
'
vs/editor/common/modes
'
;
import
{
IWorkbenchEnvironmentService
}
from
'
vs/workbench/services/environment/common/environmentService
'
;
export
class
ViewContainerActivityAction
extends
ActivityAction
{
...
...
@@ -105,7 +106,8 @@ export class AccountsActionViewItem extends ActivityActionViewItem {
@
IContextMenuService
protected
contextMenuService
:
IContextMenuService
,
@
IMenuService
protected
menuService
:
IMenuService
,
@
IContextKeyService
private
readonly
contextKeyService
:
IContextKeyService
,
@
IAuthenticationService
private
readonly
authenticationService
:
IAuthenticationService
@
IAuthenticationService
private
readonly
authenticationService
:
IAuthenticationService
,
@
IWorkbenchEnvironmentService
private
readonly
environmentService
:
IWorkbenchEnvironmentService
)
{
super
(
action
,
{
draggable
:
false
,
colors
,
icon
:
true
},
themeService
);
}
...
...
@@ -140,10 +142,19 @@ export class AccountsActionViewItem extends ActivityActionViewItem {
const
providers
=
this
.
authenticationService
.
getProviderIds
();
const
allSessions
=
providers
.
map
(
async
id
=>
{
const
sessions
=
await
this
.
authenticationService
.
getSessions
(
id
);
const
uniqueSessions
=
distinct
(
sessions
,
session
=>
session
.
account
.
label
);
const
groupedSessions
:
{
[
label
:
string
]:
AuthenticationSession
[]
}
=
{};
sessions
.
forEach
(
session
=>
{
if
(
groupedSessions
[
session
.
account
.
label
])
{
groupedSessions
[
session
.
account
.
label
].
push
(
session
);
}
else
{
groupedSessions
[
session
.
account
.
label
]
=
[
session
];
}
});
return
{
providerId
:
id
,
sessions
:
unique
Sessions
sessions
:
grouped
Sessions
};
});
...
...
@@ -151,16 +162,18 @@ export class AccountsActionViewItem extends ActivityActionViewItem {
let
menus
:
(
IAction
|
ContextSubMenu
)[]
=
[];
result
.
forEach
(
sessionInfo
=>
{
const
providerDisplayName
=
this
.
authenticationService
.
getLabel
(
sessionInfo
.
providerId
);
sessionInfo
.
sessions
.
forEach
(
session
=>
{
const
accountName
=
session
.
account
.
label
;
const
menu
=
new
ContextSubMenu
(
`
${
accountName
}
(
${
providerDisplayName
}
)`
,
[
new
Action
(
`configureSessions
${
accountName
}
`
,
nls
.
localize
(
'
manageTrustedExtensions
'
,
"
Manage Trusted Extensions
"
),
''
,
true
,
_
=>
{
return
this
.
authenticationService
.
manageTrustedExtensionsForAccount
(
sessionInfo
.
providerId
,
accountName
);
}),
new
Action
(
'
signOut
'
,
nls
.
localize
(
'
signOut
'
,
"
Sign Out
"
),
''
,
true
,
_
=>
{
return
this
.
authenticationService
.
signOutOfAccount
(
sessionInfo
.
providerId
,
accountName
);
})
]);
Object
.
keys
(
sessionInfo
.
sessions
).
forEach
(
accountName
=>
{
const
hasEmbedderAccountSession
=
sessionInfo
.
sessions
[
accountName
].
some
(
session
=>
session
.
id
===
this
.
environmentService
.
options
?.
authenticationSessionId
);
const
manageExtensionsAction
=
new
Action
(
`configureSessions
${
accountName
}
`
,
nls
.
localize
(
'
manageTrustedExtensions
'
,
"
Manage Trusted Extensions
"
),
''
,
true
,
_
=>
{
return
this
.
authenticationService
.
manageTrustedExtensionsForAccount
(
sessionInfo
.
providerId
,
accountName
);
});
const
signOutAction
=
new
Action
(
'
signOut
'
,
nls
.
localize
(
'
signOut
'
,
"
Sign Out
"
),
''
,
true
,
_
=>
{
return
this
.
authenticationService
.
signOutOfAccount
(
sessionInfo
.
providerId
,
accountName
);
});
const
actions
=
hasEmbedderAccountSession
?
[
manageExtensionsAction
]
:
[
manageExtensionsAction
,
signOutAction
];
const
menu
=
new
ContextSubMenu
(
`
${
accountName
}
(
${
providerDisplayName
}
)`
,
actions
);
menus
.
push
(
menu
);
});
});
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录