2011-09-16 85 views
2


我有工作项类型模板,我想将分配权限更改为 默认值为新项目的“请求”,每个人都可以看到并且阅读。 如果用户在“[TEAM FOUNDATION] \ Approvers”或“[TEAM FOUNDATION] \ Developers”组中,他们可以更改此项目。TFS工作项目类型 - 基于权限的字段访问

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

我对字段的定义如下。

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

回答

0

这似乎是一个沉重的one.What你的确切意图? 也许使用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> 

顺便说一句:你应该有一个整体 “命名空间” refName你的领域,例如“My.Company.TfsFields.Common.Approval”或“My.Company.TfsFields.Bugs.IsRegression”

+0

此操作的目的是创建管理员可以访问的选项,以批准他们希望开发人员处理此项目,开发人员可以选择修改它,因为可能存在需要覆盖管理决策的选项。 – cpoDesign

+0

为什么我应该将用户refname命名为namespace? – cpoDesign

+1

这将使第三方插件与您自己的字段或其他派对字段一起工作:假设您创建了字段“批准”,然后尝试安装/合并使用批准字段本身的扩展名(例如用于与其他内部目的数据类型)如果你的字段是“MyCompany.Approval”,而另一个字段是“OtherExtension.Approval”,这是没有问题的,但是如果不使用名称空间会造成很大的麻烦。 (请记住:创建后不能更改字段名称或refname)(http://msdn.microsoft.com/zh-cn/library/ms194941(v=VS.100).aspx#ReferenceName) – eFloh