Reputation: 1369
I am trying to set a default capability on a role in JavaScript like so:
declareUpdate();
var sec = require('/MarkLogic/security.xqy');
var pid = 3223704;
var role = 'scc-proj-' + pid + '-member';
sec.roleSetDefaultPermissions("scc-proj-3223704-member",(xdmp.permission("scc-proj-3223704-member", "read")));
This gives an error:
[javascript] XDMP-AS: $permissions as element(sec:permission)* -- Invalid coercion: object-node{"capability": text{"read"}, "roleId": text{"12999117528518422097...} as element(sec:permission)
If I look into it seems that xdmp.permissions()
gives back an object node while sec.roleSetDefaultPermissions()
expects an element node. So seems there is some type conversion not working...
The XQuery equivalent works okay.
Upvotes: 1
Views: 52
Reputation: 11771
Just pass element
as the 3rd optional $output-kind
parameter to xdmp.permission
:
xdmp.permission("scc-proj-3223704-member", "read", "element");
Upvotes: 3