TFS工作项类型 - 基于权限访问字段

时间:2011-09-16 14:55:39

标签: tfs tfs2010 tfs-process-template


 我有工作项类型模板,我想分配权限更改下拉列表 新项目的默认值为“请求”,每个人都可以查看和阅读它。 如果用户在“[TEAM FOUNDATION] \ Approvers”或“[TEAM FOUNDATION] \ Developers”组中,他们可以更改此项目。

我遇到问题,如果用户不在任何一个组中,它将失败并且空白显示禁用字段。 我如何定义这些权限?

我对字段的定义如下。

<FIELD name="Approval" refname="Approval" type="String" reportable="dimension">
    <REQUIRED />
    <DEFAULT from="value" value="Requested" />
    <ALLOWEDVALUES>
      <LISTITEM value="Approved" />
      <LISTITEM value="Requested" />
      <LISTITEM value="Rejected" />
    </ALLOWEDVALUES>        
    <DEFAULT from="value" value="Requested" />
    <READONLY not="[TEAM FOUNDATION]\Approvers" />
    <READONLY not="[TEAM FOUNDATION]\Developers" />
    <HELPTEXT>Shows whether the task has been approved by management.</HELPTEXT>
  </FIELD>

1 个答案:

答案 0 :(得分:0)

这看起来很重。你的确切意图是什么? 也许使用WHEN块或将限制分为基本限制(在字段定义中)和状态或转换级别的特殊限制将解决您的问题?

<FIELD name="Approval" refname="Approval" type="String" reportable="dimension">
    <REQUIRED />
    <DEFAULT from="value" value="Requested" />
    <WHENNOT field="System.State" value="New">
      <READONLY not="[TEAM FOUNDATION]\Developers"/>
      <READONLY not="[TEAM FOUNDATION]\Approvers"/>
    </WHENNOT>
    <HELPTEXT>Shows whether the task has been approved by management.</HELPTEXT>
</FIELD>

<FIELD name="Approval" refname="Approval" type="String" reportable="dimension">
    <REQUIRED />
    <ALLOWEDVALUES>
      <LISTITEM value="Approved" />
      <LISTITEM value="Requested" />
      <LISTITEM value="Rejected" />
    </ALLOWEDVALUES>        
    <DEFAULT from="value" value="Requested" />
    <HELPTEXT>Shows whether the task has been approved by management.</HELPTEXT>
</FIELD>

<TRANSITION from="" to="New">
    <FIELDS>
        <FIELD refname="Approval">
            <READONLY not="[TEAM FOUNDATION]\Developers"/>
            <READONLY not="[TEAM FOUNDATION]\Approvers"/>
        </FIELD>
</TRANSITION>

顺便说一下:你应该用一个完整的“命名空间”来引用你的字段,例如: “My.Company.TfsFields.Common.Approval”或“My.Company.TfsFields.Bugs.IsRegression”