门户:为不同客户创建工单

在 iTop 门户中允许特定用户为其他组织或联系人创建工单。

本文档介绍如何在 iTop 门户中允许用户为其他客户创建工单。更多详细内容请参考 iTop 官方文档

目标

在现有的 iTop 门户(itop-portal 或任何其他门户)中,我们希望允许某些用户为自己以外的人创建工单。

假设我们有一个或创建一个新的配置文件 Business partner user,将其分配给这些用户。

范围(Scopes)

这些用户需要能够看到:

  • 他们需要为其创建工单的所有组织
  • 他们需要为其创建工单的所有联系人
  • 他们需要在其上创建工单的所有服务
  • 等等
<class id="Organization">
  <scopes>
    <scope id="portal-partner-user" _delta="define">
      <oql_view><![CDATA[SELECT Organization]]></oql_view>
      <allowed_profiles>
        <allowed_profile id="Business partner user"/>
      </allowed_profiles>
    </scope>
  </scopes>
</class>
<class id="Contact">
  <scopes>
    <scope id="portal-partner-user" _delta="define">
      <oql_view><![CDATA[SELECT Contact]]></oql_view>
      <allowed_profiles>
        <allowed_profile id="Business partner user"/>
      </allowed_profiles>
    </scope>
  </scopes>
</class>
<class id="Service">
  <scopes>
    <scope id="portal-partner-user" _delta="define">
      <oql_view><![CDATA[SELECT Service]]></oql_view>
      <allowed_profiles>
        <allowed_profile id="Business partner user"/>
      </allowed_profiles>
    </scope>
  </scopes>
</class>
<!-- 以及其他类如 ServiceSubcategory、Ticket 等 -->

砖块(Brick)

这些用户需要能够访问一个新的 BrowseBrick,用于选择客户合同(CustomerContracts):

<brick id="new-request-for-partner" xsi:type="Combodo\iTop\Portal\Brick\BrowseBrick" _delta="define">
  <active>true</active>
  <width>6</width>
  <rank>
    <default>11</default>
  </rank>
  <title>
    <default>Brick:Portal:NewRequest:Title</default>
  </title>
  <description>Brick:Portal:NewRequest:Title+</description>
  <decoration_class>
    <default>fc fc-new-request fc-2x</default>
  </decoration_class>
  <levels>
    <level id="1">
      <class>Organization</class>
      <tooltip_att>description</tooltip_att>
      <title>Class:Organization</title>
      <actions>
        <action id="drilldown" xsi:type="drilldown"/>
      </actions>
      <levels>
        <level id="1">
          <oql><![CDATA[SELECT CustomerContract]]></oql>
          <parent_att>org_id</parent_att>
          <name_att>name</name_att>
          <tooltip_att>service_id_friendlyname</tooltip_att>
          <title>Class:CustomerContract</title>
          <actions>
            <action id="create_from_this" xsi:type="create_from_this">
              <class>UserRequest</class>
              <icon_class>fc fc-new-request fc-1-6x fc-flip-horizontal</icon_class>
              <rules>
                <rule id="contact-to-userrequest"/>
                <rule id="contract-to-userrequest"/>
              </rules>
            </action>
            <action id="view" xsi:type="view"/>
          </actions>
          <levels/>
        </level>
      </levels>
    </level>
  </levels>
  <browse_modes>
    <availables>
      <mode id="list"/>
    </availables>
    <default>list</default>
  </browse_modes>
  <security>
    <allowed_profiles><![CDATA[SELECT URP_Profiles WHERE name = 'Business partner user']]></allowed_profiles>
  </security>
  <data_loading>auto</data_loading>
</brick>

表单(Form)

创建或修改工单创建表单,以允许选择请求人和服务子类别:

<form id="ticket-create">
  <twig _delta="redefine">
    <div class="row">
      <div class="col-sm-9">
        <div class="row">
          <div class="col-sm-6">
            <div class="form_field" data-field-id="service_id" data-field-flags="mandatory"/>
            <div class="form_field" data-field-id="impact"/>
          </div>
          <div class="col-sm-6">
            <div class="form_field" data-field-id="servicesubcategory_id" data-field-flags="mandatory"/>
            <div class="form_field" data-field-id="urgency"/>
          </div>
        </div>
        <div class="row">
          <div class="col-sm-12">
            <div class="form_field" data-field-id="title"/>
          </div>
        </div>
      </div>
      <div class="col-sm-3">
        <div class="form_field" data-field-id="service_details"/>
      </div>
    </div>
    <div>
      <div class="form_field" data-field-id="description"/>
      <div class="form_field" data-field-id="contacts_list"/>
    </div>
  </twig>
  </properties>
</form>

原文:https://www.itophub.io/wiki/page?id=3_2_0:customization:portal_howto_ticket_multi_org

版本:3_2_0/customization/portal_howto_ticket_multi_org.txt · Last modified: 2025/08/12 15:12 by 127.0.0.1