Index: modules/node.module =================================================================== --- modules/node.module (revision 5735) +++ modules/node.module (working copy) @@ -580,7 +580,7 @@ * Implementation of hook_perm(). */ function node_perm() { - return array('administer nodes', 'access content'); + return array('administer nodes', 'access content', 'toggle nodes sticky'); } /** @@ -1638,6 +1638,7 @@ $node->revision = in_array('revision', $node_options); } + $sticky_form_element = array('#type' => 'checkbox', '#title' => t('Sticky at top of lists'), '#default_value' => $node->sticky); if (user_access('administer nodes')) { // Node author information $form['author'] = array('#type' => 'fieldset', '#title' => t('Authoring information'), '#collapsible' => TRUE, '#collapsed' => TRUE, '#weight' => -5); @@ -1650,9 +1651,12 @@ $form['options']['status'] = array('#type' => 'checkbox', '#title' => t('Published'), '#default_value' => $node->status); $form['options']['moderate'] = array('#type' => 'checkbox', '#title' => t('In moderation queue'), '#default_value' => $node->moderate); $form['options']['promote'] = array('#type' => 'checkbox', '#title' => t('Promoted to front page'), '#default_value' => $node->promote); - $form['options']['sticky'] = array('#type' => 'checkbox', '#title' => t('Sticky at top of lists'), '#default_value' => $node->sticky); + $form['options']['sticky'] = $sticky_form_element; $form['options']['revision'] = array('#type' => 'checkbox', '#title' => t('Create new revision'), '#default_value' => $node->revision); } + else if (user_access('toggle nodes sticky')) { + $form['sticky'] = $sticky_form_element; + } else { // Don't show node options because the user doesn't have admin access. $form['status'] = array('#type' => 'value', '#value' => $node->status);