/**
 * 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;
}
示例#2
0
 /**
  * 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);
 }
示例#3
0
 /**
  * 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);
 }
示例#4
0
 /**
  * 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);
 }
示例#5
0
 /**
  * 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);
 }
示例#6
0
 /**
  * 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);
 }