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 31070
// http 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_cookies)
#define WINIX_PREPARE_TO_SEND_HTTP_COOKIES 31080
added: config variable:
// how many output streams do we have in Request class
// default: 16 (64 maximum)
size_t ezc_out_streams_size;
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@940 e52654a7-88a9-db11-a3e9-0013d4bc506e
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
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@937 e52654a7-88a9-db11-a3e9-0013d4bc506e
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
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@933 e52654a7-88a9-db11-a3e9-0013d4bc506e
(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 4106
// a new ticket has been added
// in p1 you have a pointer to the Ticket::Ticket structure (include "ticket.h")
// in p2 you have a pointer to the Item structure
#define WINIX_PL_TICKET_ADDED_NEW 4107
// a ticket has been changed
// in p1 you have a pointer to the Ticket::Ticket structure (include "ticket.h")
// in p2 you have a pointer to the Item structure
#define WINIX_PL_TICKET_CHANGED 4108
added: two ezc functions for tickets:
ticket_does_param_id_have_value()
tickets_tab_does_param_id_have_value()
(they take two integer arguments -- testing whether a specified param_id has the given value)
changed: some more minor additions in tickets templates
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@932 e52654a7-88a9-db11-a3e9-0013d4bc506e
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)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@931 e52654a7-88a9-db11-a3e9-0013d4bc506e
all static files (css/js) are downloaded from our server now
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@930 e52654a7-88a9-db11-a3e9-0013d4bc506e
(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)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@929 e52654a7-88a9-db11-a3e9-0013d4bc506e
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)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@926 e52654a7-88a9-db11-a3e9-0013d4bc506e
the checkbox is now selected when we want to export static files too
(default it is not checked)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@922 e52654a7-88a9-db11-a3e9-0013d4bc506e
(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 values
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@921 e52654a7-88a9-db11-a3e9-0013d4bc506e
for checking if a value exists (useful for checking lists -- they don't have to be copied out)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@920 e52654a7-88a9-db11-a3e9-0013d4bc506e
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
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@919 e52654a7-88a9-db11-a3e9-0013d4bc506e
then we are using a generic json serializer
changed: we are sending the application/json header when returning an json string
added: to config: log_server_answer (default false)
when true we put the whole string (server's answer) to the log file
added: to Request: use_200_status_for_not_found_and_permission_denied
if this is true then if the server http code would be 403 or 404
then we return 200 OK (useful when using ajax)
changed: System::RedirectTo() methods take as the last parameter: use_reqtype
if this is true (default) then reqtype:type parameter is automatically added to the redirecting path
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@918 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: some ezc functions (gallery_tab_meta*) to gallery plugin
added: to gallery plugin: a new gallery: Gallery version 1.2.9
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@917 e52654a7-88a9-db11-a3e9-0013d4bc506e
Groups::ReindexGroups incorrectly read a field from a PT::Space (it used 'table' object directly)
but the value was in 'table_single'
now we are using GetValue method
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@916 e52654a7-88a9-db11-a3e9-0013d4bc506e
it was called after some objects were set consequently we were not allowed to edit a ticket
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@912 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: a new message sent by editticket when closing a ticket:
#define WINIX_PL_TICKET_CLOSED 4105
// a ticket has been closed (closed button pressed)
// in p1 you have a pointer to the Item struct
// in p2 you have a pointer to the Ticket struct
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@909 e52654a7-88a9-db11-a3e9-0013d4bc506e
fixed: prototype doesn't work with jquery (in ticket winix function)
(prototype was loaded for lightbox)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@908 e52654a7-88a9-db11-a3e9-0013d4bc506e
admin meta information
added: option "a" to meta winix function
editing admin meta information
changed: now if you don't have write access to an item
you can't see the meta information
previous if you had read access you could have seen them
added: in plugin ticket and thread
support for 'closing' (ticket, thread)
(this is only logic, we need some html yet)
added: some ezc function for getting meta/admin meta information
(for the current item and the last directory)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@907 e52654a7-88a9-db11-a3e9-0013d4bc506e
bool Login::LoginUser(const std::wstring & login, const std::wstring & password, bool remember_me,
bool use_ses_log, bool check_abuse)
default 'false' -- it test the time between GET and POST and the rebus (if exists)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@905 e52654a7-88a9-db11-a3e9-0013d4bc506e
possibility to remove a ban (or all bans)
added: to SessionManager: sorting of the ban list (in the second thread)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@903 e52654a7-88a9-db11-a3e9-0013d4bc506e
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
some messges:
//
#define WINIX_PL_TICKET_PREPARE_TO_ADD_TICKET 4103
// a next ticket will be displayed
// in p1 you have a pointer to the Item struct
// this is call from tickets_tab ezc function
#define WINIX_PL_TICKET_TICKETS_TAB_IS_NEXT 4104
methods:
void ticket_meta_value(Info & i)
void tickets_tab_meta_value(Info & i)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@890 e52654a7-88a9-db11-a3e9-0013d4bc506e
someone can send this message with a directory id
and tickets will be loaded from the directory
(and to display them you can use ezc functions)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@889 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: PutChar() methods to HtmlTextFilter and TexTextFilter
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@885 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
void dir_tab_subject(Info & i);
void dir_tab_is_root(Info & i);
changed: in dir_tab_link:
now it doesn't print the proto and base address - you should use [doc_base_url]
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@879 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
the possibility to export only non static files in a directory
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@870 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
added a default parameter bool try_default_too = true to some methods: Get(), IsKey()
added more methods for accessing by an internal index
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@854 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
didn't print the subdomain
added: to rm winix function:
bool Rm::RemoveItemByPath(const std::wstring & path, bool check_access)
fixed: in Upload winix function
when uploading an image we have to get
a mount point where the image is placed (parent dir)
(it was cur->mount beforehand)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@844 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
changed: in locale txt files:
the '(' and ')' characters should be escaped '\(' and '\)'
or the whole string should be quoted
added: when parsing locale files we print the line number where there was a syntax error
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@833 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
(even if it was an administrator and has selected other people)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@825 e52654a7-88a9-db11-a3e9-0013d4bc506e