限制在Team Foundation Server 2010中仅访问“错误”

时间:2011-03-02 14:59:52

标签: visual-studio tfs

我想访问公司的所有员工以访问TFS服务器,但我只是想让他们有权查看/编辑和创建错误,只是错误,无法访问任何查看任务,源代码或其他什么,只是错误,这怎么可能?

3 个答案:

答案 0 :(得分:2)

作为备用选项,您可以在项目区域级别控制所有工作项访问。

TFS项目有“区域”。它们可以设置成您想要的名称。许多人通过功能或应用程序“部分”来组织这些。

您可以限制对所有工作区域的访问,但将访问权限保持为“分类”或“错误报告”区域。 (或者,如果您只想完全关闭人员,只需将其从根“区域”节点中删除。)

要执行此操作,请在团队资源管理器中右键单击您的项目,然后选择团队项目设置。从子菜单中选择区域和迭代

设置您的区域:

Areas And Iterations

选择“开发”区域,然后单击左下角的“安全”按钮。

在生成的对话框中,您可以根据需要设置权限,以限制查看和编辑对该区域中工作项的访问权限。然后,当您的开发人员制作工作项目(任务等)时,请确保他们正确设置区域。这将限制对这些工作项的访问。

由于您打开“错误报告”区域,用户仍然可以向该区域添加错误(或遗憾的任务)。一旦您计划处理该错误,您可以将其移动到开发区域。

这有效,但有几个缺点:

  1. 用户无法在开发过程中看到他们报告的Bug的状态。 Sharepoint仪表板报告可以帮助您查看该状态。
  2. 用户仍然可以制作非bug工作项。这意味着他们可以选择创建任务等。
  3. 另一种方法是使用TFS的仅工作项视图。这是一个tfs门户,可以使用TFS 2010自动设置,可以安装在TFS 2008中。它允许用户输入工作项并查看他们输入的工作项。但就是这样。这是一个相当有限的观点,但它可能适合您。 (但请记住,一个人只能查看由他们创建的工作项。)

    主要好处是您无需为用户购买CAL许可证即可使用仅工作项视图(WIOV)。根据您计划访问的用户数量,这可以为您节省很多钱。

    以下是有关该链接的链接:http://msdn.microsoft.com/en-us/library/cc668124.aspx

    作为旁注,如果你愿意的话,WIOV和区域安全都可以很好地协同工作。

    编辑:重新阅读您的评论后,我想您可能一直在询问如何限制用户访问来源。为此,打开Source Control Explorer并右键单击项目或根节点,然后选择属性。从那里,您选择安全选项卡,您可以从那里拒绝访问源代码管理。

答案 1 :(得分:1)

这可以用于创建,但不能查看(据我所知)。但是,这是很多工作。为此,您必须编辑工作项类型模板。

基本上,您可以编辑非Bug模板,以便只有特定的一组人拥有所有字段的权限。您还必须限制转换(即将非错误工作项移动到“已创建”(或者您的“新”工作项状态)。

这是很多编辑工作,但可以完成。

这篇博客文章提供了基本的想法:

http://social.msdn.microsoft.com/forums/en-US/tfsadmin/thread/178bc809-0035-45ee-9e0a-65ac412186f1/

这是 Not 参数的文档,用于拒绝转换权限:

http://msdn.microsoft.com/en-us/library/aa337653.aspx

最后,这是ValidUser文档:

http://msdn.microsoft.com/en-us/library/dd997577.aspx

答案 2 :(得分:1)

我们有两个应用程序层服务器,一个仅由客户端使用,因此我编辑了用于TFS Web访问的JS源代码,不允许添加除错误,变更请求或问题之外的任何内容。

在(TFS Deploy文件夹)\ Application Tier \ Web Access \ Web \ Resources \ Scripts中,您可以编辑DocumentService.js文件:

//Opens new workitem editor with specified workitem type.
//workItemType: WorkItem type name.
DocumentService.newWorkItem = function(workItemType, tfsLocator)
{

    if (JsUtility.stringIsNullOrEmpty(workItemType))
        throw "Unspecified WorkItem Type Name.";

    if (workItemType != 'Bug' && workItemType != 'Change Request' && workItemType != 'Issue') {
    alert('Only Bugs, Change Requests and Issues can be created from this site');
    }
    else {    
    var _url = this.createUrl(CommonUrls.WorkItemEditor, { wit: workItemType }, tfsLocator);
    return WindowHelpers.openWindow(_url, "_blank"); }

}