1 simpletest_example.module | simpletest_example_node_access($node, $op, $account) |
Implements hook_node_access().
Demonstrates a bug that we'll find in our test.
If this is running on the testbot, we don't want the error to show so will work around it by testing to see if we're in the 'checkout' directory.
Related topics
File
- modules/
examples/ simpletest_example/ simpletest_example.module, line 40 - Hook implementations for the SimpleTest Example module.
Code
function simpletest_example_node_access($node, $op, $account) {
// Don't get involved if this isn't a simpletest_example node, etc.
$type = is_string($node) ? $node : $node->type;
if ($type != 'simpletest_example' || ($op != 'update' && $op != 'delete')) {
return NODE_ACCESS_IGNORE;
}
// This code has a BUG that we'll find in testing.
//
// This is the incorrect version we'll use to demonstrate test failure.
// The correct version should have ($op == 'update' || $op == 'delete').
// The author had mistakenly always tested with User 1 so it always allowed
// access and the bug wasn't noticed!
if (($op == 'delete') && (user_access('extra special edit any simpletest_example', $account) && ($account->uid == $node->uid))) {
return NODE_ACCESS_ALLOW;
}
return NODE_ACCESS_DENY;
}