If you need marketing users to be able to access data records but do not want them to see recipient Personally Information (PI), such as first name, last name or email address, apply the guidelines below to protect privacy and prevent data from being misused by regular campaign operators.
A specific attribute that can be applied to any element or attribute has been added to the schemas, it complements the existing attribute visibleIf. This attribute is: accessibleIf. When containing an XTK expression related to the current user context, it can leverage HasNamedRight or $(login), for instance.
You can find a sample of a recipient schema extension that shows this usage below:
<srcSchema desc="Recipient table (profiles" entitySchema="xtk:srcSchema" extendedSchema="xxl:nmsRecipientXl"
img="nms:recipient.png" label="Recipients" labelSingular="Recipient"
name="recipient" namespace="sec" xtkschema="xtk:srcSchema">
<element desc="Recipient table (profiles" img="xxl:recipient.png" label="Recipients"
labelSingular="Recipient" name="recipient">
<attribute name="firstName" accessibleIf="$(login)=='admin'"/>
<attribute name="lastName" visibleIf="$(login)=='admin'"/>
<attribute name="email" accessibleIf="$(login)=='admin'"/>
</element>
</srcSchema>
The main properties are:
Here are the consequences of using this attribute in Campaign:
In each delivery, email addresses are copied into the broadLog and the forecastLog tables: as a consequence, those fields need to be protected too.
Below is a sample of log table extension to implement this:
<srcSchema entitySchema="xtk:srcSchema" extendedSchema="nms:broadLogRcp" img="nms:broadLog.png"
label="Recipient delivery logs" labelSingular="Recipient delivery log"
name="broadLogRcp" namespace="sec" xtkschema="xtk:srcSchema">
<element img="nms:broadLog.png" label="Recipient delivery logs" labelSingular="Recipient delivery log"
name="broadLogRcp">
<attribute accessibleIf="$(login)=='admin'" name="address"/>
</element>
</srcSchema>
<srcSchema desc="Delivery messages being prepared." entitySchema="xtk:srcSchema"
extendedSchema="nms:tmpBroadcast" img="" label="Messages being prepared"
labelSingular="Message" name="tmpBroadcast" namespace="sec" xtkschema="xtk:srcSchema">
<element desc="Delivery messages being prepared." label="Messages being prepared"
labelSingular="Message" name="tmpBroadcast">
<attribute accessibleIf="$(login)=='admin'" name="address"/>
</element>
</srcSchema>
<srcSchema entitySchema="xtk:srcSchema" extendedSchema="nms:excludeLogRcp" img="nms:excludeLog.png"
label="Recipient exclusion logs" labelSingular="Recipient exclusion log"
name="excludeLogRcp" namespace="sec" xtkschema="xtk:srcSchema">
<element img="nms:excludeLog.png" label="Recipient exclusion logs" labelSingular="Recipient exclusion log"
name="excludeLogRcp">
<attribute accessibleIf="$(login)=='admin'" name="address"/>
</element>
</srcSchema>
This restriction applies to non technical users only and does not isolates data: a technical user, with related permissions, can retrieve data.