使用组和权限插件定义组、团队和权限

可以定义安全组以控制对团队项目中的功能区域的访问。 除了 Visual Studio Team Foundation Server 中的默认安全组之外,还可以通过自定义组和权限插件来配置团队项目的初始组、组成员和安全权限。 借助此插件,可以定义组、团队、将组和用户作为成员添加到组以及向组授予权限。

本主题介绍 groups、iterationPath、memberspermissionsteamsettings 元素的语法结构,这些元素在组和权限插件的文件中使用。 有关如何使用这些元素的详细信息,请参阅配置初始组、团队、成员和权限

组插件的名称和位置

组和权限插件通过 GroupsandPermissions.xml 插件文件进行定义,这必须符合 Gss.xsd 文件中定义的架构定义。 你可从 Microsoft 网站上的以下页面中下载过程模板的架构文件:Visual Studio Team Foundation 的过程模板和工作项架构

下表总结了 Microsoft Solutions Framework (MSF) 过程模板的文件名、文件夹名称和插件名称。

文件名:

GroupsandPermissions.xml

文件夹名称:

组和权限

插件名称:

Microsoft.ProjectCreationWizard.Groups

备注

可以更改 XML 文件和文件夹的名称,但不能更改插件名称。Visual Studio Team Foundation Server 并不包括用于部署客户端插件、策略或其他修改的机制。如果你希望部署此类功能,则必须使用你自己的分发和安装程序。

在组和权限插件中,可在 taskXml 元素中指定一个或多个任务及其依赖关系。 一般而言,可对要为过程创建的每个安全组指定一个任务。 有关如何指定任务的详细信息,请参阅定义用于处理插件的任务

定义组

使用 group 元素在 Team Foundation Server 中指定新安全组。

<group name="GroupName" description="GroupDescription"></group>

下面的示例演示如何创建一个名为 Reader 的组:

<task id="GroupCreation1" 
      name="Create Groups and Permissions" 
      plugin="Microsoft.ProjectCreationWizard.Groups" 
      completionMessage="Groups and Permissions created.">
   <taskXml>
      <groups>
         <group name="Readers"
                description="A group for users who have read access across the project">
            <permissions>
               <!-- permissions -->
            </permissions>
         </group>
      </groups>
   </taskXml>
</task>

定义成员

使用 member 元素在 Team Foundation Server 中将组分配为安全组的成员 。

<member name="MemberName" ></member>

备注

作为团队的组 (isTeam="true") 不能是组的成员。

下面的示例演示如何将 TestGroup1 添加为 TestGroup2 的成员。

<task id="GroupCreation1" 
    <taskXml>
      <groups>
        <group name="TestGroup1" description="Test group 1.  Contains no members out of the box.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
          </permissions>
        </group>
        <group name="TestGroup2" description="Test group 2.  Contains TestGroup1 and Project Administrators.">
          <permissions>
            <permission name="GENERIC_READ" class="PROJECT" allow="true" />
          </permissions>
          <members>
            <member name="TestGroup1" />
            <member name="$$PROJECTADMINGROUP$$" />
          </members>
        </group>
      </groups>
    </taskXml>
</task>

定义团队和团队设置

在默认组和权限插件文件中,@defaultTeam 宏在根区域路径创建默认团队。 可以通过在分类插件文件中包含其他区域路径来更改此结构。 通过使用 teamsettings 元素,可以预配置分配给团队的迭代。 该插件使用下面的代码段。 在此示例中,为默认团队定义三个迭代。

重要

必须分配与分类插件文件中定义的路径对应的迭代路径。请参阅在分类插件中定义初始区域和迭代

<group name="@defaultTeam">
   <permissions>
      <permission name="GENERIC_READ" class="PROJECT" allow="true" />
   </permissions>
   <members>
      <member name="@creator"/>
   </members>
   <teamSettings areaPath="Area">
      <iterationPaths backlogPath="Iteration">
         <iterationPath path="Iteration 1" />
         <iterationPath path="Iteration 2" />
         <iterationPath path="Iteration 3" />
      </iterationPaths>
   </teamSettings>
</group>

还可以在团队项目中定义其他团队。 可通过定义一个组并将 isTeam 特性赋值为 true 来执行此操作。 下面的示例演示如何定义团队及其权限、成员和初始冲刺 (sprint) 分配。 指定团队项目的默认团队设置。

