公共更新已禁用时无法更新[PFUser currentUser]

时间:2015-02-05 07:20:28

标签: facebook security parse-platform

我最近试图锁定解析项目的安全性,除了公共创建以外已禁用。

User Security / Permissions

但是,如果我尝试将现有用户链接到Facebook,请执行此操作,如下所示:

[PFFacebookUtils linkUser:[PFUser currentUser] permissions:nil block:^(BOOL succeeded, NSError *error) { /* ... */ }];

我在控制台上看到以下错误:

2015-02-04 00:11:19.856 Walker[43201:381190] Error: This user is not allowed to perform the update operation on _User. You can change this setting in the Data Browser. (Code: 119, Version: 1.5.0)

尽管当前用户对自己具有读/写权限:

Individual User Permissions

如果我启用公开更新'对于User类,这个问题会消失吗? 有没有办法在不启用公共访问权限的情况下启用当前用户的更新?

1 个答案:

答案 0 :(得分:0)

我最终得到了Hector Ramos在Parse Google Group上的以下答案(https://groups.google.com/d/msg/parse-developers/JFMrXheHgdo/1dw_6dl1EmUJ

  

要将用户链接到Facebook,必须修改用户对象。   您需要为此课程启用更新。每个对象的ACL不能   增加权限范围超过类级别ACL   据我所知,提供。

我认为这意味着我必须为该类启用更新才能进行任何更新。

我仍然有点担心这可能会允许未经授权更新我的用户帐户(因为这个答案并非100%清除)。为了安全起见,我还在保存挂钩之前添加了一个CloudCode,它将用户访问控制列表(ACL)设置为仅允许他们访问此对象(根据我的应用程序要求)。

Parse.Cloud.beforeSave(Parse.User, function(request, response) {
    // Set ACL for new User to only that user 
    request.object.setACL(new Parse.ACL(Parse.User.current()));
    response.success();
});