/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2010-2012, Tomasz Sowa * All rights reserved. * */ #ifndef headerfile_winix_functions_functionbase #define headerfile_winix_functions_functionbase #include #include #include "core/item.h" #include "db/db.h" #include "core/request.h" #include "core/config.h" #include "core/system.h" #include "core/synchro.h" #include "notify/notify.h" class Functions; class Templates; class FunctionBase { public: FunctionBase(); // user, group, permissions, url (function name) Item fun; // auto follow sym links, default: true bool follow_symlinks; // html template index (for using with 'patterns' object) size_t template_index; // 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; virtual void Init(); virtual bool HasAccess(); virtual void MakePost(); virtual void MakeGet(); void SetConfig(Config * pconfig); void SetCur(Cur * pcur); void SetDb(Db * pdb); void SetSystem(System * psystem); void SetFunctions(Functions * pfunctions); void SetTemplates(Templates * ptemplates); void SetSynchro(Synchro * psynchro); void SetSessionManager(SessionManager * pmanager); protected: Config * config; Cur * cur; Db * db; System * system; Functions * functions; Templates * templates; Synchro * synchro; SessionManager * session_manager; }; #endif