Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
张重言
deno
提交
1947f572
D
deno
项目概览
张重言
/
deno
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
deno
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
1947f572
编写于
8月 13, 2019
作者:
N
Nayeem Rahman
提交者:
Ryan Dahl
8月 13, 2019
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix permission requirements for Deno.rename() and Deno.link() (#2737)
上级
c3afa557
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
34 addition
and
5 deletion
+34
-5
cli/ops.rs
cli/ops.rs
+7
-2
js/link_test.ts
js/link_test.ts
+13
-2
js/rename_test.ts
js/rename_test.ts
+14
-1
未找到文件。
cli/ops.rs
浏览文件 @
1947f572
...
...
@@ -1404,10 +1404,13 @@ fn op_rename(
)
->
CliOpResult
{
assert
!
(
data
.is_none
());
let
inner
=
base
.inner_as_rename
()
.unwrap
();
let
(
oldpath
,
_
)
=
deno_fs
::
resolve_from_cwd
(
inner
.oldpath
()
.unwrap
())
?
;
let
(
oldpath
,
oldpath_
)
=
deno_fs
::
resolve_from_cwd
(
inner
.oldpath
()
.unwrap
())
?
;
let
(
newpath
,
newpath_
)
=
deno_fs
::
resolve_from_cwd
(
inner
.newpath
()
.unwrap
())
?
;
state
.check_read
(
&
oldpath_
)
?
;
state
.check_write
(
&
oldpath_
)
?
;
state
.check_write
(
&
newpath_
)
?
;
blocking
(
base
.sync
(),
move
||
{
...
...
@@ -1424,10 +1427,12 @@ fn op_link(
)
->
CliOpResult
{
assert
!
(
data
.is_none
());
let
inner
=
base
.inner_as_link
()
.unwrap
();
let
(
oldname
,
_
)
=
deno_fs
::
resolve_from_cwd
(
inner
.oldname
()
.unwrap
())
?
;
let
(
oldname
,
oldpath_
)
=
deno_fs
::
resolve_from_cwd
(
inner
.oldname
()
.unwrap
())
?
;
let
(
newname
,
newname_
)
=
deno_fs
::
resolve_from_cwd
(
inner
.newname
()
.unwrap
())
?
;
state
.check_read
(
&
oldpath_
)
?
;
state
.check_write
(
&
newname_
)
?
;
blocking
(
base
.sync
(),
move
||
{
...
...
js/link_test.ts
浏览文件 @
1947f572
// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
import
{
test
,
test
Perm
,
assert
,
assertEquals
}
from
"
./test_util.ts
"
;
import
{
testPerm
,
assert
,
assertEquals
}
from
"
./test_util.ts
"
;
testPerm
({
read
:
true
,
write
:
true
},
function
linkSyncSuccess
():
void
{
const
testDir
=
Deno
.
makeTempDirSync
();
...
...
@@ -63,7 +63,18 @@ testPerm({ read: true, write: true }, function linkSyncNotFound(): void {
assertEquals
(
err
.
name
,
"
NotFound
"
);
});
test
(
function
linkSyncPerm
():
void
{
testPerm
({
read
:
false
,
write
:
true
},
function
linkSyncReadPerm
():
void
{
let
err
;
try
{
Deno
.
linkSync
(
"
oldbaddir
"
,
"
newbaddir
"
);
}
catch
(
e
)
{
err
=
e
;
}
assertEquals
(
err
.
kind
,
Deno
.
ErrorKind
.
PermissionDenied
);
assertEquals
(
err
.
name
,
"
PermissionDenied
"
);
});
testPerm
({
read
:
true
,
write
:
false
},
function
linkSyncWritePerm
():
void
{
let
err
;
try
{
Deno
.
linkSync
(
"
oldbaddir
"
,
"
newbaddir
"
);
...
...
js/rename_test.ts
浏览文件 @
1947f572
...
...
@@ -23,7 +23,20 @@ testPerm({ read: true, write: true }, function renameSyncSuccess(): void {
assertEquals
(
oldPathInfo
,
undefined
);
});
testPerm
({
read
:
true
,
write
:
false
},
function
renameSyncPerm
():
void
{
testPerm
({
read
:
false
,
write
:
true
},
function
renameSyncReadPerm
():
void
{
let
err
;
try
{
const
oldpath
=
"
/oldbaddir
"
;
const
newpath
=
"
/newbaddir
"
;
Deno
.
renameSync
(
oldpath
,
newpath
);
}
catch
(
e
)
{
err
=
e
;
}
assertEquals
(
err
.
kind
,
Deno
.
ErrorKind
.
PermissionDenied
);
assertEquals
(
err
.
name
,
"
PermissionDenied
"
);
});
testPerm
({
read
:
true
,
write
:
false
},
function
renameSyncWritePerm
():
void
{
let
err
;
try
{
const
oldpath
=
"
/oldbaddir
"
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录