1 /* +------------------------------------+
\r * | Inspire Internet Relay Chat Daemon |
\r * +------------------------------------+
\r *
\r * InspIRCd: (C) 2002-2007 InspIRCd Development Team
\r * See: http://www.inspircd.org/wiki/index.php/Credits
\r *
\r * This program is free but copyrighted software; see
\r * the file COPYING for details.
\r *
\r * ---------------------------------------------------
\r */
\r\r#include "inspircd.h"
\r#include "users.h"
\r#include "channels.h"
\r#include "modules.h"
\r\r/* $ModDesc: A module which logs all oper commands to the ircd log at default loglevel. */
\r\rclass ModuleOperLog : public Module
\r{
\r private:
\r \r public:
\r ModuleOperLog(InspIRCd* Me) : Module(Me)
\r {
\r \r }
\r \r virtual ~ModuleOperLog()
\r {
\r }
\r \r virtual Version GetVersion()
\r {
\r return Version(1,1,0,0,VF_VENDOR,API_VERSION);
\r }
\r \r void Implements(char* List)
\r {
\r List[I_OnPreCommand] = List[I_On005Numeric] = 1;
\r }
\r\r virtual int OnPreCommand(const std::string &command, const char** parameters, int pcnt, userrec *user, bool validated, const std::string &original_line)
\r {
\r /* If the command doesnt appear to be valid, we dont want to mess with it. */
\r if (!validated)
\r return 0;
\r \r if ((IS_OPER(user)) && (IS_LOCAL(user)) && (user->HasPermission(command)))
\r {
\r command_t* thiscommand = ServerInstance->Parser->GetHandler(command);
\r if ((thiscommand) && (thiscommand->flags_needed = 'o'))
\r {
\r std::string plist;
\r for (int j = 0; j < pcnt; j++)
\r plist.append(std::string(" ")+std::string(parameters[j]));
\r\r ServerInstance->Log(DEFAULT,"OPERLOG: [%s!%s@%s] %s%s",user->nick,user->ident,user->host,command.c_str(),plist.c_str());
\r }
\r }
\r\r return 0;
\r }
\r\r virtual void On005Numeric(std::string &output)
\r {
\r output.append(" OPERLOG");
\r }
\r\r};
\r \r \rMODULE_INIT(ModuleOperLog)
\r