From e53e2e6af98a1bd9941e66ac4ea89fcd80276af1 Mon Sep 17 00:00:00 2001 From: Tomasz Sowa Date: Wed, 3 Feb 2016 18:10:40 +0000 Subject: [PATCH] added: some work in RegisterMail plugin (added looking for files in a config directory) git-svn-id: svn://ttmath.org/publicrep/winix/trunk@1024 e52654a7-88a9-db11-a3e9-0013d4bc506e --- Makefile.dep | 2 +- html/fun_registermail.html | 4 ++ plugins/mailregister/Makefile.dep | 1 + plugins/mailregister/Makefile.o.dep | 2 +- plugins/mailregister/funregistermail.cpp | 24 +++++-- plugins/mailregister/init.cpp | 79 +++++++++++++++++++++- plugins/mailregister/mdb.cpp | 5 +- plugins/mailregister/mdb.h | 7 +- plugins/mailregister/registermail_info.cpp | 46 +++++++++++++ plugins/mailregister/registermail_info.h | 5 +- 10 files changed, 162 insertions(+), 13 deletions(-) create mode 100644 html/fun_registermail.html create mode 100644 plugins/mailregister/registermail_info.cpp diff --git a/Makefile.dep b/Makefile.dep index 594c68e..395dffd 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -1 +1 @@ -winix.src.files = ./plugins/group/init.cpp ./plugins/group/groups.h ./plugins/group/groupinfo.cpp ./plugins/group/groupinfo.h ./plugins/group/templates.cpp ./plugins/group/groups.cpp ./plugins/stats/statssession.h ./plugins/stats/bot.h ./plugins/stats/stats.cpp ./plugins/stats/templates.cpp ./plugins/stats/init.cpp ./plugins/stats/stats.h ./plugins/stats/templates.h ./plugins/stats/bot.cpp ./plugins/gallery/galleryinfo.cpp ./plugins/gallery/templates.cpp ./plugins/gallery/gallery.cpp ./plugins/gallery/galleryinfo.h ./plugins/gallery/init.cpp ./plugins/gallery/gallery.h ./plugins/export/init.cpp ./plugins/export/export.h ./plugins/export/exportthread.cpp ./plugins/export/message.h ./plugins/export/edb.cpp ./plugins/export/funexport.cpp ./plugins/export/exportinfo.cpp ./plugins/export/exportthread.h ./plugins/export/edb.h ./plugins/export/funexport.h ./plugins/export/exportinfo.h ./plugins/ticket/funticket.h ./plugins/ticket/init.cpp ./plugins/ticket/ticketinfo.h ./plugins/ticket/showtickets.cpp ./plugins/ticket/createticket.cpp ./plugins/ticket/tdb.cpp ./plugins/ticket/pluginmsg.h ./plugins/ticket/createticket.h ./plugins/ticket/showtickets.h ./plugins/ticket/sessiondata.cpp ./plugins/ticket/tdb.h ./plugins/ticket/sessiondata.h ./plugins/ticket/ticket.h ./plugins/ticket/editticket.cpp ./plugins/ticket/funticket.cpp ./plugins/ticket/templates.cpp ./plugins/ticket/editticket.h ./plugins/ticket/ticketinfo.cpp ./plugins/menu/cache.cpp ./plugins/menu/init.cpp ./plugins/menu/cache.h ./plugins/menu/templates.cpp ./plugins/thread/funthread.cpp ./plugins/thread/threadinfo.cpp ./plugins/thread/funthread.h ./plugins/thread/threadinfo.h ./plugins/thread/createthread.cpp ./plugins/thread/reply.cpp ./plugins/thread/showthreads.cpp ./plugins/thread/templates.cpp ./plugins/thread/createthread.h ./plugins/thread/reply.h ./plugins/thread/showthreads.h ./plugins/thread/init.cpp ./plugins/thread/templates.h ./plugins/thread/tdb.cpp ./plugins/thread/pluginmsg.h ./plugins/thread/thread.h ./plugins/thread/tdb.h ./plugins/mailregister/funregistermail.h ./plugins/mailregister/mdb.h ./plugins/mailregister/funregistermail.cpp ./plugins/mailregister/mdb.cpp ./plugins/mailregister/init.cpp ./plugins/mailregister/templates.cpp ./plugins/mailregister/registermail_info.h ./plugins/mailregister/funregistermail_showusers.h ./plugins/mailregister/funregistermail_showusers.cpp ./main/main.cpp ./db/dbconn.cpp ./db/db.cpp ./db/dbbase.h ./db/dbitemcolumns.cpp ./db/dbtextstream.cpp ./db/dbconn.h ./db/db.h ./db/dbitemcolumns.h ./db/dbitemquery.cpp ./db/dbtextstream.h ./db/dbitemquery.h ./db/dbbase.cpp ./core/synchro.h ./core/sessioncontainer.h ./core/cookieparser.h ./core/misc.cpp ./core/item.cpp ./core/error.h ./core/timezone.h ./core/compress.h ./core/crypt.cpp ./core/dirs.cpp ./core/slog.cpp ./core/config.cpp ./core/lastcontainer.cpp ./core/users.h ./core/httpsimpleparser.cpp ./core/threadmanager.h ./core/postparser.h ./core/pluginmsg.h ./core/acceptbaseparser.h ./core/loadavg.cpp ./core/job.h ./core/mountparser.cpp ./core/timezones.h ./core/sessionmanager.h ./core/groups.h ./core/system.cpp ./core/rebus.h ./core/synchro.cpp ./core/lock.cpp ./core/acceptencodingparser.h ./core/version.h ./core/compress.cpp ./core/ipbancontainer.cpp ./core/request.h ./core/plugindata.h ./core/plugin.cpp ./core/sessionparser.cpp ./core/bbcodeparser.h ./core/users.cpp ./core/mount.cpp ./core/item.h ./core/slog.h ./core/threadmanager.cpp ./core/acceptbaseparser.cpp ./core/lastcontainer.h ./core/httpsimpleparser.h ./core/timezones.cpp ./core/groups.cpp ./core/requesttypes.h ./core/system.h ./core/bbcodeparser.cpp ./core/lock.h ./core/ipbancontainer.h ./core/group.h ./core/plugin.h ./core/run.cpp ./core/textstream.h ./core/sessionparser.h ./core/basethread.h ./core/mount.h ./core/htmlfilter.cpp ./core/user.cpp ./core/app.cpp ./core/image.cpp ./core/ugcontainer.h ./core/postmultiparser.h ./core/logmanipulators.h ./core/sessioncontainer.cpp ./core/dircontainer.h ./core/log.h ./core/session.h ./core/timezone.cpp ./core/mounts.h ./core/ipban.h ./core/cur.h ./core/misc.h ./core/dirs.h ./core/crypt.h ./core/run.h ./core/config.h ./core/job.cpp ./core/postmultiparser.cpp ./core/sessionmanager.cpp ./core/htmlfilter.h ./core/rebus.cpp ./core/dircontainer.cpp ./core/log.cpp ./core/user.h ./core/loadavg.h ./core/session.cpp ./core/mountparser.h ./core/mounts.cpp ./core/image.h ./core/plugindata.cpp ./core/request.cpp ./core/app.h ./core/basethread.cpp ./core/sessionidmanager.h ./core/winix_const.h ./core/sessionidmanager.cpp ./functions/upload.cpp ./functions/priv.h ./functions/env.cpp ./functions/default.h ./functions/node.h ./functions/specialdefault.h ./functions/timezone.cpp ./functions/pw.h ./functions/adduser.h ./functions/chmod.h ./functions/imgcrop.cpp ./functions/vim.h ./functions/account.h ./functions/mount.cpp ./functions/uptime.cpp ./functions/ckeditor.cpp ./functions/mkdir.cpp ./functions/reload.cpp ./functions/functionparser.h ./functions/logout.cpp ./functions/rmuser.cpp ./functions/rm.cpp ./functions/chown.h ./functions/nicedit.h ./functions/mv.h ./functions/node.cpp ./functions/specialdefault.cpp ./functions/adduser.cpp ./functions/upload.h ./functions/vim.cpp ./functions/env.h ./functions/timezone.h ./functions/who.h ./functions/cp.cpp ./functions/run.cpp ./functions/locale.h ./functions/imgcrop.h ./functions/passwd.h ./functions/mount.h ./functions/privchanger.cpp ./functions/functions.cpp ./functions/last.h ./functions/ckeditor.h ./functions/mkdir.h ./functions/reload.h ./functions/cat.h ./functions/download.h ./functions/ln.h ./functions/nicedit.cpp ./functions/functionbase.cpp ./functions/man.h ./functions/rm.h ./functions/meta.cpp ./functions/emacs.cpp ./functions/sort.h ./functions/who.cpp ./functions/ipban.h ./functions/locale.cpp ./functions/passwd.cpp ./functions/last.cpp ./functions/subject.h ./functions/download.cpp ./functions/cp.h ./functions/cat.cpp ./functions/login.cpp ./functions/tinymce.cpp ./functions/ln.cpp ./functions/run.h ./functions/uname.h ./functions/man.cpp ./functions/functions.h ./functions/privchanger.h ./functions/ls.cpp ./functions/template.h ./functions/stat.h ./functions/priv.cpp ./functions/default.cpp ./functions/functionbase.h ./functions/pw.cpp ./functions/sort.cpp ./functions/ipban.cpp ./functions/chmod.cpp ./functions/meta.h ./functions/account.cpp ./functions/emacs.h ./functions/subject.cpp ./functions/functionparser.cpp ./functions/uname.cpp ./functions/uptime.h ./functions/template.cpp ./functions/stat.cpp ./functions/tinymce.h ./functions/login.h ./functions/chown.cpp ./functions/logout.h ./functions/mv.cpp ./functions/rmuser.h ./functions/ls.h ./notify/notifypool.h ./notify/templatesnotify.cpp ./notify/notify.cpp ./notify/templatesnotify.h ./notify/notify.h ./notify/notifythread.cpp ./notify/notifypool.cpp ./notify/notifythread.h ./templates/who.cpp ./templates/item.cpp ./templates/mount.cpp ./templates/templates.h ./templates/locale.h ./templates/slog.cpp ./templates/doc.cpp ./templates/localefilter.cpp ./templates/config.cpp ./templates/patterns.h ./templates/miscspace.cpp ./templates/filters.cpp ./templates/login.cpp ./templates/man.cpp ./templates/changepatterns.h ./templates/stat.cpp ./templates/template.cpp ./templates/dir.cpp ./templates/user.cpp ./templates/rebus.cpp ./templates/patterncacher.cpp ./templates/upload.cpp ./templates/textextstream.h ./templates/adduser.cpp ./templates/ipban.cpp ./templates/htmltextstream.h ./templates/indexpatterns.h ./templates/templates.cpp ./templates/winix.cpp ./templates/locale.cpp ./templates/misc.h ./templates/patterns.cpp ./templates/passwd.cpp ./templates/last.cpp ./templates/uptime.cpp ./templates/insert.cpp ./templates/changepatterns.cpp ./templates/localefilter.h ./templates/miscspace.h ./templates/ls.cpp ./templates/sys.cpp ./templates/priv.cpp ./templates/textextstream.cpp ./templates/htmltextstream.cpp ./templates/env.cpp ./templates/indexpatterns.cpp ./templates/patterncacher.h ./templates/misc.cpp ./templates/generic.cpp ./templates/currentdate.cpp ./templates/server.cpp ../ezc/src/funinfo.h ../ezc/src/functions.h ../ezc/src/pattern.cpp ../ezc/src/item.cpp ../ezc/src/pattern.h ../ezc/src/item.h ../ezc/src/ezc.h ../ezc/src/cache.cpp ../ezc/src/cache.h ../ezc/src/blocks.h ../ezc/src/blocks.cpp ../ezc/src/patternparser.cpp ../ezc/src/objects.h ../ezc/src/patternparser.h ../ezc/src/generator.h ../ezc/src/outstreams.h ../tito/src/crypto.cpp ../tito/src/misc.h ../tito/src/base64.cpp ../tito/src/crypto.h ../tito/src/aes.cpp ../tito/src/base64.h ../tito/src/misc.cpp ../tito/src/aes.h ../pikotools/mainparser/sample/sample.cpp ../pikotools/mainparser/mainparser.cpp ../pikotools/mainparser/mainparser.h ../pikotools/space/space.h ../pikotools/space/spaceparser.cpp ../pikotools/space/space.cpp ../pikotools/space/spaceparser.h ../pikotools/space/jsontospaceparser.cpp ../pikotools/space/spacetojson.cpp ../pikotools/space/jsontospaceparser.h ../pikotools/space/spacetojson.h ../pikotools/date/date.h ../pikotools/date/date.cpp ../pikotools/membuffer/membuffer.h ../pikotools/utf8/utf8.cpp ../pikotools/utf8/utf8.h ../pikotools/textstream/textstream.h ../pikotools/textstream/types.h ../pikotools/convert/convert.h ../pikotools/convert/inttostr.h ../pikotools/mainspaceparser/mainspaceparser.h ../pikotools/mainspaceparser/mainspaceparser.cpp \ No newline at end of file +winix.src.files = ./main/main.cpp ./db/dbconn.cpp ./db/db.cpp ./db/dbbase.h ./db/dbitemcolumns.cpp ./db/dbtextstream.cpp ./db/dbconn.h ./db/db.h ./db/dbitemcolumns.h ./db/dbitemquery.cpp ./db/dbtextstream.h ./db/dbitemquery.h ./db/dbbase.cpp ./core/synchro.h ./core/sessioncontainer.h ./core/cookieparser.h ./core/misc.cpp ./core/item.cpp ./core/error.h ./core/timezone.h ./core/compress.h ./core/crypt.cpp ./core/dirs.cpp ./core/slog.cpp ./core/config.cpp ./core/lastcontainer.cpp ./core/users.h ./core/httpsimpleparser.cpp ./core/threadmanager.h ./core/postparser.h ./core/pluginmsg.h ./core/acceptbaseparser.h ./core/loadavg.cpp ./core/job.h ./core/mountparser.cpp ./core/timezones.h ./core/sessionmanager.h ./core/groups.h ./core/system.cpp ./core/synchro.cpp ./core/rebus.h ./core/lock.cpp ./core/acceptencodingparser.h ./core/version.h ./core/compress.cpp ./core/ipbancontainer.cpp ./core/request.h ./core/plugindata.h ./core/plugin.cpp ./core/sessionparser.cpp ./core/bbcodeparser.h ./core/users.cpp ./core/mount.cpp ./core/item.h ./core/slog.h ./core/threadmanager.cpp ./core/acceptbaseparser.cpp ./core/lastcontainer.h ./core/httpsimpleparser.h ./core/timezones.cpp ./core/groups.cpp ./core/requesttypes.h ./core/system.h ./core/bbcodeparser.cpp ./core/lock.h ./core/ipbancontainer.h ./core/group.h ./core/plugin.h ./core/run.cpp ./core/textstream.h ./core/sessionparser.h ./core/basethread.h ./core/mount.h ./core/htmlfilter.cpp ./core/user.cpp ./core/app.cpp ./core/image.cpp ./core/ugcontainer.h ./core/postmultiparser.h ./core/logmanipulators.h ./core/sessioncontainer.cpp ./core/dircontainer.h ./core/log.h ./core/session.h ./core/timezone.cpp ./core/mounts.h ./core/ipban.h ./core/cur.h ./core/misc.h ./core/dirs.h ./core/crypt.h ./core/run.h ./core/config.h ./core/job.cpp ./core/postmultiparser.cpp ./core/sessionmanager.cpp ./core/htmlfilter.h ./core/rebus.cpp ./core/dircontainer.cpp ./core/log.cpp ./core/user.h ./core/loadavg.h ./core/session.cpp ./core/mountparser.h ./core/mounts.cpp ./core/image.h ./core/plugindata.cpp ./core/request.cpp ./core/app.h ./core/basethread.cpp ./core/sessionidmanager.h ./core/winix_const.h ./core/sessionidmanager.cpp ./functions/upload.cpp ./functions/priv.h ./functions/env.cpp ./functions/default.h ./functions/node.h ./functions/specialdefault.h ./functions/timezone.cpp ./functions/pw.h ./functions/adduser.h ./functions/chmod.h ./functions/imgcrop.cpp ./functions/vim.h ./functions/account.h ./functions/mount.cpp ./functions/uptime.cpp ./functions/ckeditor.cpp ./functions/mkdir.cpp ./functions/reload.cpp ./functions/functionparser.h ./functions/logout.cpp ./functions/rmuser.cpp ./functions/rm.cpp ./functions/chown.h ./functions/nicedit.h ./functions/mv.h ./functions/node.cpp ./functions/specialdefault.cpp ./functions/adduser.cpp ./functions/upload.h ./functions/vim.cpp ./functions/env.h ./functions/timezone.h ./functions/who.h ./functions/cp.cpp ./functions/run.cpp ./functions/locale.h ./functions/imgcrop.h ./functions/passwd.h ./functions/mount.h ./functions/privchanger.cpp ./functions/functions.cpp ./functions/last.h ./functions/ckeditor.h ./functions/mkdir.h ./functions/reload.h ./functions/cat.h ./functions/download.h ./functions/ln.h ./functions/nicedit.cpp ./functions/functionbase.cpp ./functions/man.h ./functions/rm.h ./functions/meta.cpp ./functions/emacs.cpp ./functions/sort.h ./functions/who.cpp ./functions/ipban.h ./functions/locale.cpp ./functions/passwd.cpp ./functions/last.cpp ./functions/subject.h ./functions/download.cpp ./functions/cp.h ./functions/cat.cpp ./functions/login.cpp ./functions/tinymce.cpp ./functions/ln.cpp ./functions/run.h ./functions/uname.h ./functions/man.cpp ./functions/functions.h ./functions/privchanger.h ./functions/ls.cpp ./functions/template.h ./functions/stat.h ./functions/priv.cpp ./functions/default.cpp ./functions/functionbase.h ./functions/pw.cpp ./functions/sort.cpp ./functions/ipban.cpp ./functions/chmod.cpp ./functions/meta.h ./functions/account.cpp ./functions/emacs.h ./functions/subject.cpp ./functions/functionparser.cpp ./functions/uname.cpp ./functions/uptime.h ./functions/template.cpp ./functions/stat.cpp ./functions/tinymce.h ./functions/login.h ./functions/chown.cpp ./functions/logout.h ./functions/mv.cpp ./functions/rmuser.h ./functions/ls.h ./notify/notifypool.h ./notify/templatesnotify.cpp ./notify/notify.cpp ./notify/templatesnotify.h ./notify/notify.h ./notify/notifythread.cpp ./notify/notifypool.cpp ./notify/notifythread.h ./templates/who.cpp ./templates/item.cpp ./templates/mount.cpp ./templates/templates.h ./templates/locale.h ./templates/slog.cpp ./templates/doc.cpp ./templates/localefilter.cpp ./templates/config.cpp ./templates/patterns.h ./templates/miscspace.cpp ./templates/filters.cpp ./templates/login.cpp ./templates/man.cpp ./templates/changepatterns.h ./templates/stat.cpp ./templates/template.cpp ./templates/dir.cpp ./templates/user.cpp ./templates/rebus.cpp ./templates/patterncacher.cpp ./templates/upload.cpp ./templates/textextstream.h ./templates/adduser.cpp ./templates/ipban.cpp ./templates/htmltextstream.h ./templates/indexpatterns.h ./templates/templates.cpp ./templates/winix.cpp ./templates/locale.cpp ./templates/misc.h ./templates/patterns.cpp ./templates/passwd.cpp ./templates/last.cpp ./templates/uptime.cpp ./templates/insert.cpp ./templates/changepatterns.cpp ./templates/localefilter.h ./templates/miscspace.h ./templates/ls.cpp ./templates/sys.cpp ./templates/priv.cpp ./templates/textextstream.cpp ./templates/htmltextstream.cpp ./templates/env.cpp ./templates/indexpatterns.cpp ./templates/patterncacher.h ./templates/misc.cpp ./templates/generic.cpp ./templates/currentdate.cpp ./templates/server.cpp ./plugins/group/init.cpp ./plugins/group/groups.h ./plugins/group/groupinfo.cpp ./plugins/group/groupinfo.h ./plugins/group/templates.cpp ./plugins/group/groups.cpp ./plugins/stats/statssession.h ./plugins/stats/bot.h ./plugins/stats/stats.cpp ./plugins/stats/templates.cpp ./plugins/stats/init.cpp ./plugins/stats/stats.h ./plugins/stats/templates.h ./plugins/stats/bot.cpp ./plugins/gallery/galleryinfo.cpp ./plugins/gallery/templates.cpp ./plugins/gallery/gallery.cpp ./plugins/gallery/galleryinfo.h ./plugins/gallery/init.cpp ./plugins/gallery/gallery.h ./plugins/export/init.cpp ./plugins/export/export.h ./plugins/export/exportthread.cpp ./plugins/export/message.h ./plugins/export/edb.cpp ./plugins/export/funexport.cpp ./plugins/export/exportinfo.cpp ./plugins/export/exportthread.h ./plugins/export/edb.h ./plugins/export/funexport.h ./plugins/export/exportinfo.h ./plugins/ticket/funticket.h ./plugins/ticket/init.cpp ./plugins/ticket/ticketinfo.h ./plugins/ticket/showtickets.cpp ./plugins/ticket/createticket.cpp ./plugins/ticket/tdb.cpp ./plugins/ticket/pluginmsg.h ./plugins/ticket/createticket.h ./plugins/ticket/showtickets.h ./plugins/ticket/sessiondata.cpp ./plugins/ticket/tdb.h ./plugins/ticket/sessiondata.h ./plugins/ticket/ticket.h ./plugins/ticket/editticket.cpp ./plugins/ticket/funticket.cpp ./plugins/ticket/templates.cpp ./plugins/ticket/editticket.h ./plugins/ticket/ticketinfo.cpp ./plugins/menu/cache.cpp ./plugins/menu/init.cpp ./plugins/menu/cache.h ./plugins/menu/templates.cpp ./plugins/thread/funthread.cpp ./plugins/thread/threadinfo.cpp ./plugins/thread/funthread.h ./plugins/thread/threadinfo.h ./plugins/thread/createthread.cpp ./plugins/thread/reply.cpp ./plugins/thread/showthreads.cpp ./plugins/thread/templates.cpp ./plugins/thread/createthread.h ./plugins/thread/reply.h ./plugins/thread/showthreads.h ./plugins/thread/init.cpp ./plugins/thread/templates.h ./plugins/thread/tdb.cpp ./plugins/thread/pluginmsg.h ./plugins/thread/thread.h ./plugins/thread/tdb.h ./plugins/mailregister/init.cpp ./plugins/mailregister/mdb.h ./plugins/mailregister/mdb.cpp ./plugins/mailregister/funregistermail.h ./plugins/mailregister/funregistermail.cpp ./plugins/mailregister/funregistermail_showusers.h ./plugins/mailregister/funregistermail_showusers.cpp ./plugins/mailregister/registermail_info.h ./plugins/mailregister/templates.cpp ./plugins/mailregister/registermail_info.cpp ../ezc/src/funinfo.h ../ezc/src/patternparser.cpp ../ezc/src/generator.h ../ezc/src/functions.h ../ezc/src/pattern.cpp ../ezc/src/item.cpp ../ezc/src/patternparser.h ../ezc/src/pattern.h ../ezc/src/item.h ../ezc/src/ezc.h ../ezc/src/cache.cpp ../ezc/src/cache.h ../ezc/src/blocks.h ../ezc/src/blocks.cpp ../ezc/src/objects.h ../ezc/src/outstreams.h ../tito/src/crypto.cpp ../tito/src/misc.h ../tito/src/base64.cpp ../tito/src/crypto.h ../tito/src/aes.cpp ../tito/src/base64.h ../tito/src/misc.cpp ../tito/src/aes.h ../pikotools/mainparser/sample/sample.cpp ../pikotools/mainparser/mainparser.cpp ../pikotools/mainparser/mainparser.h ../pikotools/space/space.h ../pikotools/space/spaceparser.cpp ../pikotools/space/space.cpp ../pikotools/space/spaceparser.h ../pikotools/space/jsontospaceparser.cpp ../pikotools/space/spacetojson.cpp ../pikotools/space/jsontospaceparser.h ../pikotools/space/spacetojson.h ../pikotools/date/date.h ../pikotools/date/date.cpp ../pikotools/membuffer/membuffer.h ../pikotools/utf8/utf8.cpp ../pikotools/utf8/utf8.h ../pikotools/textstream/textstream.h ../pikotools/textstream/types.h ../pikotools/convert/convert.h ../pikotools/convert/inttostr.h ../pikotools/mainspaceparser/mainspaceparser.cpp ../pikotools/mainspaceparser/mainspaceparser.h \ No newline at end of file diff --git a/html/fun_registermail.html b/html/fun_registermail.html new file mode 100644 index 0000000..16c7001 --- /dev/null +++ b/html/fun_registermail.html @@ -0,0 +1,4 @@ + +[include "slog.html"] + + diff --git a/plugins/mailregister/Makefile.dep b/plugins/mailregister/Makefile.dep index cf7f4a6..2c177fb 100644 --- a/plugins/mailregister/Makefile.dep +++ b/plugins/mailregister/Makefile.dep @@ -274,6 +274,7 @@ mdb.o: ../../../winix/core/session.h ../../../winix/core/user.h mdb.o: ../../../winix/core/plugindata.h ../../../winix/core/rebus.h mdb.o: ../../../winix/core/ipban.h ../../../winix/core/mount.h mdb.o: ../../../winix/templates/locale.h +registermail_info.o: registermail_info.h templates.o: ../../../winix/templates/templates.h ../../../ezc/src/ezc.h templates.o: ../../../ezc/src/generator.h ../../../ezc/src/blocks.h templates.o: ../../../winix/core/item.h ../../../ezc/src/cache.h diff --git a/plugins/mailregister/Makefile.o.dep b/plugins/mailregister/Makefile.o.dep index 35d4a76..cfb5797 100644 --- a/plugins/mailregister/Makefile.o.dep +++ b/plugins/mailregister/Makefile.o.dep @@ -1 +1 @@ -o = funregistermail.o funregistermail_showusers.o init.o mdb.o templates.o +o = funregistermail.o funregistermail_showusers.o init.o mdb.o registermail_info.o templates.o diff --git a/plugins/mailregister/funregistermail.cpp b/plugins/mailregister/funregistermail.cpp index de9ec6f..43d536b 100644 --- a/plugins/mailregister/funregistermail.cpp +++ b/plugins/mailregister/funregistermail.cpp @@ -80,12 +80,28 @@ void FunRegisterMail::MakePost() void FunRegisterMail::MakeGet() { mail = cur->request->ParamValue(L"mail"); - TrimWhite(mail); + int list_id = Toi(cur->request->ParamValue(L"list_id")); - if( ValidateEmail(mail) ) + if( pinfo->HasListId(list_id) ) { - log << log3 << "RM: registering e-mail address: " << mail << logend; - pmdb->AddMail(mail); + TrimWhite(mail); + + if( ValidateEmail(mail) ) + { + log << log3 << "RM: registering e-mail address: " << mail << logend; + slog << loginfo << "Thank you, your e-mail address has been added to our list" << logend; + + pmdb->AddMail(list_id, mail); + } + else + { + log << log2 << "RM: email: " << mail << " doesn't seem to be correct (skipping)" << logend; + slog << logerror << "Sorry but the e-mail address: " << mail << " doesn't seem to be correct" << logend; + } + } + else + { + log << log2 << "RM: there is no a list with id: " << list_id << " (skipping request)" << logend; } } diff --git a/plugins/mailregister/init.cpp b/plugins/mailregister/init.cpp index d3af12b..cf447db 100644 --- a/plugins/mailregister/init.cpp +++ b/plugins/mailregister/init.cpp @@ -69,11 +69,83 @@ void AddWinixFunctions(PluginInfo & info) } +// create a class from these methods +void ReloadConfigFile(PluginInfo & info, Item & file) +{ + PT::Space space; + PT::SpaceParser parser; + + parser.SetSpace(space); + PT::SpaceParser::Status status = parser.ParseString(file.content); + + if( status == PT::SpaceParser::syntax_error ) + { + log << log1 << "MR: syntax error in file: " << file.url << ", line: " << parser.line << " (skipping this file)" << logend; + } + else + if( status == PT::SpaceParser::ok ) + { + std::wstring * list_id_str = space.GetValue(L"list_id"); + + if( list_id_str ) + { + int list_id = Toi(*list_id_str); + rm_info.lists.insert( std::make_pair(list_id, file.url) ); + log << log3 << "RM: file: " << file.url << " parsed successfully" << logend; + } + else + { + log << log1 << "MR: file: " << file.url << " doesn't have a list_id defined (skipping this file)" << logend; + } + } +} + + + +void ConfigReload(PluginInfo & info) +{ + rm_info.lists.clear(); + std::wstring dir_str = info.config->Text(L"rm_directory", L"/etc/registermail.d"); // !! give a better config variable name + + if( dir_str.empty() ) + { + log << log1 << "RM: rm_directory config option is empty" << logend; + return; + } + + Item * dir = info.system->dirs.GetDir(dir_str); + + if( dir ) + { + DbItemQuery iq; + std::vector items; + + iq.SetAll(true, false); + iq.WhereParentId(dir->id); + + info.db->GetItems(items, iq); + + for(Item & item : items) + { + ReloadConfigFile(info, item); + } + } +} + + +void ProcessRequest(PluginInfo & info) +{ + if( info.cur->request->function == &info.functions->fun_reload ) + { + if( info.cur->request->IsParam(L"mailregister") ) + ConfigReload(info); + } +} + void InitPlugin(PluginInfo & info) { - - + ConfigReload(info); } @@ -102,11 +174,12 @@ using namespace MailRegister; plugin.Assign(WINIX_CREATE_FUNCTIONS, AddWinixFunctions); plugin.Assign(WINIX_PLUGIN_INIT, InitPlugin); - + plugin.Assign(WINIX_PROCESS_REQUEST, ProcessRequest); info.p1 = (void*)(plugin_name); + } diff --git a/plugins/mailregister/mdb.cpp b/plugins/mailregister/mdb.cpp index 1d30e79..c5e7d41 100644 --- a/plugins/mailregister/mdb.cpp +++ b/plugins/mailregister/mdb.cpp @@ -43,7 +43,7 @@ namespace MailRegister -bool MDb::AddMail(const std::wstring & mail) +bool MDb::AddMail(int list_id, const std::wstring & mail) { PGresult * r = 0; Error status = WINIX_ERR_OK; @@ -51,7 +51,8 @@ bool MDb::AddMail(const std::wstring & mail) try { query.Clear(); - query << R("insert into plugins.registermail (mail) values (") + query << R("insert into plugins.registermail (list_id, mail) values (") + << list_id << mail << R(");"); diff --git a/plugins/mailregister/mdb.h b/plugins/mailregister/mdb.h index 0cfe901..dc378b7 100644 --- a/plugins/mailregister/mdb.h +++ b/plugins/mailregister/mdb.h @@ -40,20 +40,25 @@ #include "db/dbbase.h" #include "core/dirs.h" + + + namespace Winix { + namespace MailRegister { + class MDb : public DbBase { public: - bool AddMail(const std::wstring & mail); + bool AddMail(int list_id, const std::wstring & mail); bool GetUsers(std::vector & container, bool clear_container = true); diff --git a/plugins/mailregister/registermail_info.cpp b/plugins/mailregister/registermail_info.cpp new file mode 100644 index 0000000..d732877 --- /dev/null +++ b/plugins/mailregister/registermail_info.cpp @@ -0,0 +1,46 @@ +/* + * This file is a part of Winix + * and is distributed under the 2-Clause BSD licence. + * Author: Tomasz Sowa + */ + +/* + * Copyright (c) 2016, Tomasz Sowa + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ + +#include "registermail_info.h" + + + +bool RegisterMailInfo::HasListId(int id) +{ + return lists.find(id) != lists.end(); +} + + + + diff --git a/plugins/mailregister/registermail_info.h b/plugins/mailregister/registermail_info.h index 1aecb9d..45415a9 100644 --- a/plugins/mailregister/registermail_info.h +++ b/plugins/mailregister/registermail_info.h @@ -37,6 +37,7 @@ #include #include +#include @@ -46,9 +47,11 @@ public: std::vector mail_list; + // list_id -> config_file (without dir) + std::map lists; - + bool HasListId(int id); };