Drupal - Disable editing of a node after it has been published
Yes, you can define dynamic rules in a custom module. See hook_node_access
Here's a sample implementation:
/**
* Implements hook_node_access().
*/
function MYMODULE_node_access($node, $op, $account) {
if (
// The $node argument can be either a $node object or a machine name of
// node's content type. It is called multiple times during a page load
// so it is enough if you perform the check once you get the object.
is_object($node) && $node->type == 'story' &&
// Operation on which you want to act: "create", "delete", "update", "view".
$op == 'update'
) {
// Check if the node is published.
if ($node->field_published[LANGUAGE_NONE][0]['value'] == 1) {
return NODE_ACCESS_DENY;
}
}
}