Index: publishcontent.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/publishcontent/publishcontent.module,v retrieving revision 1.3.4.12 diff -u -p -r1.3.4.12 publishcontent.module --- publishcontent.module 1 Jun 2010 13:42:36 -0000 1.3.4.12 +++ publishcontent.module 1 Jun 2010 14:14:46 -0000 @@ -151,12 +151,22 @@ function publishcontent_views_handlers() */ function publishcontent_form_alter(&$form, $form_state, $form_id) { if (!user_access('administer nodes') - && $form['type']['#value'] .'_node_form' == $form_id - && (_publishcontent_unpublish_access($form['#node']) || - _publishcontent_publish_access($form['#node']))) { - $form['options']['#access'] = TRUE; - unset($form['options']['promote']); - unset($form['options']['sticky']); - unset($form['options']['revision']); + && $form['type']['#value'] .'_node_form' == $form_id + && (_publishcontent_unpublish_access($form['#node']) + ||_publishcontent_publish_access($form['#node']))) { + $form['options']['status']['#access'] = TRUE; + if ($form['options']['#access']) { + return; + } + else { + $form['options']['#access'] = TRUE; + } + foreach (element_children($form['options']) as $key) { + // If another form has afforded access to a particular option, do not + // override that access. Otherwise, disable it. + $form['options'][$key]['#access'] = + isset($form['options'][$key]['#access']) + ? $form['options'][$key]['#access'] : FALSE; + } } }