<?php

#
# XiVO Web-Interface
# Copyright (C) 2006-2018  Avencall
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
#

xivo_service_asterisk::required(array('abstract','abstract.inc'),true);

class xivo_service_asterisk_meetmefeatures extends xivo_service_asterisk_abstract
{
  var $_dso	= null;
  var $_name	= 'meetmefeatures';
  var $_filter	= false;
  var $_origin	= false;
  var $_identity	= false;

  public function __construct(&$sre,&$dso)
  {
    if(is_object($sre) === false)
      trigger_error('Invalid service in '.__CLASS__,E_USER_ERROR);

    if(is_object($dso) === false)
      trigger_error('Invalid datastorage in '.__CLASS__,E_USER_ERROR);

    $this->_sre = &$sre;
    $this->_dso = &$dso;

    $this->_load_config();
    $this->_identity = &$this->_sre->get_identity($this->_name);
  }

  function _prepare($data)
  {
    $this->_identity->_prepare_identity($data);

    $data['id'] = (int) $data['id'];
    $data['meetmeid'] = (int) $data['meetmeid'];
        $data['maxusers'] = (int) $data['maxusers'];
    $data['announceusercount']		= (bool) $data['announceusercount'];
    $data['quiet']			   = (bool) $data['quiet'];
    $data['record']			   = (bool) $data['record'];
        $data['user_waitingroom']  = (bool) $data['user_waitingroom'];

    return($data);
  }

  function add($arr,$id=0)
  {
    if(is_array($arr) === false)
      return(false);
        
    return(parent::add($arr,$id));
  }

  function edit($id,$arr)
  {
    if(is_array($arr) === false)
      return(false);
    
    return(parent::edit($id,$arr));
  }

  function valid_admin_identification($userpin, $adminpin)
  {
      if(dwho_has_len($userpin) === true  && dwho_has_len($adminpin) === true  && $adminpin == $userpin)
        return(false);
        
    return(true);
  }

  function get_all_except($id=0,$number=false,$order=null,$limit=null)
  {
    if(($id = dwho_ulongint($id)) === 0 && (bool) $number === false)
      return($this->get_all(null,true,$order,$limit));

    if(isset($this->_origin_list) === true)
      $this->_origin_list = false;

    if(($list = $this->_dso->get_all_except($id,$number,$order,$limit)) === false
    || isset($list[0]) === false)
      return(false);
    else if(isset($this->_origin_list) === true)
      $this->_origin_list = $list;

    return($this->_mk_list_assoc_prepare($list,false,true));
  }
}

?>
