In ConfiForms you can set up the valiations rules to be applied within a context of the whole dataset.
This is done using ConfiForms Field Definition Rules macro and choosing action "Validation rule (dataset)" from the list of actions
The important bits are how to set up the filter when it runs and what to add into the validation rule
We want to check if a person (by email) has already registered. It is important moment, that we actually want to check by email, and not by built-it operator [UNIQUE], which can easily help us with this if we wanted to check by username (built-in Confluence user object). See more on filters here: ConfiForms Filters
But we want to check by user's email which they type in the registration form. Something like this:
So, we have a form with a field called "youremail"
We will add ConfiForms Field Definition Rules macro
And put the condition to match like this. It will be sufficient if you want to check only for new registrations and not allow changing the already registered records. As with this conditions we check for "email uniqueness" across the whole dataset and it would be non-unique.
In order to support edits the condition should be changed to:
youremail:[entry.youremail] AND !id:[entry.id]
These translates to: check if email is unique and record's ID not the same as current
There is no need to put other macro properties except the message when validation fails: