NIFCLOUD-mbaas / ncmb_js

ニフクラ mobile backend JavaScript SDK
https://mbaas.nifcloud.com
Other
28 stars 27 forks source link

Fix acl error when set false value #175

Closed hocnguyen closed 6 years ago

hocnguyen commented 7 years ago

概要(Summary)

動作確認手順(Step for Confirmation)

Run the unit test.

ykokw commented 7 years ago

ACLを設定するメソッド(e.g. setPublicReadAccess() が、boolean値を受け取るようなインタフェースだと、 デフォルトACLを変更する場合に混乱を招くのではないかと思います。(以下の実装例をご覧ください

var Food = ncmb.DataStore("Food");
var food = new Food({name: "apple"});
food.save()
    .then(function(apple){
        var acl = new ncmb.Acl();
        acl.setPublicReadAccess(false); //デフォルトACLに対してfalseを指定しても何も変わらない->全開放のACLのまま!!
        food.acl = acl;
        food.update().
        then(function(data){
            Food.fetchById(food.objectId).then(function(res){
                console.log(JSON.stringify(res));  //fetchした結果が表示されてしまう!!
            });
        });
    })
    .catch(function(err){
        console.log(err);
    });

そこで、以下の方針でACL設定を行うメソッドの修正をお願いできませんでしょうか。

bkzen commented 6 years ago

確かにSDKのインターフェースがわかりにくい問題もありますが、問題を切り分けたいと思います。

  1. まず、現在起きているこのバグのfixを行い、別の修正とともにリリースします。
  2. その後、わかりにくくなっている ACL の設定の仕様をまとめ、場合によってはインターフェースの変更を行いたいと思います。 その場合、その他の SDK においても同様の変更を行います。
bkzen commented 6 years ago

現在の実装では以下のように実装しているコードに対して同様のバグが発生しますので修正をお願いします。

var acl = new ncmb.Acl({"*":{read:false, write:true}});