RPC — инъекция

Данная возможность позволяет внедрять собственный код при вызове стандартной RPC-функции. Например, нам требуется при создании нового пользователя записать информацию в лог.  

Для начала нам нужно создать файл, который будет заниматься перехватом функции и реализует запись в лог. 

Создаем файл ~/modules/injections/notification.js.

exports.userCreateWithLog = function(state, action, method, data) {  // (1) 
if(action == ‘sys_users’ && method == ‘Add’) { // (2) 
var login = data.login; // (3) 
console.log(‘Пользователь с логином ’ + login + ‘ создан.’); 
} 
} 

Файл должен экспортировать функцию (1), в нашем случаи это — userCreateWithLogДанная функция принимает несколько параметров (1)

  • state: any — информация об авторизованном пользователе. 
  • action: string — имя RPC — объекта (сущности базы данных); 
  • method: string — имя метода RPC объекта. 
  • data: any — данные переданные RPC функции. 

В функции создаем условие на проверку объекта и метода, который хотим обрабатывать (2)

Далее получаем (3) данные из объекта и выполняем с ним требуемую работу. 

Print Friendly, PDF & Email

Добавить комментарий