Index: signup_status.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/signup_status/signup_status.module,v retrieving revision 1.26 diff -u -p -r1.26 signup_status.module --- signup_status.module 20 Sep 2009 00:47:44 -0000 1.26 +++ signup_status.module 20 Sep 2009 21:42:12 -0000 @@ -245,15 +245,20 @@ function signup_status_form_signup_edit_ $status_element = _signup_status_status_form_element($signup->status); if (!empty($status_element)) { $form['elements']['signup_status'] = $status_element; - - // Even though the status itself is recorded to the DB automagically via - // signup_save_signup(), we need to see if we should invoke - // _signup_status_change('update') based on if the status actually changed - // or not, and that requires our own submit handler, since - // hook_signup_changed() doesn't provide enough info for us to decide. - $form['elements']['save']['#submit'][] = 'signup_status_alter_signup_edit_form_submit'; - $form['elements']['save']['#weight'] = 2; - $form['elements']['cancel-signup']['#weight'] = 3; + if (empty($form['elements']['save'])) { + // The user can't edit their own signup, disable the status selector. + $form['elements']['signup_status']['#disabled'] = TRUE; + } + else { + // Even though the status itself is recorded to the DB automagically via + // signup_save_signup(), we need to see if we should invoke + // _signup_status_change('update') based on if the status actually + // changed or not, and that requires our own submit handler, since + // hook_signup_changed() doesn't provide enough info for us to decide. + $form['elements']['save']['#submit'][] = 'signup_status_alter_signup_edit_form_submit'; + $form['elements']['save']['#weight'] = 2; + $form['elements']['cancel-signup']['#weight'] = 3; + } } }