Sidebar

Using iTop

Creating your iTop

iTop Customization

"How to" examples
DataModel

User Interface

Automation & Ticket management

Portal Customization

:: Version 3.2.0 ::

Portal: Create Ticket for various Customers

name:
How to allow Portal Users to create Ticket for
type:
How To
audience:
Administrator, Integrator, Developer
level:
Advanced
keyword:
Portal, Customization
iTop version:
2.3.0

Objective

Within an existing iTop portal (itop-portal or any other portal), we want to allow some Users to Create Ticket not for themself but for someone else

Let's decide that we have or we create a new Profile Business partner user, which will be given to those Users

Scopes

Those Users will need to see

  • All Orgs for whom they need to create Tickets
  • All Contacts for whom they need to create Tickets
  • All Services on which they need to create Tickets
itop-design
        <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>
        <!-- And so on with other classes such as ServiceSubcategory, Ticket, ... -->

Brick

Those Users will need to have access to a new BrowseBrick to select the CustomerContracts

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

Create or modify the Ticket creation form, to allow selection of the caller, and service sub-category

itop-design
        <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>
3_2_0/customization/portal_howto_ticket_multi_org.txt · Last modified: 2025/08/12 15:12 by 127.0.0.1
Back to top
Contact us