--- protected_node.module 2008-10-14 11:35:29.000000000 +0200 +++ protected_node.module.bypass 2009-01-22 10:07:33.000000000 +0100 @@ -66,6 +66,7 @@ function protected_node_perm( ) { $perms = array( 'access protected content', + 'bypass password protection' 'edit protected content' ); foreach ( array_keys( node_get_types() ) as $type ) { @@ -152,7 +153,7 @@ } break; case 'view' : - if ($node->is_protected) { + if ($node->is_protected && !user_access('bypass password protection')) { // If we have been accessed from cron.php (f.e. search indexing) if (variable_get( 'cron_semaphore', FALSE )) { $node->title = ''; @@ -227,7 +228,7 @@ global $user; $db_file = db_result( db_query( 'SELECT u.nid FROM {files} f, {upload} u, {protected_nodes} pn, {node} n WHERE pn.nid = u.nid AND u.nid = n.nid AND f.filename = \'%s\' AND u.fid = f.fid', $file ) ); - if (db_error() || $db_file === FALSE || $user->uid == $db_file || $_SESSION['_protected_node']['passwords'][$db_file]) { + if (db_error() || $db_file === FALSE || $user->uid == $db_file || $_SESSION['_protected_node']['passwords'][$db_file] || user_access('bypass password protection')) { return array(); } else {