<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>article Hierarchical relationships in Security Rules for Qlik Sense in Official Support Articles</title>
    <link>https://community.qlik.com/t5/Official-Support-Articles/Hierarchical-relationships-in-Security-Rules-for-Qlik-Sense/ta-p/1711781</link>
    <description>&lt;P&gt;Inside of Qlik Sense, user access is proscribed by the security rules which are configured in the deployment. When designing a security rule framework, it is important to understand the hierarchical relationships between different resource filters in order to ensure that the rule performs as intended.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Streams &amp;gt; Apps &amp;gt; App.Objects&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://qlik.my.salesforce.com/servlet/servlet.ImageServer?id=015D0000005Fpr0&amp;amp;oid=00D20000000IGPX&amp;amp;lastMod=1518440224000" border="0" alt="User-added image" /&gt;&lt;BR /&gt;&lt;BR /&gt;As illustrated above. Apps are in Streams. This means that you can use inheritance to cascade the intended action from the action assigned at the Stream level. This is used in this portion of the default&amp;nbsp;&lt;STRONG&gt;Stream&lt;/STRONG&gt;&amp;nbsp;security rule:&lt;/P&gt;
&lt;PRE&gt;(resource.resourcetype = "App" and resource.stream.HasPrivilege("read"))&lt;/PRE&gt;
&lt;P&gt;The meaning of this condition is that the action will be applied to Apps where the user has read rights to the stream.&lt;BR /&gt;&lt;BR /&gt;The same hierarchy exists in Apps &amp;lt;&amp;gt; App.Objects. App.Objects belong to apps and thus you can inherit rights from the App or Stream level. This is used in this portion of the default&amp;nbsp;&lt;STRONG&gt;Stream&lt;/STRONG&gt;&amp;nbsp;security rule:&lt;/P&gt;
&lt;PRE&gt;((resource.resourcetype = "App.Object" and resource.published ="true" and resource.objectType != "app_appscript" 
and resource.objectType != "loadmodel") and resource.app.stream.HasPrivilege("read"))&lt;/PRE&gt;
&lt;P&gt;The meaning of this condition is that the action will be applied to an App's Objects where the object is (a) published and (b) not an app_appscript or loadmodel type of App.Object when the user has read rights on the stream.&lt;/P&gt;
&lt;P&gt;Apps &amp;gt; Tasks&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://qlik.my.salesforce.com/servlet/servlet.ImageServer?id=015D0000005be9Q&amp;amp;oid=00D20000000IGPX&amp;amp;lastMod=1529345596000" border="0" alt="User-added image" /&gt;&lt;BR /&gt;&lt;BR /&gt;As illustrated above, Tasks are applied to Apps.&amp;nbsp;This means that you can use inheritance to cascade the intended action from the action assigned at the App level. For example:&lt;/P&gt;
&lt;PRE&gt;Filter: ReloadTask*
Action: Read, Update, Delete
Condition: ((user.name="TaskAdmin"))and (resource.App.HasPrivilege("read"))&lt;/PRE&gt;
&lt;P&gt;In this rule, the user with the name TaskAdmin is able to read / update / delete all tasks which are associated with Apps which they already have Read rights to.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Note:&amp;nbsp;&lt;/STRONG&gt;As of Qlik Sense April 2018, there is no logical relationship between tasks and triggers. So an administrator cannot use inheritance for this resource type.&lt;/LI&gt;
&lt;/UL&gt;</description>
    <pubDate>Thu, 11 Nov 2021 15:17:06 GMT</pubDate>
    <dc:creator>Andre_Sostizzo</dc:creator>
    <dc:date>2021-11-11T15:17:06Z</dc:date>
    <item>
      <title>Hierarchical relationships in Security Rules for Qlik Sense</title>
      <link>https://community.qlik.com/t5/Official-Support-Articles/Hierarchical-relationships-in-Security-Rules-for-Qlik-Sense/ta-p/1711781</link>
      <description>&lt;P&gt;Inside of Qlik Sense, user access is proscribed by the security rules which are configured in the deployment. When designing a security rule framework, it is important to understand the hierarchical relationships between different resource filters in order to ensure that the rule performs as intended.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Streams &amp;gt; Apps &amp;gt; App.Objects&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://qlik.my.salesforce.com/servlet/servlet.ImageServer?id=015D0000005Fpr0&amp;amp;oid=00D20000000IGPX&amp;amp;lastMod=1518440224000" border="0" alt="User-added image" /&gt;&lt;BR /&gt;&lt;BR /&gt;As illustrated above. Apps are in Streams. This means that you can use inheritance to cascade the intended action from the action assigned at the Stream level. This is used in this portion of the default&amp;nbsp;&lt;STRONG&gt;Stream&lt;/STRONG&gt;&amp;nbsp;security rule:&lt;/P&gt;
&lt;PRE&gt;(resource.resourcetype = "App" and resource.stream.HasPrivilege("read"))&lt;/PRE&gt;
&lt;P&gt;The meaning of this condition is that the action will be applied to Apps where the user has read rights to the stream.&lt;BR /&gt;&lt;BR /&gt;The same hierarchy exists in Apps &amp;lt;&amp;gt; App.Objects. App.Objects belong to apps and thus you can inherit rights from the App or Stream level. This is used in this portion of the default&amp;nbsp;&lt;STRONG&gt;Stream&lt;/STRONG&gt;&amp;nbsp;security rule:&lt;/P&gt;
&lt;PRE&gt;((resource.resourcetype = "App.Object" and resource.published ="true" and resource.objectType != "app_appscript" 
and resource.objectType != "loadmodel") and resource.app.stream.HasPrivilege("read"))&lt;/PRE&gt;
&lt;P&gt;The meaning of this condition is that the action will be applied to an App's Objects where the object is (a) published and (b) not an app_appscript or loadmodel type of App.Object when the user has read rights on the stream.&lt;/P&gt;
&lt;P&gt;Apps &amp;gt; Tasks&lt;/P&gt;
&lt;P&gt;&lt;IMG src="https://qlik.my.salesforce.com/servlet/servlet.ImageServer?id=015D0000005be9Q&amp;amp;oid=00D20000000IGPX&amp;amp;lastMod=1529345596000" border="0" alt="User-added image" /&gt;&lt;BR /&gt;&lt;BR /&gt;As illustrated above, Tasks are applied to Apps.&amp;nbsp;This means that you can use inheritance to cascade the intended action from the action assigned at the App level. For example:&lt;/P&gt;
&lt;PRE&gt;Filter: ReloadTask*
Action: Read, Update, Delete
Condition: ((user.name="TaskAdmin"))and (resource.App.HasPrivilege("read"))&lt;/PRE&gt;
&lt;P&gt;In this rule, the user with the name TaskAdmin is able to read / update / delete all tasks which are associated with Apps which they already have Read rights to.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;Note:&amp;nbsp;&lt;/STRONG&gt;As of Qlik Sense April 2018, there is no logical relationship between tasks and triggers. So an administrator cannot use inheritance for this resource type.&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 11 Nov 2021 15:17:06 GMT</pubDate>
      <guid>https://community.qlik.com/t5/Official-Support-Articles/Hierarchical-relationships-in-Security-Rules-for-Qlik-Sense/ta-p/1711781</guid>
      <dc:creator>Andre_Sostizzo</dc:creator>
      <dc:date>2021-11-11T15:17:06Z</dc:date>
    </item>
  </channel>
</rss>