<group name="Dream Team" isTeam="true" description="Next generation work">
   <permissions>
      <permission name="GENERIC_READ" class="PROJECT" allow="true" />
   </permissions>
   <members>
      <member name="@creator"/>
   </members>
   <teamSettings areaPath="Area">
      <iterationPaths backlogPath="Iteration">
         <iterationPath path="Iteration 1" />
         <iterationPath path="Iteration 2" />
         <iterationPath path="Iteration 3" />
      </iterationPaths>
   </teamSettings>
</group>

定义权限

必须为创建的每个组指定权限。 可使用 permission 元素实现此目的。

<permission name="PermissionName" class="ClassName" allow="true | false"/>

下面的示例演示如何向访问者安全组授予权限,以便成员可以查看有关团队项目的信息,但不能修改该信息。

<group name="Readers" description="A group for users who have read access across the project">
   <permissions>
     <permission name="GENERIC_READ" class="PROJECT" allow="true" />
     <permission name="GENERIC_READ" class="CSS_NODE" allow="true" />
     <permission name="WORK_ITEM_READ" class="CSS_NODE" allow="true" />
   </permissions>
</group>

组元素参考

下表介绍用于为团队项目定义初始组和权限的元素。 在组和权限插件文件中的 taskXml 容器元素内指定这些元素。 有关此元素的信息,请参见定义用于处理插件的任务

警告

Gss.xsd 架构文件不会定义 property 或 properties 元素。在你上载过程模板时,过程模板管理器会先验证这些元素,然后再将它们存储在 Team Foundation Server 中。

groups 和 group(组和权限)元素与 groups 和 group(过程模板)元素不同。有关后一对元素的信息,请参阅 过程模板 XML 元素引用

group

<group name="GroupName" isTeam="true | false" description="GroupDescription">
   <permissions> . . . </permissions>
   <members> . . . </members>
</group>

以下定义适用于每个特性:

  • name:必需。 指定组的名称。 组的名称长度必须是 1 到 255 个字符。

  • isTeam:可选。 将组标识为团队,这支持小型组以在团队项目中组织其工作。

  • description:在组不是团队时是必需的。 指定组的说明。 说明会显示在 Team Web Access 的安全页面中。

group 是 groups 和 Children 的可选子元素。

定义组或团队及其权限和成员。

groups

<groups>
   <group> . . . </group>
</groups>

groups 是组和权限插件的 taskXml 的必需子元素。

包含组和权限定义。

iterationPath

<iterationPath path="IterationName" />

iterationPath 是 iterationPaths 的必需子元素。

指定团队里程碑。

iterationPaths

<iterationPaths backlogPath="BacklogPathName">
. . .      </iterationPaths>

iterationPaths 是 teamsettings 的可选子元素。

指定工作组里程碑。

member

<member name="MemberName" ></member>

有关如何指定默认组的信息,请参阅 Team Foundation Server 中定义的组宏和默认组

member 是 members 的必需子元素。

指定要添加为另一个组的成员的某个组的名称。 可以创建组,并自动使用 Team Foundation Server 中的默认组、以前定义的项目组以及 Active Directory 中的组和用户来填充它们。

members

<members>
   <member> . . . </member>
</members>

members 是 group 的可选子元素。

指定要添加到组的成员的集合。

permission

<permission name="PermissionName" class="ClassName" allow="true | false" />

其中,以下定义适用于每个特性:

  • name:必需。 指定权限的名称。 有关详细信息,请参阅配置初始组、团队、成员和权限中介绍可以指定为权限的每个类和名称组合的表。

  • class:必需。 标识要在其中授予组权限的类或区域。 下面的值有效:NAMESPACE(集合级别)、PROJECT(项目级别)、CSS_NODE(区域节点)和 ITERATION_NODE(迭代节点)。

  • allow:可选。 指定指示是否允许权限的 true 或 false 值。

permission 是 permissions 的必需子元素。

指定要应用于组的权限。

permissions

<permissions >
   <permission> . . . </permissions>
</permissions >

permissions 是 group 的必需子元素。

指定要应用于组的权限的集合。

teamsettings

<teamSettings areaPath="Area">
. . .
</teamSettings>

teamsettings 是 group 的可选子元素。

将团队项目配置为默认团队,并且可以选择使用 iterationPath 元素指定团队里程碑。

请参见

概念

配置初始组、团队、成员和权限

控制对功能区域的访问

管理 TFS 中用户或组

自定义过程模板

其他资源

将规则应用于工作项字段