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

发布于 2024-12-05 03:27:54 字数 874 浏览 1 评论 0原文


我有工作项类型模板,我想将更改下拉列表的权限分配给 新项目的默认值为“已请求”,每个人都可以看到和阅读它。 如果用户位于“[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>

I have work item type template where i want to assign right to change drop down list to
default value as "Requested" for new item and every one can see and read it.
If user is in group "[TEAM FOUNDATION]\Approvers" or "[TEAM FOUNDATION]\Developers" they are able to change this item.

I have a problem if user is not in either of the groups it will fail and blank display disabled field.
How do i define these permissions?

My definition of field is below.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静水深流 2024-12-12 03:27:54

这似乎是一个沉重的负担。你的具体意图是什么?
也许使用 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”

This seems like a heavy one.What is your exact intend?
Maybe using a WHEN block or splitting the restrictions into basic ones (at the field definition) and special ones at state or transition level will solve your problem?

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

or

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

By the way: You should refName your fields with a whole "Namespace", e.g. "My.Company.TfsFields.Common.Approval" or "My.Company.TfsFields.Bugs.IsRegression"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文