ios - 修改当前用户的ACL

标签 ios objective-c parse-platform acl

我正在使用iOS Parse Framework。我正在创建这样的用户:

PFUser *user = [PFUser user];
user.username = self.userNameTextField.text;
user.password = self.passwordTextField.text;
user.email = self.emailTextField.text;

[user signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
    if (!error) {
        //user saved
    } else {
        NSString *errorString = [error userInfo][@"error"];
        // Show the errorString somewhere and let the user try again.
    }
}];

但是,如果我使用此代码:
 PFQuery *query = [PFUser query];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        // The find succeeded.
        NSLog(@"Successfully retrieved %d scores.", objects.count);
        // Do something with the found objects
        for (PFUser *user in objects) {
            NSLog(@"User:%@",user);
        }
    } else {
        // Log details of the failure
        NSLog(@"Error: %@ %@", error, [error userInfo]);
    }


}];

这可以工作并列出所有用户名。我希望每个用户只能获取他的信息,而不能获取其他人的信息。我该如何实施?我尝试执行以下操作:
PFACL *userACL = [PFACL ACLWithUser:[PFUser currentUser]];
[userACL setPublicReadAccess:NO];
[userACL setPublicWriteAccess:NO];
user.ACL = userACL;

但是它不允许我这样做,所以我基本上想做的是,我不希望我怎么做,我不希望用户能够从“用户”表中获取所有用户,我希望每个用户只能访问它自己的用户对象。

最佳答案

创建用户后,请尝试保存ACL。

    PFUser *user = [PFUser user];
    user.username = self.userNameTextField.text;
    user.password = self.passwordTextField.text;
    user.email = self.emailTextField.text;

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

        if (!error)
        {
            PFACL *userACL = [PFACL ACLWithUser:[PFUser currentUser]];
            [userACL setPublicReadAccess:NO];
            [userACL setPublicWriteAccess:NO];

            [PFUser currentUser].ACL = userACL;
            [[PFUser currentUser] saveInBackground];

             } else {
                 NSString *errorString = [error userInfo][@"error"];
                 // Show the errorString somewhere and let the user try again.
             }

    }];

关于ios - 修改当前用户的ACL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21868711/

相关文章:

iOS - 从 iOS 应用程序以加密形式在服务器上存储信用卡/借记卡,然后再次从应用程序解密。我怎样才能最安全地管理它?

ios - 如何按步数获取CMPedometer数据?

ios - 在代码中配置 NSAppTransportSecurity

ios - 意外的零窗口(空白黑屏)

ios - 获取时如何初始化PFObject子类?

android - 向目标设备发送推送通知

ios - 什么是-[NSURL _fastCharacterContents] :?

iOS:测量通话质量/信号强度

ios - "itms-apps://"尚未发布的iOS应用的URL

ios - 从后台线程在 UINavigationItem 上显示 UISearchController