added: config options:
// whether or not we should encode the session cookie
// (we have a special algorithm)
// default: false
bool session_cookie_encode;
// if session_cookie_encode is true then you should provide
// a file where AES keys will be stored
std::wstring session_keys_file;
// each session has an index -- an unsigned int value
// this value is sent in the cookie string (is encoded)
// and is incremented when session_index_time_increment time is passed since the last incrementing
// if a client sent the cookie back the difference between
// current index and the index in the cookie should be less than or equal to session_allow_index_difference
// default: 8
size_t session_allow_index_difference;
// the time which should pass after the session index is incremented
// default: 30
// (session_allow_index_difference + 1) * session_index_time_increment should be less than a time
// load of a page and all elements on it such as images (of course it depends on client's download too)
time_t session_index_time_increment;
// time in seconds after a new AES key pair should be generated
// we have 256 pairs of keys so this time multiplied by 256 should not be less than
// the max time of a session (session_remember_max_idle),
// by default: 256 * 2 days = 512 days = 1.4 year > 3 months (session_remember_max_idle)
// default: 172800 = 2 days (max: 2678400 = 1 month, min: 10)
size_t session_key_renew_time;
changed: when printing the time of a request we print only two non-zero digits
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@994 e52654a7-88a9-db11-a3e9-0013d4bc506e
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)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@978 e52654a7-88a9-db11-a3e9-0013d4bc506e
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
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@965 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
(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
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
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
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
// 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
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
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
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
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
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
(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
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
other unicode white characters
25 characters -- without a new line character (10)
added: config option: account_need_email_verification
if true then when creating an account a user has to provide
his email address and a message with an activation link will be sent
back to him
added: 'pw' winix function (not finished yet)
at the moment only one parameter 'activate'
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@810 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: to db: bool DbBase::AssertValueSpace(PGresult * r, int row, int col, Space & space, bool split_single)
added: environment variables for users
User::env (of type Space) and
User::aenv (of type Space) for admin variables (can be changed only by a super user)
added: winix function 'env'
for changing User::env and User::aenv ('env' winix function with a 'a' parameter)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@790 e52654a7-88a9-db11-a3e9-0013d4bc506e
menu_dir_tab ezc functions can be nested now
(not finished yet)
added: 'meta' winix function
additional meta information for files and directories
(not finished yet)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@775 e52654a7-88a9-db11-a3e9-0013d4bc506e
then current iterators (and pointers) were invalidated
now we are using std::vector<Type*>
this caused some crashes when a new user was added by 'adduser' winix function
added: plugin 'export' is able to upload files on a remote server now
(not finished yet)
changed: Thumb class is now called: Image
and we are able to resize images too
(some new options in the config and in mount points)
added: some new plugin messages
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@764 e52654a7-88a9-db11-a3e9-0013d4bc506e
changed: in base redirect we are using 301 moved permanently status code now (was 303)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@761 e52654a7-88a9-db11-a3e9-0013d4bc506e
ezc patterns are managed by this class
added: some work in groupitem plugin (not finished yet)
changed: ConfParser can read a string from memory now
(need some testing yet)
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@757 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: new options to the config:
url_proto: default: http://
url_ssl_proto: default: https://
use_ssl, use_ssl_static, use_ssl_common (whether or not to use SSL protocol)
use_ssl_only_for_logged_users
now we are able to use SSL encryption (https) together with normal connections
removed: config option: base_server
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@755 e52654a7-88a9-db11-a3e9-0013d4bc506e
for changing your password
or if you are a super user you can
change a password for anyone
added: uname prints available plugins now
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@748 e52654a7-88a9-db11-a3e9-0013d4bc506e
we're using an jquery upload plugin
added: Item struct has new rows: hash, hash_type, file_size, sort_index
added: css mount parameter
you can specify css files there, and javascript wysiwyg editors
(ckeditor, tinymce) can make use of it
changed: post parsers can parse post variables with the same name
(a postfix is added in such a case)
added: common_dir parameter to the config
this is a path to common directory (directory with common static files)
it is needed to the 'css' mount parameter
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@746 e52654a7-88a9-db11-a3e9-0013d4bc506e
messages are displayed in the browser (with locales)
changed: MountParser
now if there is an error in a line -- the line is simply skipped
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@741 e52654a7-88a9-db11-a3e9-0013d4bc506e
pointing to /dev/null
added: DbBase::AssertValueBin(PGresult * r, int row, int col, std::string & result)
it reads binary (bytea) data
added: DbTextStream can handle 'bool' types now
(is puts 'true' of 'false' to the stream)
changed: now passwords can be stored either as plain text, a hash or can be encrypted
with RSA
currently we have following hashes:
md4, md5, sha1, sha224, sha256, sha384, sha512
we are using openssl to manage them
(look at config options for more info)
changed: winix version to 0.4.7
added: class Run - you can run any program from os and send a buffer to its standard input
and read what the program put on its standard output
added: class Crypt (in System) - calculating hashes, and crypting/decrypting
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@734 e52654a7-88a9-db11-a3e9-0013d4bc506e
added: config option 'html_filter_wrap_line'
this wraps the whole line (line calculated with html tags as well)
changed: orphans (for html filter) are read from locale files now
('language_orphans' value )
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@728 e52654a7-88a9-db11-a3e9-0013d4bc506e
now we set the languages in the config file: option locale_files, sample:
locale_files = ( en, pl )
it represents the name of locale files (those from locale_dir directory)
renamed config option: locale to locale_default
git-svn-id: svn://ttmath.org/publicrep/winix/trunk@722 e52654a7-88a9-db11-a3e9-0013d4bc506e