Sometimes there is information that only the client is allowed to enter. The support agent can see them but they must NOT be able to change them, typically for legal or regulatory reasons. Let's give a practical example.
An indie developer is publishing applications on the Apple App Store and the Google Play Store. These stores do not provide a help desk feature. The developer does not want to deal with the unmitigated hellscape that's doing support over email for hundreds of people. Instead, they want all their support to go through their site's ticket system.
Since they do not want to have their clients jump through unnecessary hoops they decide to allow Guest Tickets so that a client can simply file a ticket entering their name, email address and what they want help with. However, because of GDPR and similar legislation, they can't just do that. A name and an email address is Personally Identifiable Information. The user must provide explicit consent that they agree to the Privacy Policy of the site before being allowed to submit the ticket.
It sounds like a chicken and egg issue. Luckily, there's a way to implement that with a custom field.
Here's our battle plan. We will use the third party PrivacyCheckbox custom field plugin, written by one of the Joomla core contributors. This field 's value will only be editable by the Guest group i.e. only when someone has not logged in and filing a guest ticket. This field cannot be changed by support staff or by the user after they log in. The only drawback is that since acceptance of the privacy policy happens when the user is still a guest user it's not recorded to the Joomla Privacy component. When the user logs in they will have to go through Joomla's privacy consent.
First, install the third party plugin and remember to publish it — it's the Fields - Privacy Checkbox plugin. You do not need to configure it.
Now go to Components, Akeeba Ticket System, Fields. Make sure that the drop–down at the top left reads Tickets and click on the
button. Use the following information:Title: Privacy Policy
Type: Privacy Checkbox (privacycheckbox)
Name: privacy-policy
Label: Privacy Policy
Required: Yes
Checkbox Note: By checking this box I agree to the site's Privacy Policy (link to Privacy Policy here).
Access: Guest (so it only shows for Guest users)
Click on the Options tab and use the following settings:
Label: Hide
Automatic Display: Do not automatically display — This is not strictly necessary. Since the field has Guest access it will not show up for staff and the logged in client anyway. This is just a reminder to you that the field will be invisible.
Next up, click on the Permissions tab. Click on the Guest group. Set the Edit Custom Field Value permission to Allowed.