2

Ext.create('Rally.data.WsapiDataStore', params) を呼び出して、load イベントで結果を探しています。

ユーザーが読み取り権限を持っているかどうかに関係なく、プログラム全体で多数のオブジェクトを要求しています。

これは、ユーザーがアクセス許可を持っているクエリでは問題なく機能します。しかし、ユーザーに権限がなく、結果が返されない可能性が高い場合、load イベントはまったく発生していないように見えます。失敗したフラグで起動するか、空の結果で戻ることを期待しています。

リクエストが失敗したことを知らないので、私のプログラムは待って待っています。セキュリティのためにこのリクエストが返されないかどうかを確認するにはどうすればよいですか?

ところで、ネットワーク統計を見ると、すべてのリクエストが「200 OK」ステータスを返すと思います。

さまざまなデータ ストアを作成するために使用する方法を次に示します。

_createDataStore: function(params) {
    this.openRequests++;

    var createParams = {
        model: params.type,
        autoLoad: true,

        // So I can later determine which query type it is, and which program
        requestType:    params.requestType == undefined ? params.type : params.requestType,
        program:        this.program,

        listeners: {
            load: this._onDataLoaded,
            scope: this
        },
        filters: params.filters,
        pageSize: params.pageSize,
        fetch: params.fetch,

        context:    {
            project: this.project,
            projectScopeUp: false,
            projectScopeDown: true
        },
        pageSize:   1 // We only need the count
    };
    console.log('_createDataStore', this.program, createParams.requestType);

    Ext.create('Rally.data.WsapiDataStore', createParams);
},

_onDataLoaded メソッドは次のとおりです。

_onDataLoaded: function(store, data, successB) {
    console.log('_onDataLoaded', this.program, successB);
    ...

アカウントがアクセス許可を持つクエリに対して呼び出されるこの関数のみが表示されます。

4

1 に答える 1

1

Defect.jsまたはHierarchicalRequirement.jsのリクエストを受け取っていますか?問題をシミュレートすると、ユーザーが指定されたプロジェクトにアクセスできないため、モデルのビルド中にTypeDefinition.jsのリクエストが失敗することがわかります。これは私には小さなバグのようです。指定したワークスペースのタイプのモデルを明示的にフェッチし、それをストアで使用することで、この問題を回避できるはずです。

Rally.data.ModelFactory.getModels({ 
    types: ['Defect', 'UserStory'], //more types, etc... 
    context: Rally.environment.getContext().getDataContext(), //use workspace
    success: function(models) {
        //your code here
    }
});
于 2012-09-11T03:35:27.277 に答える