/** * get user device * * @param string $_deviceId * @param string $_deviceType * @param string $_userAgent * @param string $_acsVersion * @return ActiveSync_Model_Device */ public function getUserDevice($_deviceId, $_deviceType, $_userAgent, $_acsVersion) { $deviceFilter = new ActiveSync_Model_DeviceFilter(array(array('field' => 'deviceid', 'operator' => 'equals', 'value' => $_deviceId), array('field' => 'owner_id', 'operator' => 'equals', 'value' => Tinebase_Core::getUser()->accountId))); $devices = $this->searchDevice($deviceFilter); if (count($devices) > 0) { // update existing device $device = $devices[0]; $device->useragent = $_userAgent; $device->acsversion = $_acsVersion; $device->devicetype = $_deviceType; $device = $this->updateDevice($device); } else { // create new device $device = new ActiveSync_Model_Device(array('deviceid' => $_deviceId, 'devicetype' => $_deviceType, 'owner_id' => Tinebase_Core::getUser()->accountId, 'policy_id' => 1, 'useragent' => $_userAgent, 'acsversion' => $_acsVersion, 'policykey' => Syncope_Command_Provision::generatePolicyKey())); $device = $this->createDevice($device); } return $device; }