使用群組和權限外掛程式定義群組、小組和權限

您可以定義安全性群組來控制對 Team 專案中功能區域的存取。 除了 Visual Studio Team Foundation Server 中的預設安全性群組之外,您還可以自訂群組和權限外掛程式,來設定 Team 專案的初始群組、群組成員和安全性權限。 您可以使用這個外掛程式,來定義群組和小組、加入群組和使用者做為群組的成員,以及將權限授與群組。

本主題說明用於群組和權限外掛程式檔案之 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 項目,預先設定指派給小組的反覆項目。 外掛程式會使用下列程式碼片段。 在本例中,會為預設小組定義三個反覆項目。

重要

您必須指派反覆項目路徑,這些路徑會對應至類別外掛程式檔案中所定義的路徑。請參閱 在 Classification 外掛程式中定義初始區域和反覆項目

<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>

您也可以在 Team 專案中定義其他小組, 方法是定義群組,並將 isTeam 屬性指定為 true。 下列範例示範如何定義小組及其權限、成員,以及初始衝刺指派。 請為 Team 專案指定預設小組設定。

<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"/>

下列範例示範如何將權限授與 Reader 安全性群組,讓成員只能檢視 Team 專案的相關資訊,而無法修改該資訊。

<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>

群組項目參考

下表說明您用來定義 Team 專案之初始群組和權限的項目。 您可以在群組和權限外掛程式檔案的 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:選擇項。 將群組識別為小組,支援小型群組在 Team 專案內組織其工作。

  • 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 的選擇性子項目。

將 Team 專案設定為預設小組,並且選擇性地使用 iterationPath 項目來指定小組里程碑。

請參閱

概念

設定初始群組、小組、成員和權限

控制功能區域的存取權

管理 TFS 中的使用者或群組

自訂流程範本

其他資源

將規則套用至工作項目欄位