Restrictions for universal Tab

shashanks445952

09-06-2020

Hi everyone,

 

How can I add restrictions for the universal Tab ?

Scenario : If any workflow operator login's then he should be able to see only his folder specific workflows, this functionality works fine under explorer tab but under Universal Tab i can still see workflows which are created under Profile & Targets folder or Global Administration Folder .Similar thing is happening for Web applications and Recipients . Any suggestions how can i restrict them .

Adobe.PNG

Note : Folder specific permission are already given to workflow operators, campain managers.

 

Thanks,

Shashank

 
 

 

Accepted Solutions (1)

Accepted Solutions (1)

Answers (1)

Answers (1)

_Manoj_Kumar

MVP

09-06-2020

Hello @shashanks445952 ,

 

You will have to make changes to the Dynamics Javascript Pages to restrict the access.

 

There are different pages available for each tab. You modify the pages as per your requirement.

Here is the screenshot that shows the location of Dynamic JS Pages:

manojk62306941_0-1591716045265.png

 

 

In these dynamic Javascript pages you can get the operator instance and check for the permissions.

 

Code to get the Operator ID:

var lOperatorId = Number(request.getParameter("id"));

 var qDef =
      <queryDef schema="xtk:operator" operation="getIfExists" ignoreDeleteStatus="true">
        <select>
          <node expr="@id"/>
          <node expr="[.]"/>
          <node expr="@lastModified"/>
          <node expr="DaysDiff(DateOnly(GetDate()), DateOnly(@lastModified))" alias="@lastUpdateInDays"/>
          <node expr="@name"/>
          <node expr="@email"/>
          <node expr="@mobilePhone"/>
          <node expr="@department"/>
          <node expr="@securityZone" analyze="true"/>
          <node expr="reportsTo"/>
          <node expr="[@folder-id]"/>
          <node expr="[@reportsTo-id]"/>
          <node expr="@externalId"/>
          <node expr="localOrgUnit"/>
          <node expr="[@localOrgUnit-id]"/>
          <node expr="@disable"/>
          <node expr="[access/@noConsoleCnx]"/>
          <node expr="desc"/>
          <node expr="[folder/parent/@fullName]+[folder/@label]" alias="@folder"/>
          <node expr="operatorGroup">
            <node expr="group"/>
            <node expr="[group/@type]" analyze="true"/>
            <orderBy>
              <node expr="group"/>
            </orderBy>
          </node>
        </select>
        <where>
          <condition expr={"@id="+lOperatorId}/>
        </where>
      </queryDef>;

var query = xtk.queryDef.create(qDef);
      operator = query.ExecuteQuery()

 

Then you can check the permissions by writing something like this:

xtk.folder.HasFolderWriteRight(operator.@["FOLDER_ID_HERE"]);

 

If the user has the right access then you can allow the user to see the pages else you can print the access denied message.

 

Let me know if that helps.