350fc551e5fixed: a default winix function was selected before the mount point was calculated also a mount point should be cleared (set to an empty mount point) at the end of a requestTomasz Sowa2018-07-02 12:02:19 +00:00
1c05c31721added: antispam mechanism each html form has a hidden form_id and counter_id counter_id on the client side is generated through javascript code on the server the form_id and counter_id is stored in the session after sending the html form the server checks the form_id and counter_idTomasz Sowa2018-07-02 11:16:36 +00:00
08123fe6acchanged the algorithm how sessions work: - if the IP is banned or there is no a winix function then we set a temporary session - else if there is a session's cookie sent by the client then: - if the cookie is a correct session's cookie then we set the session from the cookie - or if the cookie is not a correct session's cookie (e.g. session expired) and the winix function requires a cookie then we set a new session - or if there is no cookie sent then if a winix function requires a session we create a new sessionTomasz Sowa2018-06-20 15:00:02 +00:00
35b93b1655changed: now we are parsing directories and functions before checking a session added: need_session to FunctionBase (true if the functions requires a session) default: trueTomasz Sowa2018-06-19 13:52:08 +00:00
436a198c36changed: using PT::ToLower instead of ToSmall using PT::ToUpper instead of ToCapital using PT::EqualNoCase instead of EqualNoCaseTomasz Sowa2018-05-25 17:22:12 +00:00
aa58faf145some work on integrating ckeditor4 added ezc blocks: ckeditor_old_browsers_support, ckeditor, ckeditor_small defined in ckeditor.htmlTomasz Sowa2018-05-10 17:21:39 +00:00
3f29cdc01echanged: config parameters: log_check_proxy_ip_header -> check_proxy_ip_header and log_proxy_ip_header -> proxy_ip_header added: Request::ip_str (std::wstring) (string of the client's IP address)Tomasz Sowa2018-05-01 11:22:55 +00:00
ba7d55b7c1added: config parameters: bool log_check_proxy_ip_header; // check whether there is a 'log_proxy_ip_header' header // and if so then log the IP address from it // default: falseTomasz Sowa2018-05-01 10:43:20 +00:00
6252a0e732added: Request::post_in (PT::Space) for input when application/json content type is used from the clientTomasz Sowa2018-04-26 18:56:31 +00:00
ca14b1a427added: Request::header_in (Space) http input headers (without cookies) added: config parameter: log_env_http_variables (bool) (for logging http headers) added: support for DELETE http method, added method FunctionBase::MakeDelete() changed: winix version incremented to 0.6.6Tomasz Sowa2018-04-25 19:48:47 +00:00
b01db89942added config parameter: db_postgresql_smaller_than_10 default false if true then we are not using ROW() statements in sql queriesTomasz Sowa2018-04-25 09:37:56 +00:00
fd421c54e3changed: Makefile (added Logger from pikotools)Tomasz Sowa2018-04-23 14:29:58 +00:00
55992b5066added: std::wstring * Request::ParamValuep(const wchar_t * param_name) for taking a pointer (can be null) to a parameter value added: bool System::IsSSLRequired(bool try_to_use_ssl) returns true if we should use ssl try_to_use_ssl is to be meant: config->use_ssl, config->use_ssl_static, config->use_ssl_commonTomasz Sowa2018-04-22 21:26:56 +00:00
a5dfc9974fadded: a virtual dctor() for BaseThread classTomasz Sowa2018-04-16 22:44:59 +00:00
3eff400d88added: "assume_connection_is_through_ssl" config parameter winix is testing an environment variable "HTTPS" for the value "on" to think that the connection is made via SSL you can set assume_connection_is_through_ssl to true for the winix to not testing any environment variables but just think the connection was made by https (useful when using proxy) default: falseTomasz Sowa2018-01-01 00:14:02 +00:00
5ab816b5befixed: in progresql 10 we have to use ROW() expression to construct a row where only one item is givenTomasz Sowa2018-01-01 00:12:33 +00:00
e57840faedfixed: static files loaded to /var such as /var/ckeditor_winix.js were not properly returned (html filter was used but they are mostly javascript files) added: new Item::ContentType: ct_other if an item has ct_other then the html filter is not used for the contentTomasz Sowa2016-07-13 13:13:56 +00:00
240bf4dc5dchanged: the way how raw template is set option for setting raw template from 'emacs' function has been removed now we have index_raw.html template and it can be set from 'template' function removed: template index_fullscreen.html changed: some work in miscspace (changed: space_list_tab, space_list_tab_value and space_list_tab_has_next) fixed: main index template could not be set through 'template' functionTomasz Sowa2016-04-04 16:02:36 +00:00
abd1500f07changed: some refactoring in miscspaceTomasz Sowa2016-03-23 15:20:42 +00:00
42144bb31csome refactoring in miscspace(.h|.cpp) space() renamed to space_value() and takes a third parameter: escape (bool) space_noescape() removedTomasz Sowa2016-03-22 14:53:43 +00:00
7ed41a03aefixed: some paths in Makefile.dep were not relativeTomasz Sowa2016-03-18 08:56:19 +00:00
1286ceeddfchanged: winix project has been moved to 'winixd' subdirectory in Makefiles we are caltulating relative paths now (by using relative_path program)Tomasz Sowa2016-03-17 13:46:20 +00:00
145efe937cmoved winix directories to winixdsubdirectoryTomasz Sowa2016-03-17 08:26:02 +00:00
ed5adb3f23moved winix directories to winixd subdirectoryTomasz Sowa2016-03-17 08:24:59 +00:00
7d0508961eadded: log info about what html template is usedTomasz Sowa2016-03-16 14:11:47 +00:00
e53e2e6af9added: some work in RegisterMail plugin (added looking for files in a config directory)Tomasz Sowa2016-02-03 18:10:40 +00:00
f15da4d049fixed: in FunctionParser we do not treat '+' as a space added: some work in MailRegister plugin (adding mails to db, showing mails)Tomasz Sowa2016-02-01 10:15:23 +00:00
057607f9e5start working on a new plugin: mailregisterTomasz Sowa2016-01-31 19:52:17 +00:00
c433b3fd41updated to the new Ezc API [ezc stream] has gone, now we have [ezc out] and [out] the output streams have names now: it's a std::map, before we have a std::vector and the streams are serialized to "out" space in json Request::out_streams[] are split into Request::out_main_stream and Request::out_streams classTomasz Sowa2015-11-15 22:23:36 +00:00
632b49ab90fixed: meta and admin meta information were not saved in memory (in system.dirs) when 'meta' winix function was used added: to DbItemsQuery sort_index_asc and sort_index_date different sort type can be made by 'index' and by 'date'Tomasz Sowa2015-06-16 02:37:07 +00:00
f54df8d600updated: to the new EZC api (ezc functions can be methods of some special objects)
0.6.5
Tomasz Sowa2015-06-14 18:24:08 +00:00
d8451ceaa0fixed: checking for ssl redirect we should take into account cur.request->function->need_ssl tooTomasz Sowa2015-05-29 09:46:29 +00:00
62f178c2eefixed: in App::CheckIfNeedSSLredirect() winix made an incorrect redirect from/to SSLTomasz Sowa2015-05-29 09:24:43 +00:00
eb4e7343e7changed: now 'emacs' winix function uses CodeMirror editor currently only htmlmixed mode is implementedTomasz Sowa2015-04-18 18:50:39 +00:00
5274e8e8ffadded: "server_mode" config option (std::wstring) you can assign any string to it such as "production" "dev" this value is not used by winix itself you can refer to it from [server_mode] and [server_mode_is] ezc functionsTomasz Sowa2015-04-16 14:43:52 +00:00
ae2a885d6cfixed: rm winix function returned incorrectly formated json when using jquery upload (delete file button)Tomasz Sowa2015-03-20 11:00:22 +00:00
901663b145updated: to the new ezc api added: following ezc functions: ezc_and_not, ezc_any_not, ezc_or_not, ezc_one_not, is, is_not, is_empty, is_not_emptyTomasz Sowa2015-03-08 23:22:05 +00:00
dc301d4c50changed: editors (emacs, ckeditor...) doesn't set an item's title now (if it was empty)Tomasz Sowa2015-03-02 21:23:29 +00:00
34f0535a26added: some ezc functions for displaying current date current_sec, current_min, current_hour, current_year, ...Tomasz Sowa2015-02-22 10:23:52 +00:00
af0e2a778dchanged: some refactoring in System: in IsMemberOfGroup method changed: some log messages at startup (about non existing empty group for uploads directory)Tomasz Sowa2015-01-02 08:18:06 +00:00
904f1e70f2fixed: compiling on Debian (it has no MSG_EOF flag)Tomasz Sowa2015-01-02 07:15:22 +00:00
ddf7ef30adfixed: compiling od Debian sockaddr_un has no sun_len memberTomasz Sowa2015-01-02 07:14:15 +00:00
0a43870e76fixed: the way how winix is closing beforehand we made a http connection from the special thread now we just send a fastcgi packet to the unix socketTomasz Sowa2015-01-02 07:01:08 +00:00
f875bd2944changed: when a client doesn't send a session cookie we can instead of ban just use a temporary session added: config option: // the way we behave when no_session_cookie_treshold limit is exceeded // 0 - if a client doesn't send a session cookie again then use a temporary session // (other sessions from this IP address are not affected) // 1 - add this IP address to ban list and create a temporary session // (this will block other sessions from this IP address too) // default: 0 int no_session_cookie_ban_mode;Tomasz Sowa2014-11-25 12:02:22 +00:00
c9bf20201badded: possibility to ban if a session cookie is incorrect (when we are using encoded cookies) added: possibility to ban if a client tries to hijack the session cookie added: possibility to ban if a client did not send a session cookie renamed: ezc functions: login_cannot_login -> ipban_is_login_allowed_from_this_ip (and the return value was changed) login_when_available_login -> ipban_current_ip_expires_time added: config options: // after how many broken encoded cookie we should ban the current IP // default: 2 (value in the range <0 - 65535>) size_t broken_encoded_cookie_treshold;Tomasz Sowa2014-11-24 20:22:30 +00:00
76314aab10added: possibility to encode the session cookie (added files core/sessionidmanager.h and core/sessionidmanager.cpp) added: config options: // whether or not we should encode the session cookie // (we have a special algorithm) // default: false bool session_cookie_encode;Tomasz Sowa2014-11-22 15:30:56 +00:00
3547d326b8define AR macro in the main Makefile this is for pikotools and tito librariesTomasz Sowa2014-11-12 04:14:16 +00:00
0ecb2ac70eadded: to HtmlTextStream: Escape(bool) method now the output html streams can be turn into no-escaping mode default true (set when a request is clearing)Tomasz Sowa2014-11-06 21:17:41 +00:00
8f8defe0deupdated: to the new Ezc API removed statements: [if-index ...] [is ...] [is-no ...] added: generic ezc functions: and, any (the same as and), or, one (the same as or), not, cmp, trim to_lower, to_upper, index changed: in misc: added treat_new_line_as_white flag to IsWhite() SkipWhite() and TrimWhite() TrimWhite(), TrimFirst(), TrimLast(), Trim() are using only wide characters now (they were templates before) added: IsInt(), IsSize(), IsFloat() changed: version to 0.6.4
0.6.4
Tomasz Sowa2014-11-02 17:47:34 +00:00
db5572e864removed: svn:executable attribute from filesTomasz Sowa2014-11-01 17:05:20 +00:00
4fda06b547fixed: PatternCacher incorrectly rebuilt the cache some new Ezc::Pattern objects were inserted the storage container is std::map<long,...> but we traverse it as a std::vector e.g.: for(size_t i=0 ; i<pattern_tab.size() ; ++i) RebuildCache(pattern_tab[i].pattern); so eventually new patterns were added to the map (operator [])Tomasz Sowa2014-10-21 07:27:21 +00:00
fb18b2238eadded: two options to the config: ezc_error_prefix (string) ezc_error_postfix (string) // prefix and postfix used when there is an error in Ezc patterns // default: // prefix: "<!-- " // postfix: " -->" added: Ezc::Blocks to templates added: although patterns have pointers to functions and blocks cached the Ezc::Generator should use SetFunctions() and SetBlocks() method in order to correctly recognize variables (aliases)Tomasz Sowa2014-10-19 21:20:09 +00:00
8196fb77d1changed: now we do not use std::string and char* in the Winix API everywhere we are using std::wstring and wchar_t* (std::string and char* is used only locally in some places especially when creating a path to OS file system etc.) added: to the special thread when winix closes: a write function for curl: FetchPageOnExitCurlCallback() without this function the curl library will print the page's content to the standart output changed: TextStream<> class from core can make UTF8<->wide strings conversions removed: from config: utf8 option now winix expects UTF8 from the user's input (html forms, url-es) and outputs strings in the UTF8 format
0.6.3
Tomasz Sowa2014-10-09 20:44:56 +00:00
4abf6642f7setting a Winix Licence: 2 Clause BSD Licence changed: version to 0.6.2
0.6.2
Tomasz Sowa2014-10-04 18:04:03 +00:00
e3284dcfbcfixed: winix incorrectly used config options: upload_dirs_chmod and upload_files_chmod added: to config: upload_group a group name for newly uploaded files (and created necessary directories in the file system)Tomasz Sowa2014-09-28 17:30:05 +00:00
f064ff6b3dadded: htmltextstream escapes more characters now: added characters: " -> &#quot; ' -> ' (' but IE8 has a problem with ') 10 -> 13 -> added: two ezc filters: fil_html_quote " -> &#quot; ' -> ' (' but IE8 has a problem with ') fil_html_newline 10 -> 13 -> changed: fun_subject.html uses <div class="winix_input_a"> nowTomasz Sowa2014-09-22 23:54:24 +00:00
bfa5d8cc05changed: plugin jQuery File Upload has been updated to version 9.7.0 (changed 'upload' and 'rm' winix functions)Tomasz Sowa2014-08-06 20:14:10 +00:00
6614919c13added: possibility to save a pid file new config option: pid_file (a full path to a pid file)Tomasz Sowa2014-08-04 21:11:14 +00:00
8379acdb7ffixed: item content should not be escaped in 'raw' mode (it was not escaped only when execute bits were set)Tomasz Sowa2014-08-03 18:33:07 +00:00
160ddc258dadded: to htmlfilter: the filter is able to recognize a special tag, default called: <nofilter> content between <nofilter>...</nofilter> will not be filteredTomasz Sowa2014-06-18 23:18:28 +00:00
01892d2766added: flag has_pass to User structure if false that means the user has not set a password yet (this can be used by a plugins to create a new account without a password set) in order to login the user first has to set a new password (this can be done from a some kind of activation link send via email etc)
0.6.1
Tomasz Sowa2014-06-07 11:20:44 +00:00
222955a2e7fixed: in Synchro: we should have a table (map) of reference counters each one for each thread fixed: on Linux: pthread mutexes by default behaves differently than on FreeBSD we have to set PTHREAD_MUTEX_ERRORCHECK attribute when creating a mutexTomasz Sowa2014-02-14 11:20:22 +00:00
37b22c3559added: some debug logs to export pluginTomasz Sowa2014-02-12 22:32:06 +00:00
afbd522362fixed: in Makefile: 'cp' in Linux behaves differentlyTomasz Sowa2014-02-12 20:49:50 +00:00
a4bed3ab14fixed: compiling on Debian with GCC 4.8Tomasz Sowa2014-02-12 17:21:42 +00:00
145445c713changed: now we use curl to fetch a page from the special thread when winix quits (before we were using BSD's fetch) fixed: we didn't use FCGX_Finish_r() on the request made from the special thread so the thread hangs (now we can use pthread_join correctly from the main thread)Tomasz Sowa2014-02-11 21:00:32 +00:00
7fa9314c6bchanged: in ClearOutputStreams() referencing 'config' only if not nullTomasz Sowa2013-12-23 03:29:33 +00:00
5d37b6c6aefixed: winix incorrectly sent the binary stream headers and cookies were not sent (instead of headers the content was sent, so the client's browser was unable to open it correctly) added: standard http headers are added by winix only if there are not such headers already e.g. if a plugin adds "Content-Type" header then winix will not overwrite it (headers names are case sensitive)Tomasz Sowa2013-12-19 17:19:47 +00:00
fe1f84e29dadded: -O0 -g for CXXFLAGS for temporarily debuggingTomasz Sowa2013-12-18 12:13:28 +00:00
83e27a6653fixed: problem with building added #include <utility> to App (for std::move)Tomasz Sowa2013-12-09 16:03:45 +00:00
ee9c68b04eadded: generating Content-Length header when text answer is sent to the client added: now we are able to use the html filter for the whole out_streams (when ajax is used the output is filtered too) splitted FilterCompressSend() function -- first we are making the filtering (after filtering we know the size of the content to send) added: to Compress: Compressing(const char * source, size_t source_len, BinaryPage & out_stream, int encoding); changed: some refactoring in AppTomasz Sowa2013-12-04 01:21:57 +00:00
c04874397bfixed: security vulnerability in 'ln' winix function a user could create a hardlink to any file and the new link had user_id, group_id and permissions the same as for new generated files, this allowes to overwrite any existing file in the filesystem, now user_id, group_id, permissions are the same as from the oryginal fileTomasz Sowa2013-12-03 12:33:41 +00:00
375604edd6removed: Request::debug all stream used for debugging info some environment variables were put there removed: config variable: debug_info removed: Request::role (responder, authorizer) now we have only one role: responder added: new config variables: log_env_variables (default false) - when true then fastcgi environment variables are logged to the log file log_http_answer_headers (default false) - when true all http headers created by winix ale logged (note that the www server can add/adjust other headers) changed: some refactoring in Request struct changed: CookieTab to std::map<std::wstring, std::wstring> beforehand std::string was used (changed CookieParser as well) changed: Request::SetCookie() to AddCookie() added: Request::out_headers (a PT::Space struct) http headers (without cookies) send back to the client added: Request::out_cookies (a PT::Space struct) cookies send to the client changed: App class to use Request::out_headers and Request::out_cookies some SendHeaders...() methods were renamed to PrepareHeaders...() and they create output in Request::out_headers first (and out_cookies) and later it is sent added: two plugin messages: // http headers (without cookies) were created and are ready to send // here you can make some changes to them // in p1 you have a pointer to the PT::Space (Request::out_headers) #define WINIX_PREPARE_TO_SEND_HTTP_HEADERS 31070Tomasz Sowa2013-11-29 21:39:23 +00:00
3e32f3784fremoved: -O0 -g from production MakefileTomasz Sowa2013-11-25 23:44:01 +00:00
5c4a54d998added: -O0 -g to the production MakefileTomasz Sowa2013-11-25 23:37:52 +00:00
3af3ac3f6fremoved: ezn patterns for rawcontent and ajaxcontent: index_rawcontent.html, index_ajaxcontent.html now we have out_streams in Request and some special keyword in ezc templates for sending content to the specified streams changed: the way how winix answers to the client's browsers: info from Request class: winix answer send to the client's browser | | depending on send_bin_stream ------------------------------------------------- | | text answer binary answer | | depending on return_json sending out_bin_stream ------------------------------------ | | normal request ajax request | | sending out_streams[0] depending on return_info_only ------------------------------------------------------ | | generating JSON object from: generating JSON object only from info out_streams and info, e.g.: e.g.: { { info object serialized here } "stream_1": "some html content", "stream_2": "some other html content", "info": { info object serialized here } } note that out_streams[0] is not sent in JSON answers
0.5.6
Tomasz Sowa2013-11-14 20:59:23 +00:00
d801f53154changed: now we are using the C++ 11 language (-std=c++11) and we are using the clang compiler by default changed: Makefile files have been a little cleaned the main Makefile now will not compile winix and winix.so if there were not any changes to source files (it's faster) (added Makefile.dep in the global directory with list of all source/header files) changed: winix version to 0.5.5
0.5.5
Tomasz Sowa2013-10-15 21:57:51 +00:00
a6b06f82e9fixed: compiling in the clang (new version of c++ std lib) (added some header files) added: three messsages in ticket plugin: // send by showtickets winix function when tickets are loaded (and sorted) // in p1 you have a pointer to the ticket tab: std::vector<Ticket::Ticket> (include "ticket.h") // in p2 you have a pointer to the sort tab: std::vector<Item*> // those tables don't have to be equal in size (in the case when there is no some tickets in the database) #define WINIX_PL_TICKET_TICKETS_LOADED 4106Tomasz Sowa2013-10-10 11:59:21 +00:00
b7f3f84080changed: in 'showtickets' winix function now tickets are sorted by the sort_index and then by date changed: html in 'sort' winix function (added items' subjects to the item lists)Tomasz Sowa2013-07-08 14:42:14 +00:00
26715bdd4cchanged: html for 'upload' winix function all static files (css/js) are downloaded from our server nowTomasz Sowa2013-07-02 07:14:19 +00:00
083fa7857ffixed: in notify/notify.cpp: a correct locale id should be taken (we were not able to send: a mail with an activation link and a mail with the reset password link when we didn't have a locale with id 0 loaded)Tomasz Sowa2013-05-16 21:02:17 +00:00
9ffda3e070changed: in passwd: a redirect make only if a password has been changedTomasz Sowa2013-05-16 20:11:27 +00:00
81160dbbe9fixed: a passwd winix function should allow a non loged person to reset his password (permission fix)Tomasz Sowa2013-05-16 20:08:07 +00:00
7c266b85e2added: winix function 'account' code for activating an account has been moved here from Pw changed: the form for reseting a user's password has been moved to 'passwd' winix function (it was in Pw before)Tomasz Sowa2013-05-16 19:26:44 +00:00
48cdca7549changed: in fun_gallery.html: added js code to get the proper image id from urlTomasz Sowa2013-05-14 08:37:22 +00:00
1c401eae3badded: to Rm function: bool Rm::RemoveFileOrSymlink(long item_id, bool check_access) added: in ticket plugin: possibility to remove a file/image (not finished yet)Tomasz Sowa2013-05-06 07:23:44 +00:00
0e9eb30b5dadded: some ezc function to ticket plugin: ticket_param_value_for_param_id tickets_tab_param_value_for_param_id tickets_tab_conf_tab_param_name tickets_tab_conf_tab_file_tab tickets_tab_conf_tab_file_tab_index tickets_tab_conf_tab_file_tab_path tickets_tab_conf_tab_file_tab_itemid tickets_tab_conf_tab_file_tab_metaTomasz Sowa2013-04-24 01:21:19 +00:00
c10c9393c0changed: plugin 'export': export winix function the checkbox is now selected when we want to export static files too (default it is not checked)Tomasz Sowa2013-04-17 00:37:39 +00:00
8705b3437cfixed: imgcrop winix function should load only images (when called in a directory) added: to reload winix function: reloading (clearing) the cache from 'menu' plugin added: to 'menu' plugin possibility to read 'meta' information from files third argument 'withmeta' to menu_dir_tab ezc function e.g. [for menu_dir_tab "/directory" "..." "withmeta"]...[end] and some ezc functions to retrieve the meta valuesTomasz Sowa2013-04-16 09:51:36 +00:00
aed891764aadded: to config: HasValue() methods for checking if a value exists (useful for checking lists -- they don't have to be copied out)Tomasz Sowa2013-04-02 22:24:30 +00:00
495499d12fadded: a new winix function: imgcrop for cropping images (and thumbnails) www.domain.com/dir/file.jpg/imgcrop -- crop an image www.domain.com/dir/file.jpg/imgcrop/thumb -- crop an image's thumbnail www.domain.com/dir/file.jpg/imgcrop/newthumb -- crop and create a new thumbnail (from an original image) www.domain.com/dir/imgcrop -- show images' list with above options added: to Image class: some methods for cropping
0.5.4
Tomasz Sowa2013-03-29 22:03:28 +00:00