/** * set relations / tags / alarms / grants * * @param Tinebase_Record_Interface $updatedRecord the just updated record * @param Tinebase_Record_Interface $record the update record * @param boolean $returnUpdatedRelatedData * @return Tinebase_Record_Interface */ protected function _setRelatedData($updatedRecord, $record, $returnUpdatedRelatedData = false) { $updatedRecord->grants = $record->grants; $this->setGrants($updatedRecord); return parent::_setRelatedData($updatedRecord, $record, $returnUpdatedRelatedData); }
/** * set relations / tags / alarms * * @param Tinebase_Record_Interface $updatedRecord the just updated record * @param Tinebase_Record_Interface $record the update record * @param Tinebase_Record_Interface $currentRecord the original record if one exists * @param boolean $returnUpdatedRelatedData * @return Tinebase_Record_Interface */ protected function _setRelatedData(Tinebase_Record_Interface $updatedRecord, Tinebase_Record_Interface $record, Tinebase_Record_Interface $currentRecord = null, $returnUpdatedRelatedData = FALSE) { /** @var Addressbook_Model_List $record */ if (isset($record->memberroles)) { // get migration // TODO add generic helper fn for this? $memberrolesToSet = !$record->memberroles instanceof Tinebase_Record_RecordSet ? new Tinebase_Record_RecordSet('Addressbook_Model_ListMemberRole', $record->memberroles, true) : $record->memberroles; foreach ($memberrolesToSet as $memberrole) { foreach (array('contact_id', 'list_role_id', 'list_id') as $field) { if (isset($memberrole[$field]['id'])) { $memberrole[$field] = $memberrole[$field]['id']; } } } $currentMemberroles = $this->_getMemberRoles($record); $diff = $currentMemberroles->diff($memberrolesToSet); if (count($diff['added']) > 0) { $diff['added']->list_id = $updatedRecord->getId(); foreach ($diff['added'] as $memberrole) { $this->_getMemberRolesBackend()->create($memberrole); } } if (count($diff['removed']) > 0) { $this->_getMemberRolesBackend()->delete($diff['removed']->getArrayOfIds()); } } $result = parent::_setRelatedData($updatedRecord, $record, $currentRecord, $returnUpdatedRelatedData); return $result; }
/** * set relations / tags / alarms / grants * * @param Tinebase_Record_Interface $updatedRecord the just updated record * @param Tinebase_Record_Interface $record the update record * @param Tinebase_Record_Interface $currentRecord the original record if one exists * @param boolean $returnUpdatedRelatedData * @return Tinebase_Record_Interface */ protected function _setRelatedData(Tinebase_Record_Interface $updatedRecord, Tinebase_Record_Interface $record, Tinebase_Record_Interface $currentRecord = null, $returnUpdatedRelatedData = FALSE) { $updatedRecord->grants = $record->grants; $this->setGrants($updatedRecord); return parent::_setRelatedData($updatedRecord, $record, $currentRecord, $returnUpdatedRelatedData); }