Что делать, если в Vtiger 7 в карточке записи во вкладке история все изменения закреплены за администратором

Что делать, если в Vtiger 7 в карточке записи во вкладке история все изменения закреплены за администратором

Многие пользователи, особенно после обноваления системы VtigerCRM с 7.0 на 7.1 столкнулись с проблемой - в карточке заказа, лида во вкладке история, все изменения отображаются так, как будто их осуществлял пользователь Администратор, а не тот, кто это делал на самом деле. Зачастую это связано с обработчиками, которые срабатывают после изменения записи и в итоге изменения относятся к администратору, а не пользователю.

Многие пользователи, особенно после обноваления системы VtigerCRM с 7.0 на 7.1 столкнулись с проблемой - в карточке заказа, лида во вкладке история, все изменения отображаются так, как будто их осуществлял пользователь Администратор, а не тот, кто это делал на самом деле. Зачастую это связано с обработчиками, которые срабатывают после изменения записи и в итоге изменения относятся к администратору, а не пользователю.

Как исправить эту проблему:

Открываем следующий файл: modules/ModTracker/ModTrackerHandler.php

Это как раз тот файл, который фиксирует все изменения, которые делают пользователи в системе и фиксирует их в базе.

Находим следующий блок в этом файле:

$moduleName = $data->getModuleName();

$isTrackingEnabled = ModTracker::isTrackingEnabledForModule($moduleName);

if(!$isTrackingEnabled) {

return;

}

И до этого блока добавляем актуальную информацию о пользователе, который совершает правку записи:

$current_user_id=$_SESSION["authenticated_user_id"];

$current_user = Users_Record_Model::getInstanceById($current_user_id, 'Users');

$curid=$current_user->get('id'); 

global $current_user;

Далее находим следующую строчку:

global $adb, $current_user;

и убираем переменную current_user, она нам ну нужна. В итоге эта строчка выглядит так:

global $adb;

Далее ищем следующую строчку:

$adb->pquery('INSERT INTO vtiger_modtracker_basic(id, crmid, module, whodid, changedon, status)

VALUES(?,?,?,?,?,?)', Array($this->id, $recordId, $moduleName,

$current_user->id, $changedOn, $status));

И заменяем её на следующую:

$adb->pquery('INSERT INTO vtiger_modtracker_basic(id, crmid, module, whodid, changedon, status)

VALUES(?,?,?,?,?,?)', Array($this->id, $recordId, $moduleName,

$curid, $changedOn, $status));

В итоге вы увидете, что теперь в истории у нас фиксируется не только администратор, а тот пользователь, который произвёл изменение записи на самом деле.