首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >集合wsapi权限一致性

集合wsapi权限一致性
EN

Stack Overflow用户
提问于 2015-02-26 19:12:16
回答 1查看 97关注 0票数 0

拉力权限是一致的还是最终一致的?因为我编写的许多工作区和项目权限测试都失败了。两个月前他们经过了。

我所做的是创建一个工作区权限,然后在create服务器的响应之后立即为该权限设置一个GET,但是我得到了旧的、陈旧的数据。

我再次注意到:我所有的WSAPI权限测试都是在2个月前通过的,而且我的代码中没有任何更改,所以我假设WSAPI端有一些变化。

--

一些额外的信息:我正在使用节点集合库,并在此基础上编写了一个薄包装库来编辑权限。

此外,这可能与此无关,但我在创建工作区权限时会收到这些警告,但我不明白为什么。我需要指定所有这些来创建工作区权限!

代码语言:javascript
复制
Warnings:
  [ 'Ignored JSON element workspacepermission.Workspace during processing of this req... (length: 85)',
    'Ignored JSON element workspacepermission.User during processing of this request.',
    'Ignored JSON element workspacepermission.Role during processing of this request.' 
  ],

编辑:我正在使用的代码

代码语言:javascript
复制
rallyUtil.getWorkspacePermission = function(personRef){
    var deferred = Q.defer();
    restApi.query({
        type: 'workspacepermission',
        limit: Infinity, 
        fetch: ['Workspace', 'User', 'Role', 'ObjectID', 'UserName', 'Name'],
        query: queryUtils.where('User', '=', personRef),
        scope: { workspace: workspaceRef }
    }, function(error, result) {
        if(error) deferred.reject(error);
        else deferred.resolve(_.find(result.Results, function(wPermission){ return areSameRefs(wPermission.Workspace._ref, workspaceRef); }));
    });
    return deferred.promise;    
};
rallyUtil.setWorkspacePermission = function(personRef, permission){
    var deferred = Q.defer();
    restApi.create({
        type: 'workspacepermission',
        limit: Infinity,
        data: { Workspace: workspaceRef, User:personRef, Role:permission },
        scope: { workspace: workspaceRef },
    }, function(error, result) {
        if(error) deferred.reject(error);
        else deferred.resolve();
    });
    return deferred.promise;    
};
rallyUtil.setWorkspaceAdmin = function(personRef){
    return rallyUtil.setWorkspacePermission(personRef, 'Admin');
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-27 19:57:18

您可以通过消除重复的承诺来稍微简化代码。所有的restApi方法都已经返回承诺(使用Q实现),这样您的setWorkspacePermission就可以变成这样:

代码语言:javascript
复制
rallyUtil.setWorkspacePermission = function(personRef, permission){
    return restApi.create({
        type: 'workspacepermission',
        data: { Workspace: workspaceRef, User:personRef, Role:permission },
        scope: { workspace: workspaceRef }
    });    
};

话虽如此,我不知道还会发生什么。创建返回是否成功地使用创建的记录?是否可能权限已经存在,这就是它忽略新权限的原因?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28750829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档