Hello,
I would to limit the available schema taht user can select in query.
I know I'm not suppose to extend xtkSchema but I know that it's here that it can be done, so I had the following sysfilter
<sysFilter name="test">
<condition enabledIf="hasNamedRight('admin')=false" expr="@namespace = 'cus'"/>
</sysFilter>
but the hasNamesRight function didn't seem to work, did someone know why ?
I use an Adobe Campaign v7 build 8853
Thanks for your help,
Mathieu
Solved! Go to Solution.
Views
Replies
Total Likes
Hi Mathieu,
You have made a mistake, use this to limit this access to Admin users only, non-admin will not be able to access this schema.
<sysFilter name="readAccess">
<condition enabledIf="hasNamedRight('admin')=false" expr="FALSE"/>
</sysFilter>
<sysFilter name="writeAccess">
<condition enabledIf="hasNamedRight('admin')=false" expr="FALSE"/>
</sysFilter>
Or Use following with a valid id to provide access to only one account, there is no login id like admin:
<sysFilter name="readAccess">
<condition enabledIf="$(login)!=1053" expr="FALSE"/>
</sysFilter>
<sysFilter name="writeAccess">
<condition enabledIf="$(login)!=1053" expr="FALSE"/>
</sysFilter>
After that, you need to regenerate the schemes and delete cache.
Hope this helps!
Amit
Hi Mathieu,
Although I don't know if this is possible in xtk :schema but you can try using the expression as enabledIf="hasNamedRight('admin')=true" . Also try to change the filtering attribute to accessibleIf or visibleIf to see if it works.
For more info on how to restrict display , follow this guide
Regards,
Adhiyan
Views
Replies
Total Likes
Hi Adhiyan,
Thanks for your answer, but I don't want to hide fields of a schema I wnat to hide schema itself.
I want that users don't have access to all the standard schemas but only the ones I create for them in the following screen, which correspond to xtkSchema :
Do you think it is possible ?
Regards,
Mathieu
Views
Replies
Total Likes
Hi Mathieu,
Maybe what's described here would better serve your purpose: Protecting schemas
Let me know,
Florent
Views
Replies
Total Likes
Hi Florent,
I just try it and put this code in a schema :
<sysFilter name="readAccess">
<condition enabledIf="$(login)!='admin'" expr="FALSE"/>
</sysFilter>
<sysFilter name="writeAccess">
<condition enabledIf="$(login)!='admin'" expr="FALSE"/>
</sysFilter>
If I understand with this sysfilter only the admin user will hava access to this schema, but if I connect with another account it is still avalaible in a query activity.
Did I do it wrong ?
Regards,
Mathieu
Views
Replies
Total Likes
Hi Mathieu,
You have made a mistake, use this to limit this access to Admin users only, non-admin will not be able to access this schema.
<sysFilter name="readAccess">
<condition enabledIf="hasNamedRight('admin')=false" expr="FALSE"/>
</sysFilter>
<sysFilter name="writeAccess">
<condition enabledIf="hasNamedRight('admin')=false" expr="FALSE"/>
</sysFilter>
Or Use following with a valid id to provide access to only one account, there is no login id like admin:
<sysFilter name="readAccess">
<condition enabledIf="$(login)!=1053" expr="FALSE"/>
</sysFilter>
<sysFilter name="writeAccess">
<condition enabledIf="$(login)!=1053" expr="FALSE"/>
</sysFilter>
After that, you need to regenerate the schemes and delete cache.
Hope this helps!
Amit
Hi Amit,
Thanks for your answer, I try the solution with the HasNamedRight condition and user without its named right can still make request on my scheme.
I do have regenerate it and delete my cache but it doesn't seem to work, here the xml of my scheme, as I only do some test it's really simple :
<srcSchema _cs="test (cus)" created="2017-08-18 21:49:28.000Z" createdBy-id="0" entitySchema="xtk:srcSchema"
img="xtk:schema.png" label="test" lastModified="2017-08-28 09:24:47.000Z"
mappingType="sql" md5="3F13A38D37ECB68ED77A28E18B84E7B2" modifiedBy-id="0"
name="test" namespace="cus" xtkschema="xtk:srcSchema">
<createdBy _cs="Administrateur (admin)"/>
<modifiedBy _cs="Administrateur (admin)"/>
<element label="test" name="test">
<attribute label="test" name="test" type="long"/>
<sysFilter name="readAccess">
<condition enabledIf="hasNamedRight('admin')=false" expr="FALSE"/>
</sysFilter>
<sysFilter name="writeAccess">
<condition enabledIf="hasNamedRight('admin')=false" expr="FALSE"/>
</sysFilter>
</element>
</srcSchema>
I will explain with more details what I trying to do :
Users with named right grp1 can request on schemes A,B,C
Users with named right grp2 can request on schemes D and E
Users with named right grp3 can request on scheme F
Thanks for your help,
Regards,
Mathieu
Views
Replies
Total Likes