Operation Profillama - Released October 20, 2020
We are pleased to announce the arrival of Marketpath CMS Profiles with this release. Profiles are our term for frontend logins, so users of your site may create their own "accounts" to allow for secure personalization.
For a more complete understanding of profiles, check out our Profiles Training Course.
In short, profiles contain secure credentials for frontend website logins along with some additional information related to those credentials. There are a number of built-in mechanisms to protect credentials, as well as additional tools that template developers may utilize to add their own protection.
Profiles may either be created in the Marketpath CMS administrator interface or directly from the live site. Profiles created from the live site must be activated before they can be used, however. Activation is primarily a matter of verifying the email address associated with the profile, although you may bypass it if desired.
Profiles may be enabled or disabled altogether from your site settings. When disabled, profiles will no longer be able to sign in on your site site. Alternatively, you may leave profiles enabled but disable live signup so that users may not create their own profiles. As part of this release, all sites will have profiles signup enabled by default, but will not be able to use them without properly coded templates to support them.
As with most Marketpath CMS objects, profiles can be customized beyond their original implementation. You may associate custom fields with profiles just like you would with datastore items. Additionally, profiles may contain custom attributes which do not require validation (similar to existing client and session properties).
Unlike any other object currently in Marketpath CMS, profiles may be updated using template code directly from the live site. This is made possible by the new {% auth %}, {% set_profile %}, {% unset_profile %}, {% set_profile_setting %}, and {% unset_profile_setting %} methods. However, because of the unique ability for profiles to be changed directly on the live site, any requests that check for or potentially change profile information will not be able to utilize fast caching.
Any updates to profiles from live sites are aytomatically synced back to the management interface, and any updates to profiles from the management interface are automatically published to the live site. In most cases profiles will only take a second or two to publish and up to 15 seconds to sync. In rare cases it may take longer - such as when publishing and/or syncing is disabled for maintenance.
To accompany profiles, we have also made some small improvements to our templating captabilities. In addition to the profile objects and methods mentioned above, we have also added some improved type-checking and other capabilities. We have updated our liquid reference documentation to include these improvements, but in summary here are the changes:
Also as part of the profiles release, we have created a new dictionary field which you may now use anywhere that you use custom fields - including template fields, datastore fields, custom site settings, etc...
The dictionary field simply holds an unordered collection of key-value pairs. There is very little validation except that the keys may only contain letters, numbers, dashes, and underscores. You may also choose to require a minimum or maximum number of keys.
You were previously able to query datastore items using syntax like "field1 < 3 and field2 == something". You were limited to using "and", and any numbers (3 in the previous example) were still treated like strings, so that comparing "3" to "11" for example would return the wrong result. That capability has now been expanded with the capability of treating numbers as numbers, using "not" and "or", and performing more advanced grouping. Eg: "field1 < 3 and not (field2 == 'a' or field3 == 'b')".
Also in this release: