无法保存权限

时间:2016-11-01 12:06:27

标签: rally

我正在尝试为用户/项目创建新的项目权限,但保存失败,因为"没有提供有效的项目"。查看网络日志,服务器调用中的RequestPayload为空({" ProjectPermission":{}})。有什么想法吗?

    _addViewPermission: function() {
        this.getModel().then({             
            success: this.createPP,
            scope: this
        }).then({                          
            success: this.readPP,
            scope: this
        }).then({                          
            success: function(result) {
                console.log('success', result);
            },
            failure: function(error) {
                console.log('oh noes!', error);
            }
        });
    },            

    getModel: function() {
        return Rally.data.ModelFactory.getModel({
            type: 'ProjectPermission'
        });
    },

    createPP: function(model) {
        var permission = Ext.create(model, {
            Project: "/project/51063976712",
            Role: 'Viewer',
            User: "/user/43049588391"
        });

        return permission.save();
    },

    readPP: function(permission){
        console.log(permisson);
        return permission.self.load(permission.getId(), {
            fetch: ['Project', 'User', 'Role']
        });
    }  

1 个答案:

答案 0 :(得分:1)

这是AppSDK中一个长期存在的奇怪缺陷 - 对不起它让你失望!我试图找到另一个stackoverflow帖子,但也许这里还没有被问到。

无论如何,它失败的原因是Project字段被标记为只读,即使在创建时需要它。因此,即使您明确指定了代理,代理也永远不会发送到项目字段。

解决方法是在创建和保存新记录之前将项目字段标记为可持久。

model.getField('Project').persist = true;