场景:
一个Task,保安一个creater 和 一个 executor,都是AVUser. 创建者,创建的时候,填creator, 执行者,抢单后,填 executor.
class Task extends AVObject {

      AVUser creator;
      AVUser executor;


}

task.setExecutor(user);
task.save()的时候,报 206.

我猜,在save task的时候,同时save了 creator 和 executor, 而executor貌似没有修改creator信息的权限?

检查过User 表的权限,所有的地方,都是PUBLIC,既然这样,为啥要报206?

FURTHER MORE,
如果真的通过权限控制了,不让executor修改creator的资料,那task.save()的逻辑该怎么实现?事实上,这个地方并没有修改creator 的信息,只是填入了一下executor的信息而已。这种时候leancloud直接报权限错,是不是不合理?

你好,出于安全考虑,SDK 端只能是已登录的 session 用户,修改他本人自己的用户信息,无法更改其他人的用户信息。

这种需求,最好交给后端,如我们的云引擎去操作,或者用 Master Key 调用 REST API。

只是把其他用户的信息插到啊我的信息里这样也报权限错误,确实不合理点

你确信是权限的问题吗? 我看了控制后台表的权限, 所有的读写,都是PUBLIC啊。

而且,你仔细看看我问题的描述,用户根本就没修改别的用户的信息,只是吧自己的用户对象,填到数据的字段里。照这种说法说法,只要对象里有不是登录用户的AVUser 字段,那这个对象就永远不能被更新了?及时人家不改对象里包含的AVUser字段?

你说的「把其他用户的信息插到我的信息里」是:比如我现在用账号 A 登录,这时候对账号 A 所对应的 AVUser 数据,进行任何更改操作都是可以的,不会报权限错误。

因为,后台发现 A 登录后,有了 seesion 认证。然后 A 修改了自己的用户数据,就予以通过。但此时,A 不能去修改 B 的用户数据。

请问 task.save() 里的操作是什么?如果只是 creator 自身的保存操作,不涉及 executor 不会触发权限控制。

大哥, task.save() 就是 AVObject的 save()啊。我现在的操作是:把executor修改为自己, 然后保存task. 这为什么不行?

LeanCloud 这效率,真是让人失望。 看来需要评估一下别的平台了。