我为类型(Person)编写了一个structr自定义方法。方法是makeNewHire,它需要一个现有的人并为他们创建一堆ToDos,然后将它们附加到它们。
在这样做的过程中,它会在我登录的structr用户类型和每个新的ToDo节点之间创建两个关系。关系的类型有:SECURITY和:OWNS。
现在,当我尝试将todo的状态更新为他们被分配到的人(而不是创建新节点的管理员)时,我收到401错误。我认为这是因为我无意中创建了安全设置。
如何使用可通过rest api访问的structr自定义方法来创建新节点而不创建这些关系?最终我想做到这一点只有管理员和与todos有特定关系的人才能改变它们,所以如果你能指出我关于这些东西的教程,那也会很棒。
这是我方法中的相关代码。它使用服务器端JS:
for(i=0;i<tasks.length;i++) {
newTD = Structr.create('ToDo', 'title', tasks[i].todo.title, 'marker', 'delete me2', 'event', 'First Day');
Structr.create_relationship(newTD, thisPerson, 'ASSIGNED_TO');
Structr.create_relationship(newTD, thisGeneralist, 'ASSIGNED_BY');
// go through the documents and attach them.
for(j=0;j<tasks[i].taskDocs.length; j++) {
Structr.create_relationship(newTD, tasks[i].taskDocs[j], 'HAS_DOCUMENT');
}
}
答案 0 :(得分:2)
如果您在“安全性”部分中为匹配的URL签名创建资源访问授权,则可以消除401错误,请参阅https://support.structr.com/article/235。
答案 1 :(得分:0)
Axel是正确的,但我想确定我做了什么导致我无法使用他的修复。
我在Structr中创建了ToDos,Structr已经为他们分配了与其他节点的SECURITY和OWNS关系。我删除了这些关系,因此无法与它们正确交互。