diff --git a/signup_status.module b/signup_status.module index 879c19c..7aea393 100644 --- a/signup_status.module +++ b/signup_status.module @@ -8,6 +8,7 @@ ////////////////////////////////////////////////////////////////////////////// define('SIGNUP_STATUS_MANAGE_PERMISSION', 'manage signup status codes'); +define('SIGNUP_STATUS_MANAGE_ALL_STATUS_PERMISSION', 'manage all signup status'); ////////////////////////////////////////////////////////////////////////////// // Core API hooks @@ -16,7 +17,7 @@ define('SIGNUP_STATUS_MANAGE_PERMISSION', 'manage signup status codes'); * Implementation of hook_perm(). */ function signup_status_perm() { - return array(SIGNUP_STATUS_MANAGE_PERMISSION); + return array(SIGNUP_STATUS_MANAGE_PERMISSION, SIGNUP_STATUS_MANAGE_ALL_STATUS_PERMISSION); } /** @@ -190,10 +191,11 @@ function signup_status_signup_insert($signup) { * FormAPI array defining the signup status form element. */ function _signup_status_status_form_element($current_status = NULL) { + global $user; $element = array(); $options = array(); foreach (signup_status_codes() as $cid => $code) { - if ($code['show_on_form']) { + if ($code['show_on_form'] || user_access(SIGNUP_STATUS_MANAGE_ALL_STATUS_PERMISSION)) { $options[$cid] = $code['name']; } }