now after some incorrent login attempts your IP can be banned or blocked
(see new config variables)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@902 e52654a7-88a9-db11-a3e9-0013d4bc506e
this message is sent before calling MakePost() or MakeGet()
if you return false (which is default) you can prevent the access
to the resource
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@901 e52654a7-88a9-db11-a3e9-0013d4bc506e
now we have winix.css in common/winix directory
it is automatically loaded by index_head_functions_add.html
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@898 e52654a7-88a9-db11-a3e9-0013d4bc506e
bool IsWhite(const wchar_t * str, bool treat_new_line_as_white)
bool IsWhite(const std::wstring & str, bool treat_new_line_as_white)
return true if the whole string is white (or an empty string)
added: global variable in admin environment for an user: "display_name"
if defined it is used to display an user's name instead of its login
it is used in: void print_user_name(Info & i, User & user);
(tickets, threads, cat function etc)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@895 e52654a7-88a9-db11-a3e9-0013d4bc506e
beforehand we didn't take into accout default winix functions
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@894 e52654a7-88a9-db11-a3e9-0013d4bc506e
// try to use SSL
// if in the config 'use_ssl' is true and 'use_ssl_only_for_logged_users' is true
// then ssl is used only for logged users but sometimes there is a need to use
// SSL even if noone is logged (for example for such functions like 'login' or 'adduser')
// default: false
// (this option is ignored if 'use_ssl' in the config is false)
bool need_ssl;
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@892 e52654a7-88a9-db11-a3e9-0013d4bc506e
renamed Hash() -> HashBin()
HashBin() is using a binary output from OpenSSL now
previously we are using the hex output and with the new OpenSSL version
the text has additional characters and causes some problems
added: HashHex() - it is using the HashBin() and then converts the output
to hex format itself
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@891 e52654a7-88a9-db11-a3e9-0013d4bc506e
changed: in plugin ticket: added message: WINIX_PL_TICKET_CAN_MAKE_REDIRECT
it is sent at the end of POST request (editticket, createticket)
if we can make a redirect (useful with AJAX)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@887 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: to Request:
// binary page
BinaryPage binary_page;
// a compressed page ready to send to the client
BinaryPage compressed_page;
// if true then either page or ajaxpage will be sent to the client
// if false then binary_page is sent
// default: true
bool use_text_page;
BinaryPage is defined as (in requesttypes.h):
typedef PT::TextStreamBase<char, 1, 4096> BinaryPage;
added: to Compress: now it can gets BinaryPage as arguments (input, output)
changed: winix version to: 0.5.0
added: in templates: TexTextStream class
for taking input to the TeX typesetting system
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@884 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: 'postredirect' global parameter (it can be a param or post value)
you can use this parameter in a html POST form
after processing the POST request winix will make a redirect to the value
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@881 e52654a7-88a9-db11-a3e9-0013d4bc506e
this is the raw string sent in POST method (in p1 pointer there is a pointer to std::string object)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@875 e52654a7-88a9-db11-a3e9-0013d4bc506e
raw POST parameters
in p1 there is a pointer to std::string meaning a parameter's name
in p2 there is a pointer to std::string value
this is sent only from PostParser
PostMultiParser (multipart/form-data html forms) doesn't send this messsage
there is no a session set (session pointer is null)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@874 e52654a7-88a9-db11-a3e9-0013d4bc506e
(the filter can be used before we make the json answer -- not implemented yet)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@872 e52654a7-88a9-db11-a3e9-0013d4bc506e
// used as a JSON output (when ajax_serializer is defined)
// it will be serialized and have at least:
// 'content' string - the whole html content
// 'http_status' integer - http status code (e.g. 200)
PT::Space ajax;
// if not null then the request will have a JSON as an output
PT::SpaceToJSON * ajax_serializer;
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@871 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: to misc: QEncode which takes PT::TextStreamBase as an argument
added: to Locale: methods: IsKey, Get which takes PT::TextStreamBase as an argument
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@860 e52654a7-88a9-db11-a3e9-0013d4bc506e
the "en" should be loaded by default
added: LDFLAGS option to Makefiles
added: compilation with CLANG (some const objects should have been created with default cctor)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@856 e52654a7-88a9-db11-a3e9-0013d4bc506e
changed: time zones -- now we have the daylight saving time
different for each year (start, end)
added: config option: time_zone_id (size_t)
time zone identifier for not logged users
or for newly created accounts
those identifiers you can see in etc/time_zones.conf file
or by using timezone winix function with 'a' parameter (timezone/a) (!!IMPROVE ME NOT IMPLEMENTED YET)
default: 34 (Coordinated Universal Time UTC+00:00)
added: config option: locale_default_id (size_t)
locale for not logged users
or for newly created accounts
added: config option: locale_max_id (size_t)
a maximum value of a locale identifier
default: 100 (maximum: 1000)
each locale files should have its own identifier (in "winix_locale_id" field)
from zero to this value
added: config option: time_zone_max_id (size_t)
maximum value of a time zone identifier
time zones with an id greater than this will be skipped
default: 130 (maximum: 1000)
removed: config option: locale_default
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@852 e52654a7-88a9-db11-a3e9-0013d4bc506e
there'll be some generic config files for winix
added: a new file in etc directory: time_zones_file
list of time zones (not finished yet -- daylight saving time is needed)
added: option to config: etc_dir
a directory in which there are some config files
used mainly when winix starts
default: empty (means not for using)
added: option to config: time_zones_file
a file in etc_dir with time zones info
default: time_zones.conf
this is a Space structure with all time zones
added: to system: TimeZones struct
list of time zones read from etc/time_zones.conf
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@849 e52654a7-88a9-db11-a3e9-0013d4bc506e
if either use_ssl in the config if false
or if use_ssl_only_for_logged_users is true
and a user is not logged
added: base url redirect HTTP codes to the config
// if current connection is without SSL and should be made through SSL
// or if is via SSL and should be done in plain text
// then we make a redirect
// default: 303
int use_ssl_redirect_code;
// when the HOST_HTTP environment variable is not equal to 'base_url'
// (the part 'http://' and the last slash is removed)
// the server will redirect into base_url + 'REQUEST_URI'
// it's useful when you want to redirect from 'mydomain.tld' into 'www.mydomain.tld' etc.
// set this option to false if you have multiple subdomains
// default: false
bool base_url_redirect;
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@847 e52654a7-88a9-db11-a3e9-0013d4bc506e
std::wstring * PostVarp(const std::wstring & var);
added: to misc:
template<class CharType>
bool Toa(unsigned/signed long/int value, CharType * buffer);
some Toa methods which don't get the buffer len
(the buffer has to be sufficient big)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@845 e52654a7-88a9-db11-a3e9-0013d4bc506e
this class has information about a time zone (utf offset, daylight saving time)
and methods for converting between UTC and local time
structs User and Config has a TimeZone object
System::ToLocal() and System::ToUTC() uses it for converting
(depending whether a user is logged or not)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@842 e52654a7-88a9-db11-a3e9-0013d4bc506e
removed start_tm
added start_date (PT::Date)
changed: in Session:
removed: tm_time
added: start_date (PT::Date)
renamed: time -> start_time
the same is for last_time
now we have (last_time and last_date)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@838 e52654a7-88a9-db11-a3e9-0013d4bc506e
now we first demonize (fork) and then open the log file
added: start adding support for PT::Date
we are using instead of tz system structure
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@836 e52654a7-88a9-db11-a3e9-0013d4bc506e
// a session is going to be removed
// it is called from session manager's thread (with lock/unlock)
#define WINIX_PREPARE_SESSION_TO_REMOVE 30027
// a session has been removed
// it is called from session manager's thread (with lock/unlock)
// in l1 you have the old session id
#define WINIX_SESSION_REMOVED 30029
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@832 e52654a7-88a9-db11-a3e9-0013d4bc506e
ConfParser is now SpaceParser
added: to SessionManager
Session * SessionManager::FindSession(long id)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@831 e52654a7-88a9-db11-a3e9-0013d4bc506e
now we can use Lock() more than one in the same thread
and next Unlock() will recognize it
sample:
Lock(); // first lock -- resources locked
Lock(); // second lock -- skipped (counter incremented)
...
Unlock(); // first unlock -- skipped (because counter greater than zero)
Unlock(); // second unlock -- actually unlocking
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@830 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: Job class (system->job object)
a general mechanism for jobs (by using PT::Space as a job structure)
WINIX_JOB plugin message will be sent with a pointer to PT::Space
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@829 e52654a7-88a9-db11-a3e9-0013d4bc506e
and was not used when checking for base url redirect
fixed: return values from plugins should be given in a special structure
they were remembered in plugin object (ret_false, ret_true)
and consequently were not thread safe
now all plugin.Call() methods return PluginRes structure
in which there are ret_false and ret_true variables
changed: small refactoring in AddUser winix function
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@827 e52654a7-88a9-db11-a3e9-0013d4bc506e
(Session, SessionContainer, SessionManager)
now a Session object don't copy all fields in its copy constructor (only id)
the rest fields are set after the object is inserted in SessionContainer
added: after successfully login a session id is changed
added: plugin.Call() methods with a first argument a pointer to a Session object
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@823 e52654a7-88a9-db11-a3e9-0013d4bc506e
a user will be logged in
set PluginInfo::res to false (it is by default) to prevent logging the user
directly after this message (if you do not return false)
a WINIX_USER_LOGGED is sent
in p1 you have a pointer to User struct
(if at least one plugin returns false then the user will not be logged)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@820 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: notifications for resetting a user's password
(there is no a winix function for this yet)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@817 e52654a7-88a9-db11-a3e9-0013d4bc506e
changed: UGContainer<> now uses std::list as a storage
(previously it was using std::vector with pointers)
removed: now we don't have the operator[] for UGContainer<>
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@816 e52654a7-88a9-db11-a3e9-0013d4bc506e