/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2008-2012, Tomasz Sowa * All rights reserved. * */ #ifndef headerfile_winix_core_session #define headerfile_winix_core_session #include #include #include #include "item.h" #include "error.h" #include "user.h" #include "plugindata.h" #include "rebus.h" #include "textstream.h" // when deleting Sessions you should set request.session into the session object as well // this allows to delete plugins session data // because a session object has plugin_data object // and in its destructor the plugin.Call(WINIX_SESSION_REMOVE) is called struct Session { // 0 - means that there is a temporary session long id; // true if the session was created now bool new_session; // when this session was created // (the same values) time_t time; tm tm_time; // when this session was last used // (the same values) time_t last_time; tm tm_last_time; // when there was a last get request // (used to calculate spam) time_t last_time_get; // 0 - means that nobody is logged User * puser; // if false the session will end when the user browser is shutdown bool remember_me; // rebus - set by rebus_question(Info & i) from templates Rebus::Item * rebus_item; bool rebus_checked; int spam_score; // if true then this session will be removed by SessionManager // without checking the time expiration bool remove_me; PluginData plugin_data; // buffer for the session log TextStream log_buffer; // table with css files // used by some javascript wysiwyg editors (ckeditor, tinymce) std::vector last_css; Session(); void SetTimeToNow(); void Clear(); }; #endif