Определить, если соединение от фактического пользователя
Я написал плагин, который будет запускаться каждый раз, когда пользователь получает доступ к средству отслеживания ошибок богомола (стороннее программное обеспечение). По сути, пользователь должен перейти на целевую страницу и согласиться с моими условиями, прежде чем он сможет получить доступ к любым приложениям, включая богомола. Проблема в том, что я также использую их API (mantis connect) для добавления проблем / вложений в систему. Мой плагин вызывает проблему, когда mantis connect не может завершить соединение (выполняет функцию перенаправления).
Есть ли способ, которым я могу сделать исключение из своего кода, чтобы mantis connect игнорировался?
function hooks() {
return array(
'EVENT_PLUGIN_INIT' => 'runCheck',
);
}
//Main function which
function runCheck($p_event){
if (!$this->validSession())
$this->redirectUser();
}
Например, я хотел бы сделать что-то вроде:
if (!$this->validSession() && !mantisConnect())
Мне просто нужно знать, как определить, является ли соединение оператором mantis connect. Соединение богомола - это вызов API. Поэтому, возможно, можно было бы определить, использует ли пользователь браузер, а не вызов из скрипта, и выполнить перенаправление только в этом случае. Также приведенный выше код написан на PHP.
В качестве альтернативы, если кто-то знает об альтернативном обработчике событий, который я могу использовать, он будет выполняться только при загрузке страницы богомола, что также может решить мою проблему.
1 ответ
В случае, если кто-то хотел знать. Вот код, который я использовал, чтобы сделать эту работу.
function runCheck($p_event){
if (strpos($_SERVER['HTTP_USER_AGENT'], 'PHP-SOAP') !== false){ //check for mantis connect
if (!$this->validSession()){ //check if session is valid
$this->redirectUser();
}
}
}