使用只读访问权限更改PFObject ACL权限

时间:2014-07-12 08:17:37

标签: ios objective-c parse-platform

我一直在努力解决Parse Objects的问题,我不确定最佳实现是什么。

我有一个由另一个用户创建的PFObject,一条消息,而且这个用户给了我读取权限,所以我可以阅读这条消息。我不想再看到这条消息,但我不想删除它,因为它不是我的消息。

如果我调整ACL权限以删除我的读取权限

object.ACL setReadAccess:NO forUser:[PFUser currentUser]];

然后去保存对象

object saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error)

我收到错误

Error: object not found for update (Code: 101, Version: 1.2.15)

这显然是因为我只有读访问权限而没有写访问权来更新对象。

我在考虑为每个用户提供一个阻止消息对象,但这感觉有些混乱。

有人能想到我的问题更好的实施吗?

所有想法都很棒,只是想从其他iOS程序员那里获得想法。

1 个答案:

答案 0 :(得分:1)

我最终通过创建我调用从消息中删除用户的云代码来解决问题。使用Parse.Cloud.UseMasterKey(),您可以在没有权限的情况下执行任何操作。

Parse.Cloud.define("RemoveUserFromMessage", function(request, response) {
Parse.Cloud.useMasterKey(); 

var query = new Parse.Query("Notes");
query.get(request.params.noteId, {
        success: function(note) {
        var noteACL = note.getACL();
        noteACL.setReadAccess(request.params.userId, false);
        noteACL.setWriteAccess(request.params.userId, false);
        note.setACL(noteACL);
        note.save();

        response.success();
    },
    error: function() {
        response.error("can’t find note");
    }
}); 
});