Hi Rob,
"System Field" just makes the field harder to accidently modify in the field editor (you need to turn on "Enable System Field Editing") from the Advanced Commands menu on the bottom left.
And you're right, "Admin Only" doesn't really do it either.
Probably the easiest would be to write a plugin that hooks in to 'record_presave' and if there's an $oldRecord to load it and overwrite select fields like this:
if ($oldRecord) {
$_REQUEST['createdByUser'] = $oldRecord['createdByUser];
$_REQUEST['etc'] = $oldRecord['etc];
}
Basically overwriting whatever was submitted by the user for those fields with whatever is already in the database.
Hope that helps!
Dave Edis - Senior Developer
interactivetools.com