diff --git a/app/listeners/ActivityLog.php b/app/listeners/ActivityLog.php new file mode 100644 index 0000000..2b62892 --- /dev/null +++ b/app/listeners/ActivityLog.php @@ -0,0 +1,68 @@ +_log($auth->getUser(), "Logged in ({$type})"); + } + + /** + * @param Event $event + * @param User $auth + */ + public function onPasswordCreated(Event $event, User $user) + { + $this->_log($user, "Created password"); + } + + /** + * @param Event $event + * @param User $auth + */ + public function onPasswordChanged(Event $event, User $user) + { + $this->_log($user, "Changed password"); + } + + protected function _log(User $user, $message) + { + $ip = (new \Phalcon\Http\Request())->getClientAddress(); + + $data = [ + 'user_id' => $user->getId(), + 'ip' => $ip, + 'message' => $message + ]; + + return $this->_getLogger()->create($data); + } + + protected function _getLogger() + { + if ($this->_table === null) { + $this->_table = new ActivityLogger(); + } + return $this->_table; + } +}