使用群組和權限外掛程式定義群組、小組和權限
您可以定義安全性群組來控制對 Team 專案中功能區域的存取。 除了 Visual Studio Team Foundation Server 中的預設安全性群組之外,您還可以自訂群組和權限外掛程式,來設定 Team 專案的初始群組、群組成員和安全性權限。 您可以使用這個外掛程式,來定義群組和小組、加入群組和使用者做為群組的成員,以及將權限授與群組。
本主題說明用於群組和權限外掛程式檔案之 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 項目,預先設定指派給小組的反覆項目。 外掛程式會使用下列程式碼片段。 在本例中,會為預設小組定義三個反覆項目。
重要
您必須指派反覆項目路徑,這些路徑會對應至類別外掛程式檔案中所定義的路徑。請參閱 在 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 是 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 的選擇性子項目。 將 Team 專案設定為預設小組,並且選擇性地使用 iterationPath 項目來指定小組里程碑。 |