filters_getVacation() public method

Return the currently set vacation message details.
public filters_getVacation ( ) : array | boolean
return array | boolean The vacation rule properties or false if interface unavailable.
コード例 #1
0
ファイル: Driver.php プロジェクト: jubinpatel/horde
 /**
  * Return settings from the backend for a SETTINGS request.
  *
  * @param array $settings  An array of settings to return. Currently
  *                         supported:
  *  - oof: The out of office message information.
  *     @todo
  *  - userinformation:  UserInformation requests.
  *     - emailaddresses: User's From email addresses.
  *     - primarysmtpaddress: (@deprecated) The SMTP address used for the
  *                           default account. Only supported in EAS >= 14.1
  *                           using accounts.
  *     - status: EAS status code.
  *     - accounts: Array with each entry containing emailaddresses, fullname
  *         for additional identities. The primary address should be the
  *         first in the emailaddresses array.
  *
  * @param stdClass $device  The device to obtain settings for.
  *
  * @return array  The requested settings.
  * @todo H6: return information keyed by the common names given in wbxml
  *           schema for the settings command (use constants).
  */
 public function getSettings(array $settings, $device)
 {
     $res = array();
     foreach ($settings as $key => $setting) {
         switch ($key) {
             case 'oof':
                 if (!($vacation = $this->_connector->filters_getVacation())) {
                     return array('oof' => array('status' => Horde_ActiveSync_Request_Settings::STATUS_UNAVAILABLE));
                 }
                 $res['oof'] = array('status' => Horde_ActiveSync_Request_Settings::STATUS_SUCCESS, 'oofstate' => $vacation['disabled'] ? Horde_ActiveSync_Request_Settings::OOF_STATE_DISABLED : Horde_ActiveSync_Request_Settings::OOF_STATE_ENABLED, 'oofmsgs' => array());
                 $res['oof']['oofmsgs'][] = array('appliesto' => Horde_ActiveSync_Request_Settings::SETTINGS_APPLIESTOINTERNAL, 'replymessage' => $vacation['reason'], 'enabled' => !$vacation['disabled'], 'bodytype' => $setting['bodytype'], 'subject' => $vacation['subject']);
                 break;
             case 'userinformation':
                 $identities = $GLOBALS['injector']->getInstance('Horde_Core_Factory_Identity')->create($GLOBALS['registry']->getAuth());
                 $default_email = $identities->getValue('from_addr');
                 $email_addresses = array($default_email);
                 $accounts = array();
                 if ($this->_version >= Horde_ActiveSync::VERSION_FOURTEENONE) {
                     // @TODO Do clients actually support multiple accounts?
                     // Can't find one that does. For now, only return the
                     // default identity.
                     $ident = $identities->get();
                     $emails = !empty($ident['alias_addr']) ? $ident['alias_addr'] : array();
                     $emails[] = $ident['from_addr'];
                     $accounts[] = array('fullname' => $ident['fullname'], 'emailaddresses' => array_reverse($emails));
                 }
                 $res['userinformation'] = array('emailaddresses' => $email_addresses, 'primarysmtpaddress' => $default_email, 'status' => Horde_ActiveSync_Request_Settings::STATUS_SUCCESS, 'accounts' => $accounts);
         }
     }
     return $res;
 }
コード例 #2
0
ファイル: Driver.php プロジェクト: horde/horde
 /**
  * Return settings from the backend for a SETTINGS request.
  *
  * @param array $settings  An array of settings to return. Currently
  *                         supported:
  *  - oof: The out of office message information.
  *     @todo
  *  - userinformation:  UserInformation requests.
  *     - emailaddresses: User's From email addresses.
  *     - primarysmtpaddress: (@deprecated) The SMTP address used for the
  *                           default account. Only supported in EAS >= 14.1
  *                           using accounts.
  *     - status: EAS status code.
  *     - accounts: Array with each entry containing emailaddresses, fullname
  *         for additional identities. The primary address should be the
  *         first in the emailaddresses array.
  *
  * @param stdClass $device  The device to obtain settings for.
  *
  * @return array  The requested settings.
  * @todo H6: return information keyed by the common names given in wbxml
  *           schema for the settings command (use constants) and return
  *           as a Horde_ActiveSync_Message_Oof object.
  */
 public function getSettings(array $settings, $device)
 {
     global $injector, $prefs, $registry;
     $res = array();
     foreach ($settings as $key => $setting) {
         switch ($key) {
             case 'oof':
                 if (!($vacation = $this->_connector->filters_getVacation())) {
                     return array('oof' => array('status' => Horde_ActiveSync_Request_Settings::STATUS_UNAVAILABLE));
                 }
                 $res['oof'] = array('status' => Horde_ActiveSync_Request_Settings::STATUS_SUCCESS, 'oofstate' => $vacation['disabled'] ? Horde_ActiveSync_Request_Settings::OOF_STATE_DISABLED : Horde_ActiveSync_Request_Settings::OOF_STATE_ENABLED, 'oofmsgs' => array());
                 // If we have start/end it's a timebased vacation in EAS-speak.
                 if (!empty($vacation['end']) && !$vacation['disabled']) {
                     $res['oof']['oofstate'] = Horde_ActiveSync_Request_Settings::OOF_STATE_TIMEBASED;
                     $res['oof']['starttime'] = new Horde_Date($vacation['start']);
                     $res['oof']['endtime'] = new Horde_Date($vacation['end']);
                 }
                 // Horde's filter API doesn't support internal/external so
                 // always send as internal since that's what most clients
                 // fall back to as well.
                 $res['oof']['oofmsgs'][] = array('appliesto' => Horde_ActiveSync_Request_Settings::SETTINGS_APPLIESTOINTERNAL, 'replymessage' => $vacation['reason'], 'enabled' => !$vacation['disabled'], 'bodytype' => $setting['bodytype'], 'subject' => $vacation['subject']);
                 break;
             case 'userinformation':
                 $identities = $injector->getInstance('Horde_Core_Factory_Identity')->create($registry->getAuth());
                 $as_ident = $prefs->getValue('activesync_identity');
                 if ($as_ident != 'horde') {
                     $identities->setDefault($prefs->getValue('activesync_identity'));
                 } else {
                     $as_ident = $identities->getDefault();
                 }
                 $default_email = $identities->getValue('from_addr');
                 $email_addresses = array($default_email);
                 $accounts = array();
                 if ($this->_version >= Horde_ActiveSync::VERSION_FOURTEENONE) {
                     $identity = $identities->get();
                     $emails = !empty($identity['alias_addr']) ? $identity['alias_addr'] : array();
                     $emails[] = $identity['from_addr'];
                     $accounts[] = array('fullname' => $identity['fullname'], 'emailaddresses' => array_reverse($emails), 'accountname' => $identity['id']);
                     foreach ($identities as $id => $identity) {
                         if ($id != $as_ident) {
                             $emails = !empty($identity['alias_addr']) ? $identity['alias_addr'] : array();
                             $emails[] = $identity['from_addr'];
                             $accounts[] = array('fullname' => $identity['fullname'], 'emailaddresses' => array_reverse($emails), 'accountname' => $identity['id'], 'id' => $id);
                         }
                     }
                 }
                 $res['userinformation'] = array('emailaddresses' => $email_addresses, 'primarysmtpaddress' => $default_email, 'status' => Horde_ActiveSync_Request_Settings::STATUS_SUCCESS, 'accounts' => $accounts);
         }
     }
     return $res;
 }