/** * Overrides the default capability of the user for another owner's event if the user is a group admin and the event belongs to a group. * User must have the relevant permissions globally in order to inherit that capability for this event as well. * @param boolean $result * @param EM_Event $EM_Event */ function bp_em_group_event_can_manage($result, $EM_Event, $owner_capability, $admin_capability, $user_to_check) { if (!$result && $EM_Event->event_owner != get_current_user_id() && !empty($EM_Event->group_id) && bp_is_active('groups')) { //only override if already false, incase it's true //if the user is an admin of this group, and actually has the relevant permissions globally, they can manage this event $EM_Object = new EM_Object(); //create new object to prevent infinite loop should we call $EM_Event->can_manage(); if (groups_is_user_admin(get_current_user_id(), $EM_Event->group_id) && $EM_Object->can_manage($owner_capability, $admin_capability, $user_to_check)) { //This user is an admin of the owner's group, so they can edit this event. return true; } else { $EM_Event->add_error($EM_Object->get_errors()); //add any applicable errors } } return $result; }
/** * Can the user manage this? */ function can_manage($owner_capability = false, $admin_capability = false, $user_to_check = false) { if ($this->event_id == '' && !is_user_logged_in() && get_option('dbem_events_anonymous_submissions')) { $user_to_check = get_option('dbem_events_anonymous_user'); } return apply_filters('em_event_can_manage', parent::can_manage($owner_capability, $admin_capability, $user_to_check), $this, $owner_capability, $admin_capability, $user_to_check); }
/** * Can the user manage this coupon? */ function can_manage($owner_capability = false, $admin_capability = false, $user_to_check = false) { return apply_filters('em_coupon_can_manage', parent::can_manage($owner_capability, $admin_capability, $user_to_check), $this, $owner_capability, $admin_capability, $user_to_check); }
/** * Can the user manage this location? */ function can_manage($owner_capability = false, $admin_capability = false) { if ($owner_capability == 'edit_locations' && $this->id == '' && !is_user_logged_in() && get_option('dbem_events_anonymous_submissions')) { return apply_filters('em_event_can_manage', true); } return apply_filters('em_location_can_manage', parent::can_manage($owner_capability, $admin_capability), $this); }
/** * Can the user manage this location? */ function can_manage($owner_capability = false, $admin_capability = false, $user_to_check = false) { if ($this->location_id == '' && !is_user_logged_in() && get_option('dbem_events_anonymous_submissions')) { $user_to_check = get_option('dbem_events_anonymous_user'); } if ($admin_capability && EM_MS_GLOBAL && get_site_option('dbem_ms_mainblog_locations')) { //if in global mode with locations restricted to main blog, we check capabilities against the main blog self::ms_global_switch(); $return = parent::can_manage($owner_capability, $admin_capability, $user_to_check); self::ms_global_switch_back(); } else { $return = parent::can_manage($owner_capability, $admin_capability, $user_to_check); } return apply_filters('em_location_can_manage', $return, $this, $owner_capability, $admin_capability, $user_to_check); }
/** * Can the user manage this? */ function can_manage($owner_capability = false, $admin_capability = false) { return apply_filters('em_event_can_manage', parent::can_manage($owner_capability, $admin_capability), $this); }