REST端点上的MarkLogic 9权限问题?

时间:2018-01-25 21:53:34

标签: rest permissions marklogic

我在模块中有一个用于编写用户配置文件对象的函数。

<select class="form-control" title="Filter by state."  (change)="onSelect($event.target.value)">
            <option *ngFor="let state of newenglandstates" value="state.abbrv">
                {{ state.name }}
            </option>           
        </select>

现在,如果我首先创建该对象,则该函数可以正常工作,但如果我使用相同的函数更新对象,它可以从控制台运行,但不能从REST客户端运行吗?

权限是否存在问题?我试过添加

// create scc user
function createUserProfile(userObj) {
// create user
var uri = fn.concat('/users/',userObj.id,'.json');
var data = {uri : uri, userName : userObj.userName, doc : userObj };
// we add the user as owner of this insert so he/she will own the doc
var options = {"isolation" : "different-transaction"}; //,"userId" : 
xdmp.user(userObj.userName)};
xdmp.eval('declareUpdate(); 
xdmp.documentInsert(uri, doc,[xdmp.permission(userName,"read"),xdmp.permission(userName,"update")]); 
xdmp.documentAddCollections(uri,"sccss-users")',
                            data,options);
return uri
};

在控制台中再次工作,但没有解决我的问题。

实际上,REST客户端没有从端点获得回复,一段时间后数据库超时,请参阅日志。

MarkLogic服务器日志:

    var options = {"isolation" : "different-transaction","userId" : xdmp.user(userObj.userName)};

问题: - 权限&#39;阅读&#39;更新&#39;应该在这里使用xdmp.documentInsert()实际更新文档的技巧 - 如果从控制台运行,为什么该功能有效(作为管理员,但如上所述设置了userId。

0 个答案:

没有答案