XQuery/更改集合和資源的許可權
外觀
< XQuery
您想要更改一組集合和資源的許可權。
我們將使用兩個函式
對於集合
xmldb:chmod-collection($collection, $perm)
以及對於資源
xmldb:chmod-resource($collection, $resource, $perm)
$perm 是一個十進位制數字。
從 1.5 版開始,您可以使用函式 xmldb:string-to-permissions("rwurwu---") 來獲取這個十進位制數字。
xquery version "1.0";
<results>
<guest-none>{xmldb:string-to-permissions("rwxrwx---")}</guest-none>
<guest-read>{xmldb:string-to-permissions("rwxrwxr--")}</guest-read>
<guest-read-write>{xmldb:string-to-permissions("rwxrwxrw-")}</guest-read-write>
<guest-all>{xmldb:string-to-permissions("rwxrwxrwx")}</guest-all>
</results>
返回以下內容
<results>
<guest-none>504</guest-none>
<guest-read>508</guest-read>
<guest-read-write>510</guest-read-write>
<guest-all>511</guest-all>
</results>
xquery version "1.0";
declare function local:chmod-collection($collection) {
xmldb:chmod-collection(
$collection,
xmldb:string-to-permissions("rwxrwx---")),
for $child in xmldb:get-child-collections($collection)
return
local:chmod-collection(concat($collection, "/", $child))
};
system:as-user(
'my-login',
'password',
(
local:chmod-collection("/db/collection"),
for $doc in collection("/db/collection")
return
xmldb:chmod-resource(util:collection-name($doc),
util:document-name($doc),
xmldb:string-to-permissions("rwxrwx---"))
)
)
警告,這會破壞幾個功能。您必須以非訪客身份執行許多函式。