使用组和权限插件定义组、团队和权限
可以定义安全组以控制对团队项目中的功能区域的访问。 除了 Visual Studio Team Foundation Server 中的默认安全组之外,还可以通过自定义组和权限插件来配置团队项目的初始组、组成员和安全权限。 借助此插件,可以定义组、团队、将组和用户作为成员添加到组以及向组授予权限。
本主题介绍 groups、iterationPath、members、permissions 和 teamsettings 元素的语法结构,这些元素在组和权限插件的文件中使用。 有关如何使用这些元素的详细信息,请参阅配置初始组、团队、成员和权限。
组插件的名称和位置
组和权限插件通过 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 是 groups 和 Children 的可选子元素。 定义组或团队及其权限和成员。 |
groups |
|
groups 是组和权限插件的 taskXml 的必需子元素。 包含组和权限定义。 |
iterationPath |
|
iterationPath 是 iterationPaths 的必需子元素。 指定团队里程碑。 |
iterationPaths |
|
iterationPaths 是 teamsettings 的可选子元素。 指定工作组里程碑。 |
member |
有关如何指定默认组的信息,请参阅 Team Foundation Server 中定义的组宏和默认组。 |
member 是 members 的必需子元素。 指定要添加为另一个组的成员的某个组的名称。 可以创建组,并自动使用 Team Foundation Server 中的默认组、以前定义的项目组以及 Active Directory 中的组和用户来填充它们。 |
members |
|
members 是 group 的可选子元素。 指定要添加到组的成员的集合。 |
permission |
其中,以下定义适用于每个特性:
|
permission 是 permissions 的必需子元素。 指定要应用于组的权限。 |
permissions |
|
permissions 是 group 的必需子元素。 指定要应用于组的权限的集合。 |
teamsettings |
|
teamsettings 是 group 的可选子元素。 将团队项目配置为默认团队,并且可以选择使用 iterationPath 元素指定团队里程碑。 |