【问题标题】:Restrict read/write access of new User object to only that user?将新用户对象的读/写访问权限仅限于该用户?
【发布时间】:2015-10-14 02:27:09
【问题描述】:

似乎无论我做什么,Public 角色总是对 User 对象具有读取权限。我看到公共(读取)和用户(读取/写入)的 ACL。

下面的代码应该只限制对用户的访问。如何防止 Public 对新的 User 对象具有读取权限?

PFACL *defaultACL = [PFACL ACL];
[defaultACL setPublicReadAccess:NO];
[PFACL setDefaultACL:defaultACL withAccessForCurrentUser:YES];

PFUser *user = [PFUser user];
user.username = username;
user.password = password;

[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) { ...

【问题讨论】:

  • 所以您在创建 ACL 时最初没有当前用户?
  • 啊,很好,但我仍然想知道为什么尽管我的 CLP 只允许创建操作,但 Public 总是具有新用户对象的读取访问权限?
  • 我找到的最接近答案的是 security edge cases 的文档概述,但看到具有读取权限的 Public 仍然让我感到不安。
  • 我通常会为此添加一个保存云代码挂钩

标签: ios objective-c parse-platform


【解决方案1】:

当您限制公共访问时,您的记录最终会在用户表中具有私有读/写访问权限。只需在您的用户beforeSave 触发云代码中添加以下代码:

Parse.Cloud.beforeSave(Parse.User, function(request, response) {

    // When creating a new user record
    if(request.object.isNew()) {
        var privateACL = new Parse.ACL();
        privateACL.setPublicReadAccess(false);
        request.object.setACL(privateACL);

        // other stuff
    }

});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-11
    • 1970-01-01
    • 2019-08-17
    相关资源
    最近更新 更多