2015-02-24 87 views
0

我有一個類UserRatings用戶評分不同的地方。目前該類具有公共讀取和寫入ACL。我需要將我的所有用戶添加到新角色中,以便我可以更改公開閱讀和寫入我的新角色。我如何將所有用戶添加到此角色?另外,如何在新用戶註冊時更新角色?如何將所有用戶添加到Parse.com中的角色?

我已經使用以下代碼將所有現有用戶添加到該類中。

PFQuery *query = [PFUser query]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    allUsers=objects; 
    NSLog(@"%@",allUsers); 
}]; 


PFACL *roleACL = [PFACL ACL]; 
PFRole *role = [PFRole roleWithName:@"UserRatingsRole" acl:roleACL]; 
for (PFUser *user in allUsers) { 
    [role.users addObject:user]; 
} 
[role saveInBackground]; 

我還沒有給出任何子角色。這是一個問題嗎?當我檢查我的Parse Roles時,我找不到任何列在我角色中的用戶。誰能幫我?

回答

1

您需要查詢服務器上的角色對象,然後繼續您已有的。

試試這個:

PFQuery *query = [PFUser query]; 
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) { 
    allUsers=objects; 
NSLog(@"%@",allUsers); 
}]; 

PFQuery *queryRole = [PFRole query]; 
[queryRole whereKey:@"UserRatingsRole" equalTo:roleName]; 
[queryRole getFirstObjectInBackgroundWithBlock:^(PFObject *object, NSError *error) { 
    PFRole *role = (PFRole *)object; 
    for (var i = 0; i < allUsers.length; i++) { 
     role.getUsers().add(allUsers[i]); 
    } 
    role.save(); 
}]; 

您還可以看看這裏的答案:https://parse.com/questions/add-users-to-role

+0

這解決了這個問題。 – 2015-02-26 05:03:23

相關問題