I'm trying to prevent users from changing statuses via the {exp:channel:form} tag, but there does not seem to be a built-in way to actually validate the status on form submission.
I have tried using the status parameter like so:
{exp:channel:form channel="my_channel" author_only="yes" status="Pending Approval"}
I have also tried using the validation rules parameter, like so:
{exp:channel:form channel="my_channel" author_only="yes" rules:status="matches[Pending Approval]"}
I have also tried the above while explicitly passing the status in an html input tag, like so:
{exp:channel:form channel="my_channel" author_only="yes" rules:status="matches[Pending Approval]"}
<input type="hidden" name="status" value="Pending Approval">
<input type="submit" value="submit">
{/exp:channel:form}
In none of these cases is the status protected, and users can always change the status with a simple browser edit. I am aware that I can prevent member groups from accessing certain statuses via the control panel, however I do actually want the member group to be able to select the status but only at a certain point in time and not before the entry has been approved by an administrator. Am I overlooking something with respect to a native EE way to validate statuses on channel form submission?
If there is no native way to protect a status when using channel:form, I am thinking there may be a 3rd-party extension that would use one of the form hooks and actually do status validation? If one does not exist, could advice be given as to which channel form hook would be most appropriate to use?