Index: modules/comment/comment.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/comment/comment.module,v
retrieving revision 1.604
diff -u -p -r1.604 comment.module
--- modules/comment/comment.module 6 Dec 2007 09:58:30 -0000 1.604
+++ modules/comment/comment.module 8 Dec 2007 03:23:16 -0000
@@ -1079,6 +1079,15 @@ function comment_num_replies($pid) {
return $cache[$pid];
}
+function comment_authenticated_user_has_post_perm() {
+ static $post_perm;
+
+ if (!isset($post_perm)) {
+ $post_perm = db_result(db_query("SELECT pid FROM {permission} WHERE rid = %d AND perm LIKE '%%%s%%'", DRUPAL_AUTHENTICATED_RID, 'post comments'));
+ }
+ return is_numeric($post_perm);
+}
+
/**
* get number of new comments for current user and specified node
*
@@ -1639,11 +1648,13 @@ function theme_comment_post_forbidden($n
$destination = "destination=". drupal_urlencode("node/$node->nid#comment-form");
}
- if (variable_get('user_register', 1)) {
- return t('Login or register to post comments', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination))));
- }
- else {
- return t('Login to post comments', array('@login' => url('user/login', array('query' => $destination))));
+ if (comment_authenticated_user_has_post_perm()) {
+ if (variable_get('user_register', 1)) {
+ return t('Login or register to post comments', array('@login' => url('user/login', array('query' => $destination)), '@register' => url('user/register', array('query' => $destination))));
+ }
+ else {
+ return t('Login to post comments', array('@login' => url('user/login', array('query' => $destination))));
+ }
}
}
}