acl HEAD:
Porting to D6:
+ - #231096: Implement hook_nodeapi('delete') and remove orphaned {acl_node} records.
- Improve acl_node_access_explain().
- Avoid generating E_NOTICEs.
- Make [Delete] button work.
'not null' => TRUE,
'default' => 0)),
'primary key' => array('acl_id', 'nid'),
+ 'indexes' => array(
+ 'nid' => array('nid')),
);
return $schema;
}
db_add_primary_key($ret, 'acl_node', array('acl_id', 'nid'));
return $ret;
}
+
+/**
+ * Put back acl_node(nid) index for deleting nodes.
+ */
+function acl_update_4() {
+ $ret = array();
+ db_add_index($ret, 'acl_node', 'nid', array('nid'));
+ db_query("DELETE FROM {acl_node} WHERE nid NOT IN (SELECT nid FROM {node})");
+ return $ret;
+}
}
/**
+ * Implementation of hook_nodeapi
+ */
+function acl_nodeapi(&$node, $op, $teaser = NULL, $page = NULL) {
+ switch ($op) {
+ case 'delete':
+ db_query("DELETE FROM {acl_node} WHERE nid = %d", $node->nid);
+ break;
+ }
+}
+
+/**
* Implementation of hook_node_access_explain
*/
function acl_node_access_explain($row) {