NCMBのユーザでなくオブジェクトのACLを変更する手順
動作したスクリプトを抜粋してるので動作確認無しです
NCMBUser user;
string acltest;
// Use this for initialization
void Start () {
user = NCMBUser.CurrentUser;
string userName = user.UserName;
//UserTypeフィールドにsuperの入っているユーザを検索してListに入れる
NCMBQuery<NCMBUser> query = NCMBUser.GetQuery ();
query.WhereEqualTo ("userType", "super");
query.FindAsync ((List<NCMBUser> userList , NCMBException e) => {
if (e != null) {
UnityEngine.Debug.Log ("失敗 : " + e.Message);
} else {
foreach (NCMBUser users in userList) {
pairUsers.Add(users.UserName.ToString());//SUの名前をリストに入れる
}//foreachここまで
acltest = userList[0].ObjectId.ToString();
}
});
getuserlist();
}
void getuserlist(){
string userName = user.UserName;
NCMBQuery<NCMBObject> query2 = new NCMBQuery<NCMBObject> ("testobj");
query2.WhereEqualTo ("player", userName);//Playerがusernameの結果を検索
query2.FindAsync ((List<NCMBObject> objList ,NCMBException e) => {
if (e != null) {
//検索失敗時の処理
Debug.Log("e");
return;
} else {
if ( objList == null || objList.Count == 0 ){
Debug.Log("e");
return;
}
Debug.Log(objList.Count);
int po = 0;
foreach (NCMBObject objdata in objList) {//ne
var acl = objdata.ACL;//ACL書き換え準備
//読み込み権限全close
acl.PublicReadAccess = false;
//書き込み権限を全close
acl.PublicWriteAccess = false;
//userNameきっかけで読み書きアクセスお追加する
acl.SetWriteAccess (user.ObjectId.ToString(), true);
acl.SetReadAccess (user.ObjectId.ToString(), true);
//他の方へのアクセス許可用
acl.SetReadAccess (acltest, true);
objdata.ACL = acl;//保存準備
objdata.SaveAsync ((NCMBException z) => {
if (z != null) {
//エラー処理
} else {
//成功時の処理
Debug.Log(acltest);
//objdata.ACL = acl;
Debug.Log("good");//送信成功の意味
}
});
}//for eachここまで
}
});
}