add closing dialogs, redirecting and removing content functionality to the winix framework

add such new methods to FunctionBase:
- bool can_push_url_to_browser_history();
- void add_standard_models();
- void close_modal_dialogs();

- void prepare_doc_url(const wchar_t * local_url, pt::WTextStream & url);
- void prepare_doc_url(const wchar_t * local_url, std::wstring & url);
- std::wstring prepare_doc_url(const wchar_t * local_url = nullptr);
- std::wstring prepare_doc_url(const std::wstring & local_url);

- void redirect_to(const wchar_t * url, bool append_domain = true);
- void redirect_to(const std::wstring & url, bool append_domain = true);
- void redirect_to(const pt::WTextStream & url, bool append_domain = true);

- void redirect_to(const wchar_t * url, const wchar_t * frame_url, const wchar_t * dom_target);
- void redirect_to(const std::wstring & url, const std::wstring & frame_url, const std::wstring & dom_target);
- void redirect_to(pt::WTextStream & url, pt::WTextStream & frame_url, pt::WTextStream & dom_target);
- void redirect_to(pt::WTextStream & url, pt::WTextStream & frame_url, const wchar_t * dom_target);
- void redirect_to(const wchar_t * url, const wchar_t * frame_url, pt::WTextStream & dom_target);

- void retarged(const wchar_t * frame, const wchar_t * dom_target, const wchar_t * push_url = nullptr, const wchar_t * swap_algorithm = nullptr);
- void retarged(const std::wstring & frame, const std::wstring & dom_target, const std::wstring & push_url, const wchar_t * swap_algorithm = nullptr);
- void retarged(const wchar_t * frame, pt::WTextStream & dom_target, const wchar_t * push_url = nullptr, const wchar_t * swap_algorithm = nullptr);

- void remove_content(pt::WTextStream & dom_target, bool close_dialogs = false);
- void remove_content(const wchar_t * dom_target, bool has_postfix, long dom_target_postfix, bool close_dialogs = false);
- void remove_content(const wchar_t * dom_target, long dom_target_postfix, bool close_dialogs = false);
- void remove_content(const wchar_t * dom_target, bool close_dialogs = false);

- void update_content(const wchar_t * frame, pt::WTextStream & dom_target, bool close_dialogs = false);
- void update_content(const wchar_t * frame, const wchar_t * dom_target, bool has_postfix, long dom_target_postfix, bool close_dialogs = false);
- void update_content(const wchar_t * frame, const wchar_t * dom_target, long dom_target_postfix, bool close_dialogs = false);
- void update_content(const wchar_t * frame, const wchar_t * dom_target, bool close_dialogs = false);

while here:
- refactor PascalCase to snake_case in FunctionBase
- add start_request() and finish_request() methods to FunctionBase
- add has_*_access() methods to FunctionBase
- fix: FunctionBase::clear() method was not called if a request was assigned to a job
- add a WinixEzcHelper model
- allow to serialize a header if the header value is neither a string nor an integer
- refactor PascalCase to snake_case in functions: Emacs, Mkdir, Upload
This commit is contained in:
2024-06-27 10:57:08 +02:00
parent 6aa100f12c
commit c30b7db041
129 changed files with 4064 additions and 3199 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -620,7 +620,7 @@ void App::MakeRenameMeToABetterName()
if( cur.request->function ) if( cur.request->function )
{ {
cur.request->function->CheckOriginHeader(); cur.request->function->check_origin_header();
} }
// cur.request->status can be changed by function_parser // cur.request->status can be changed by function_parser
@@ -754,6 +754,9 @@ void App::ProcessRequest()
try try
{ {
if( cur.request->function )
cur.request->function->clear();
if( cur.request->run_state == Request::RunState::finished ) if( cur.request->run_state == Request::RunState::finished )
{ {
ClearAfterRequest(); ClearAfterRequest();
@@ -1342,7 +1345,7 @@ void App::ReadPostVars()
if( cur.request->method == Request::post || cur.request->method == Request::put || if( cur.request->method == Request::post || cur.request->method == Request::put ||
cur.request->method == Request::patch || cur.request->method == Request::delete_ ) cur.request->method == Request::patch || cur.request->method == Request::delete_ )
{ {
bool copy_raw_post = (cur.request->function && cur.request->function->NeedToCopyRawPost()); bool copy_raw_post = (cur.request->function && cur.request->function->need_to_copy_raw_post());
if( pt::is_substr_nc(Header::multipart_form_data, cur.request->env_content_type.c_str()) ) if( pt::is_substr_nc(Header::multipart_form_data, cur.request->env_content_type.c_str()) )
{ {

View File

@@ -381,10 +381,19 @@ void Job::DoRequestContinuationJob(JobTask & job_task, size_t priority)
{ {
cur->request->FinishRequest(); // if cur->request->function were null then templates functions would not work cur->request->FinishRequest(); // if cur->request->function were null then templates functions would not work
load_avg->StopRequest(cur->request); load_avg->StopRequest(cur->request);
if( cur->request->function )
cur->request->function->clear();
cur->request->Clear(); cur->request->Clear();
cur->request->run_state = Request::RunState::finished; cur->request->run_state = Request::RunState::finished;
RemoveOldRequest(cur->request); RemoveOldRequest(cur->request);
} }
else
{
if( cur->request->function )
cur->request->function->clear();
}
main_log << logendrequest; main_log << logendrequest;
} }

View File

@@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2023, Tomasz Sowa * Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -156,9 +156,6 @@ void Request::Clear()
RemovePostFileTmp(post_file_tab); RemovePostFileTmp(post_file_tab);
ClearOutputStreams(); ClearOutputStreams();
if( function )
function->Clear();
post_file_tab.clear(); post_file_tab.clear();
cookie_tab.clear(); cookie_tab.clear();
post_in.clear(); post_in.clear();
@@ -1941,31 +1938,23 @@ void Request::SendHeaders()
for(i=headers.value.value_object.begin() ; i != headers.value.value_object.end() ; ++i) for(i=headers.value.value_object.begin() ; i != headers.value.value_object.end() ; ++i)
{ {
bool header_prepared = false; pt::wide_to_utf8(i->first, aheader_name);
if( i->second->is_wstr() ) if( i->second->is_wstr() )
{ {
pt::wide_to_utf8(i->first, aheader_name);
pt::wide_to_utf8(*i->second->get_wstr(), aheader_value); pt::wide_to_utf8(*i->second->get_wstr(), aheader_value);
header_prepared = true;
} }
else else
if( i->second->is_long_long() ) if( i->second->is_long_long() )
{ {
pt::wide_to_utf8(i->first, aheader_name); pt::wide_to_utf8(i->first, aheader_name);
pt::Toa(*i->second->get_long_long(), aheader_value); pt::Toa(*i->second->get_long_long(), aheader_value);
header_prepared = true;
} }
else else
{ {
if( plog ) i->second->serialize_to_json_to(aheader_value, false);
{
(*plog) << log2 << "Skipping HTTP Header: " << i->first << " - it's neither a wstr nor a long long" << logend;
}
} }
if( header_prepared )
{
FCGX_PutS(aheader_name.c_str(), fcgi_request.out); FCGX_PutS(aheader_name.c_str(), fcgi_request.out);
FCGX_PutS(": ", fcgi_request.out); FCGX_PutS(": ", fcgi_request.out);
FCGX_PutS(aheader_value.c_str(), fcgi_request.out); FCGX_PutS(aheader_value.c_str(), fcgi_request.out);
@@ -1976,7 +1965,6 @@ void Request::SendHeaders()
} }
} }
} }
}

View File

@@ -143,13 +143,13 @@ void Account::ActivateAccount()
void Account::MakePost() void Account::make_post()
{ {
} }
void Account::MakeGet() void Account::make_get()
{ {
if( cur->request->IsParam(L"activate") ) if( cur->request->IsParam(L"activate") )
ActivateAccount(); ActivateAccount();

View File

@@ -51,8 +51,8 @@ public:
Account(); Account();
void MakeGet(); void make_get();
void MakePost(); void make_post();
bool ActivateAccount(const std::wstring & login, long code); bool ActivateAccount(const std::wstring & login, long code);

View File

@@ -258,7 +258,7 @@ return false;
} }
void AddUser::MakePost() void AddUser::make_post()
{ {
const std::wstring & login = cur->request->PostVar(L"login"); const std::wstring & login = cur->request->PostVar(L"login");
const std::wstring & pass = cur->request->PostVar(L"password"); const std::wstring & pass = cur->request->PostVar(L"password");
@@ -289,7 +289,7 @@ void AddUser::MakePost()
} }
void AddUser::MakeGet() void AddUser::make_get()
{ {
} }

View File

@@ -51,8 +51,8 @@ class AddUser : public FunctionBase
public: public:
AddUser(); AddUser();
void MakePost(); void make_post();
void MakeGet(); void make_get();
bool IsLoginCorrect(const std::wstring & login); bool IsLoginCorrect(const std::wstring & login);
bool IsEmailCorrect(const std::wstring & email); bool IsEmailCorrect(const std::wstring & email);

View File

@@ -49,7 +49,7 @@ Cat::Cat()
} }
void Cat::MakeGet() void Cat::make_get()
{ {
// IMPROVE ME this probably should be set for all winix functions // IMPROVE ME this probably should be set for all winix functions
cur->request->html_template = cur->request->last_item->html_template; cur->request->html_template = cur->request->last_item->html_template;

View File

@@ -51,7 +51,7 @@ class Cat : public FunctionBase
public: public:
Cat(); Cat();
void MakeGet(); void make_get();

View File

@@ -56,7 +56,7 @@ void Chmod::set_dependency(WinixRequest * winix_request)
priv_changer.set_dependency(winix_request); priv_changer.set_dependency(winix_request);
} }
void Chmod::MakePost() void Chmod::make_post()
{ {
priv_changer.SetCur(cur); priv_changer.SetCur(cur);
priv_changer.SetSystem(system); priv_changer.SetSystem(system);
@@ -65,7 +65,7 @@ void Chmod::MakePost()
} }
void Chmod::MakeGet() void Chmod::make_get()
{ {
priv_changer.SetCur(cur); priv_changer.SetCur(cur);
priv_changer.SetSystem(system); priv_changer.SetSystem(system);

View File

@@ -51,8 +51,8 @@ class Chmod : public FunctionBase
public: public:
Chmod(); Chmod();
void MakePost(); void make_post();
void MakeGet(); void make_get();
void set_dependency(WinixRequest * winix_request); void set_dependency(WinixRequest * winix_request);

View File

@@ -57,7 +57,7 @@ void Chown::set_dependency(WinixRequest * winix_request)
} }
void Chown::MakePost() void Chown::make_post()
{ {
priv_changer.SetCur(cur); priv_changer.SetCur(cur);
priv_changer.SetSystem(system); priv_changer.SetSystem(system);
@@ -66,7 +66,7 @@ void Chown::MakePost()
} }
void Chown::MakeGet() void Chown::make_get()
{ {
priv_changer.SetCur(cur); priv_changer.SetCur(cur);
priv_changer.SetSystem(system); priv_changer.SetSystem(system);

View File

@@ -51,8 +51,8 @@ class Chown : public FunctionBase
public: public:
Chown(); Chown();
void MakePost(); void make_post();
void MakeGet(); void make_get();
void set_dependency(WinixRequest * winix_request); void set_dependency(WinixRequest * winix_request);

View File

@@ -49,19 +49,19 @@ Ckeditor::Ckeditor()
fun.url = L"ckeditor"; fun.url = L"ckeditor";
} }
void Ckeditor::Init() void Ckeditor::init()
{ {
system->AddCommonFileToVar(L"winix/ckeditor_full.js", L"ckeditor_full.js"); system->AddCommonFileToVar(L"winix/ckeditor_full.js", L"ckeditor_full.js");
system->AddCommonFileToVar(L"winix/ckeditor_winix.js", L"ckeditor_winix.js"); system->AddCommonFileToVar(L"winix/ckeditor_winix.js", L"ckeditor_winix.js");
} }
bool Ckeditor::HasAccess() bool Ckeditor::has_access()
{ {
return functions->fun_emacs.HasAccess(); return functions->fun_emacs.has_access();
} }
void Ckeditor::MakeGet() void Ckeditor::make_get()
{ {
cur->session->last_css.clear(); cur->session->last_css.clear();
int parcss = system->mounts.MountParCss(); int parcss = system->mounts.MountParCss();
@@ -71,9 +71,9 @@ void Ckeditor::MakeGet()
} }
void Ckeditor::MakePost() void Ckeditor::make_post()
{ {
functions->fun_emacs.MakePost(); functions->fun_emacs.make_post();
} }

View File

@@ -50,10 +50,10 @@ class Ckeditor : public FunctionBase
public: public:
Ckeditor(); Ckeditor();
void Init(); void init();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
void MakePost(); void make_post();
}; };

View File

@@ -53,7 +53,7 @@ Cp::Cp()
} }
bool Cp::HasAccess() bool Cp::has_access()
{ {
return CheckAccessFrom(); return CheckAccessFrom();
} }
@@ -406,7 +406,7 @@ void Cp::PostCopyDir(const Item & dir, bool redirect)
} }
void Cp::Clear() void Cp::clear()
{ {
loop_checker.clear(); loop_checker.clear();
dir_tab.clear(); dir_tab.clear();
@@ -415,7 +415,7 @@ void Cp::Clear()
} }
void Cp::MakePost() void Cp::make_post()
{ {
if( ParseDir() && CheckAccessTo() ) if( ParseDir() && CheckAccessTo() )
{ {
@@ -437,7 +437,7 @@ void Cp::MakePost()
PostCopyDir(*cur->request->dir_tab.back()); PostCopyDir(*cur->request->dir_tab.back());
} }
Clear(); clear();
} }
} }

View File

@@ -51,8 +51,8 @@ class Cp : public FunctionBase
public: public:
Cp(); Cp();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
private: private:
@@ -92,7 +92,7 @@ private:
void CopyDirContentTree(const Item & item, long dst_dir_id); void CopyDirContentTree(const Item & item, long dst_dir_id);
long CopyDirTree(const Item & item, long dst_dir_id); long CopyDirTree(const Item & item, long dst_dir_id);
bool IsTheSameFile(const Item & item); bool IsTheSameFile(const Item & item);
void Clear(); void clear();
void PostCopyFile(Item & item, bool redirect = true); void PostCopyFile(Item & item, bool redirect = true);
void PostCopyDirContent(const Item & dir, bool redirect = true); void PostCopyDirContent(const Item & dir, bool redirect = true);
void PostCopyDir(const Item & dir, bool redirect = true); void PostCopyDir(const Item & dir, bool redirect = true);

View File

@@ -49,14 +49,14 @@ Default::Default()
} }
bool Default::HasAccess() bool Default::has_access()
{ {
return !cur->request->is_item && system->HasWriteAccess(*cur->request->dir_tab.back()); return !cur->request->is_item && system->HasWriteAccess(*cur->request->dir_tab.back());
} }
void Default::MakePost() void Default::make_post()
{ {
Item & dir = *cur->request->dir_tab.back(); Item & dir = *cur->request->dir_tab.back();
dir.propagate_connector(); dir.propagate_connector();

View File

@@ -50,8 +50,8 @@ class Default : public FunctionBase
public: public:
Default(); Default();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
}; };

View File

@@ -52,7 +52,7 @@ Download::Download()
} }
void Download::MakeGet() void Download::make_get()
{ {
if( !cur->request->is_item ) if( !cur->request->is_item )
{ {

View File

@@ -50,7 +50,7 @@ class Download : public FunctionBase
public: public:
Download(); Download();
void MakeGet(); void make_get();
private: private:

View File

@@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2021, Tomasz Sowa * Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -52,7 +52,7 @@ Emacs::Emacs()
bool Emacs::HasAccess(const Item & item) bool Emacs::has_emacs_access(const Item & item)
{ {
if( cur->session->puser && cur->session->puser->is_super_user ) if( cur->session->puser && cur->session->puser->is_super_user )
// super user can use emacs everywhere // super user can use emacs everywhere
@@ -72,9 +72,9 @@ return false;
bool Emacs::HasAccess() bool Emacs::has_access()
{ {
return HasAccess(*cur->request->last_item); return has_emacs_access(*cur->request->last_item);
} }
@@ -106,9 +106,9 @@ return true;
*/ */
int Emacs::NotifyCodeEdit() int Emacs::notify_code_edit()
{ {
// !! nie potrzebne // !! not needed
// if( system->mounts.pmount->type == system->mounts.MountTypeThread() ) // if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
// return WINIX_NOTIFY_CODE_THREAD_POST_CHANGED; // return WINIX_NOTIFY_CODE_THREAD_POST_CHANGED;
@@ -118,9 +118,9 @@ return WINIX_NOTIFY_CODE_EDIT;
int Emacs::NotifyCodeAdd() int Emacs::notify_code_add()
{ {
// !! nie potrzebne // !! not needed
// if( system->mounts.pmount->type == system->mounts.MountTypeThread() ) // if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
// return WINIX_NOTIFY_CODE_THREAD_REPLAYED; // return WINIX_NOTIFY_CODE_THREAD_REPLAYED;
@@ -131,7 +131,7 @@ return WINIX_NOTIFY_CODE_ADD;
// IMPROVEME // IMPROVEME
// make some kind of utils and put this method there // make some kind of utils and put this method there
// because this method is used from ckeditor and other editors too // because this method is used from ckeditor and other editors too
void Emacs::MakePost() void Emacs::make_post()
{ {
bool status = false; bool status = false;
bool adding = !cur->request->is_item; bool adding = !cur->request->is_item;
@@ -150,7 +150,7 @@ void Emacs::MakePost()
if( adding ) if( adding )
{ {
cur->request->item.item_content.privileges = system->NewFilePrivileges(); cur->request->item.item_content.privileges = system->NewFilePrivileges();
status = system->AddFile(cur->request->item, NotifyCodeAdd()); status = system->AddFile(cur->request->item, notify_code_edit());
if( status ) if( status )
{ {
@@ -159,7 +159,7 @@ void Emacs::MakePost()
} }
else else
{ {
status = system->EditFile(cur->request->item, cur->request->item.url != old_url, NotifyCodeEdit()); status = system->EditFile(cur->request->item, cur->request->item.url != old_url, notify_code_edit());
} }
cur->request->status = status ? WINIX_ERR_OK : WINIX_ERR_PERMISSION_DENIED; cur->request->status = status ? WINIX_ERR_OK : WINIX_ERR_PERMISSION_DENIED;
@@ -185,7 +185,7 @@ void Emacs::MakePost()
} }
void Emacs::Clear() void Emacs::clear()
{ {
answer.clear(); answer.clear();
} }

View File

@@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2010-2018, Tomasz Sowa * Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -50,16 +50,16 @@ class Emacs : public FunctionBase
public: public:
Emacs(); Emacs();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
private: private:
bool HasAccess(const Item & item); // !! takie funkcje to nie powinny byc skladowe modelu? bool has_emacs_access(const Item & item);
void Clear(); void clear();
int NotifyCodeEdit(); int notify_code_edit();
int NotifyCodeAdd(); int notify_code_add();
std::wstring old_url; std::wstring old_url;
pt::Space answer; pt::Space answer;

View File

@@ -50,7 +50,7 @@ Env::Env()
} }
bool Env::HasAccess() bool Env::has_access()
{ {
if( !cur->session->puser ) if( !cur->session->puser )
return false; return false;
@@ -168,7 +168,7 @@ void Env::RegisterModels()
void Env::MakePost() void Env::make_post()
{ {
user_wrapper.user = nullptr; user_wrapper.user = nullptr;
user_wrapper.set_connector(model_connector); user_wrapper.set_connector(model_connector);
@@ -205,7 +205,7 @@ void Env::MakePost()
} }
void Env::MakeGet() void Env::make_get()
{ {
user_wrapper.user = cur->session->puser; user_wrapper.user = cur->session->puser;
user_wrapper.set_connector(model_connector); user_wrapper.set_connector(model_connector);
@@ -214,7 +214,7 @@ void Env::MakeGet()
} }
void Env::Clear() void Env::clear()
{ {
user_wrapper.user = nullptr; user_wrapper.user = nullptr;
} }

View File

@@ -54,10 +54,10 @@ public:
Env(); Env();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
void MakeGet(); void make_get();
void Clear(); void clear();
private: private:

View File

@@ -91,13 +91,13 @@ FunctionBase::~FunctionBase()
//} //}
void FunctionBase::SetFunctions(Functions * pfunctions) void FunctionBase::set_functions(Functions * pfunctions)
{ {
functions = pfunctions; functions = pfunctions;
} }
void FunctionBase::SetTemplates(Templates * ptemplates) void FunctionBase::set_templates(Templates * ptemplates)
{ {
templates = ptemplates; templates = ptemplates;
} }
@@ -115,44 +115,40 @@ void FunctionBase::SetTemplates(Templates * ptemplates)
//} //}
void FunctionBase::Init() void FunctionBase::init()
{ {
// this method is called only once at the beginning // this method is called only once at the beginning
// when winix starts // when winix starts
Init();
} }
void FunctionBase::Finish() void FunctionBase::finish()
{ {
// this method is called only once at the end // this method is called only once at the end
// when winix finishes // when winix finishes
Finish();
} }
bool FunctionBase::HasAccess()
{
// true by default
return true;
}
/* /*
* this is in a response to the normal OPTIONS method (not cors request) * this is in a response to the normal OPTIONS method (not cors request)
*/ */
void FunctionBase::AddAllowMethodsHeader() void FunctionBase::add_allow_methods_header()
{ {
cur->request->out_headers.add(Header::allow, L"GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH"); cur->request->out_headers.add(Header::allow, L"GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH");
} }
bool FunctionBase::IsCorsMethodAvailable(Request::Method method) bool FunctionBase::is_cors_method_available(Request::Method method)
{ {
return method == Request::get || method == Request::head || method == Request::post || method == Request::put || return method == Request::get || method == Request::head || method == Request::post || method == Request::put ||
method == Request::delete_ ||method == Request::patch; method == Request::delete_ ||method == Request::patch;
} }
bool FunctionBase::IsOriginAvailable(const std::wstring & origin_url) bool FunctionBase::is_origin_available(const std::wstring & origin_url)
{ {
if( config ) if( config )
{ {
@@ -176,13 +172,13 @@ bool FunctionBase::IsOriginAvailable(const std::wstring & origin_url)
} }
bool FunctionBase::AreCorsCredentialsAvailable() bool FunctionBase::are_cors_credentials_available()
{ {
return config && config->access_control_allow_credentials; return config && config->access_control_allow_credentials;
} }
bool FunctionBase::AreCorsHeadersAvailable(const std::wstring & headers) bool FunctionBase::are_cors_headers_available(const std::wstring & headers)
{ {
// true by default for all headers // true by default for all headers
// headers are comma separated // headers are comma separated
@@ -193,7 +189,7 @@ bool FunctionBase::AreCorsHeadersAvailable(const std::wstring & headers)
/* /*
* method is the value of Access-Control-Request-Method header sent by the client * method is the value of Access-Control-Request-Method header sent by the client
*/ */
void FunctionBase::AddAccessControlAllowMethodsHeader(Request::Method method) void FunctionBase::add_access_control_allow_methods_header(Request::Method method)
{ {
cur->request->AddHeader(Header::access_control_allow_methods, L"GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH"); cur->request->AddHeader(Header::access_control_allow_methods, L"GET, HEAD, POST, PUT, DELETE, OPTIONS, PATCH");
} }
@@ -205,7 +201,7 @@ void FunctionBase::AddAccessControlAllowMethodsHeader(Request::Method method)
* https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin * https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin
* *
*/ */
void FunctionBase::AddAccessControlAllowOriginHeader(const std::wstring & origin_url) void FunctionBase::add_access_control_allow_origin_header(const std::wstring & origin_url)
{ {
if( config ) if( config )
{ {
@@ -229,7 +225,7 @@ void FunctionBase::AddAccessControlAllowOriginHeader(const std::wstring & origin
/* /*
* headers is the value of Access-Control-Request-Headers header sent by the client * headers is the value of Access-Control-Request-Headers header sent by the client
*/ */
void FunctionBase::AddAccessControlAllowHeadersHeader(const std::wstring & headers) void FunctionBase::add_access_control_allow_headers_header(const std::wstring & headers)
{ {
if( Header::is_header_value_correct(headers) ) if( Header::is_header_value_correct(headers) )
{ {
@@ -238,20 +234,20 @@ void FunctionBase::AddAccessControlAllowHeadersHeader(const std::wstring & heade
} }
void FunctionBase::AddAccessControlMaxAgeHeader() void FunctionBase::add_access_control_max_age_header()
{ {
// default 24 hours // default 24 hours
cur->request->AddHeader(Header::access_control_max_age, 86400); cur->request->AddHeader(Header::access_control_max_age, 86400);
} }
void FunctionBase::AddAccessControlAllowCredentialsHeader() void FunctionBase::add_access_control_allow_credentials_header()
{ {
cur->request->AddHeader(Header::access_control_allow_credentials, L"true"); cur->request->AddHeader(Header::access_control_allow_credentials, L"true");
} }
void FunctionBase::AddAccessControlExposeHeadersHeader() void FunctionBase::add_access_control_expose_headers_header()
{ {
if( config ) if( config )
{ {
@@ -275,45 +271,45 @@ void FunctionBase::AddAccessControlExposeHeadersHeader()
} }
void FunctionBase::AddCorsPreflightRequestHeaders(const std::wstring & origin, Request::Method method, const std::wstring * request_headers) void FunctionBase::add_cors_preflight_request_headers(const std::wstring & origin, Request::Method method, const std::wstring * request_headers)
{ {
AddAccessControlAllowMethodsHeader(method); add_access_control_allow_methods_header(method);
AddAccessControlAllowOriginHeader(origin); add_access_control_allow_origin_header(origin);
AddAccessControlMaxAgeHeader(); add_access_control_max_age_header();
AddAccessControlExposeHeadersHeader(); add_access_control_expose_headers_header();
if( AreCorsCredentialsAvailable() ) if( are_cors_credentials_available() )
{ {
AddAccessControlAllowCredentialsHeader(); add_access_control_allow_credentials_header();
} }
if( request_headers ) if( request_headers )
{ {
AddAccessControlAllowHeadersHeader(*request_headers); add_access_control_allow_headers_header(*request_headers);
} }
log << log3 << "FunctionBase: this cors request is permitted" << logend; log << log3 << "FunctionBase: this cors request is permitted" << logend;
} }
void FunctionBase::AddCorsNormalRequestHeaders(const std::wstring & origin) void FunctionBase::add_cors_normal_request_headers(const std::wstring & origin)
{ {
AddAccessControlAllowOriginHeader(origin); add_access_control_allow_origin_header(origin);
AddAccessControlExposeHeadersHeader(); add_access_control_expose_headers_header();
if( AreCorsCredentialsAvailable() ) if( are_cors_credentials_available() )
{ {
AddAccessControlAllowCredentialsHeader(); add_access_control_allow_credentials_header();
} }
} }
void FunctionBase::CheckCorsPreflightRequest(const std::wstring & origin, const std::wstring & method_string) void FunctionBase::check_cors_preflight_request(const std::wstring & origin, const std::wstring & method_string)
{ {
pt::Space * cors_headers = cur->request->headers_in.get_space_nc(L"Access_Control_Request_Headers"); pt::Space * cors_headers = cur->request->headers_in.get_space_nc(L"Access_Control_Request_Headers");
Request::Method method = Request::CheckRequestMethod(method_string.c_str()); Request::Method method = Request::CheckRequestMethod(method_string.c_str());
if( IsCorsMethodAvailable(method) ) if( is_cors_method_available(method) )
{ {
bool cors_headers_available = true; bool cors_headers_available = true;
std::wstring * headers = nullptr; std::wstring * headers = nullptr;
@@ -321,12 +317,12 @@ void FunctionBase::CheckCorsPreflightRequest(const std::wstring & origin, const
if( cors_headers && cors_headers->is_wstr() ) if( cors_headers && cors_headers->is_wstr() )
{ {
headers = cors_headers->get_wstr(); headers = cors_headers->get_wstr();
cors_headers_available = AreCorsHeadersAvailable(*headers); cors_headers_available = are_cors_headers_available(*headers);
} }
if( cors_headers_available ) if( cors_headers_available )
{ {
AddCorsPreflightRequestHeaders(origin, method, headers); add_cors_preflight_request_headers(origin, method, headers);
} }
else else
{ {
@@ -343,7 +339,7 @@ void FunctionBase::CheckCorsPreflightRequest(const std::wstring & origin, const
} }
void FunctionBase::AddResponseHeadersForOrigin(const std::wstring & origin) void FunctionBase::add_response_headers_for_origin(const std::wstring & origin)
{ {
if( cur->request->method == Request::Method::options ) if( cur->request->method == Request::Method::options )
{ {
@@ -360,7 +356,7 @@ void FunctionBase::AddResponseHeadersForOrigin(const std::wstring & origin)
if( config->are_cors_preflight_requests_available ) if( config->are_cors_preflight_requests_available )
{ {
CheckCorsPreflightRequest(origin, *cors_method->get_wstr()); check_cors_preflight_request(origin, *cors_method->get_wstr());
} }
else else
{ {
@@ -372,26 +368,26 @@ void FunctionBase::AddResponseHeadersForOrigin(const std::wstring & origin)
/* /*
* this is not a preflight cors request * this is not a preflight cors request
*/ */
AddAllowMethodsHeader(); add_allow_methods_header();
AddCorsNormalRequestHeaders(origin); add_cors_normal_request_headers(origin);
} }
} }
else else
{ {
AddCorsNormalRequestHeaders(origin); add_cors_normal_request_headers(origin);
} }
} }
void FunctionBase::CheckOriginHeader() void FunctionBase::check_origin_header()
{ {
pt::Space * origin = cur->request->headers_in.get_space_nc(L"Origin"); pt::Space * origin = cur->request->headers_in.get_space_nc(L"Origin");
if( origin && origin->is_wstr() ) if( origin && origin->is_wstr() )
{ {
if( IsOriginAvailable(*origin->get_wstr()) ) if( is_origin_available(*origin->get_wstr()) )
{ {
AddResponseHeadersForOrigin(*origin->get_wstr()); add_response_headers_for_origin(*origin->get_wstr());
} }
else else
{ {
@@ -412,118 +408,598 @@ void FunctionBase::CheckOriginHeader()
{ {
if( cur->request->method == Request::Method::options ) if( cur->request->method == Request::Method::options )
{ {
AddAllowMethodsHeader(); add_allow_methods_header();
} }
} }
} }
void FunctionBase::MakeGet() bool FunctionBase::has_access()
{
// true by default
//return true;
return HasAccess(); /* for backward compatibility, will be removed */
}
bool FunctionBase::has_get_access()
{
return has_access();
}
bool FunctionBase::has_head_access()
{
return has_access();
}
bool FunctionBase::has_post_access()
{
return has_access();
}
bool FunctionBase::has_put_access()
{
return has_access();
}
bool FunctionBase::has_delete_access()
{
return has_access();
}
bool FunctionBase::has_connect_access()
{
return has_access();
}
bool FunctionBase::has_options_access()
{
return has_access();
}
bool FunctionBase::has_trace_access()
{
return has_access();
}
bool FunctionBase::has_patch_access()
{
return has_access();
}
void FunctionBase::start_request()
{ {
// do nothing by default // do nothing by default
} }
void FunctionBase::MakeHead() void FunctionBase::make_get()
{ {
// by default call MakeGet() but we do not return any content at the end of the request // do nothing by default
MakeGet(); MakeGet();
} }
void FunctionBase::MakePost() void FunctionBase::make_head()
{
// by default call MakeGet() but we do not return any content at the end of the request
MakeHead();
}
void FunctionBase::make_post()
{
// do nothing by default
MakePost();
}
void FunctionBase::make_put()
{
// do nothing by default
MakePut();
}
void FunctionBase::make_delete()
{
// do nothing by default
MakeDelete();
}
void FunctionBase::make_connect()
{
// do nothing by default
MakeConnect();
}
void FunctionBase::make_options()
{
// do nothing by default
MakeOptions();
}
void FunctionBase::make_trace()
{
// do nothing by default
MakeTrace();
}
void FunctionBase::make_patch()
{
// do nothing by default
MakePatch();
}
void FunctionBase::finish_request()
{ {
// do nothing by default // do nothing by default
} }
void FunctionBase::MakePut() void FunctionBase::clear()
{ {
// do nothing by default winix_ezc_helper.set_connector(model_connector);
} winix_ezc_helper.clear();
void FunctionBase::MakeDelete() // for backward compatibility - will be removed
{ Clear();
// do nothing by default
}
void FunctionBase::MakeConnect()
{
// do nothing by default
}
void FunctionBase::MakeOptions()
{
// do nothing by default
}
void FunctionBase::MakeTrace()
{
// do nothing by default
}
void FunctionBase::MakePatch()
{
// do nothing by default
}
void FunctionBase::Clear()
{
// do nothing by default
} }
void FunctionBase::ContinueMakeGet() void FunctionBase::continue_make_get()
{ {
// do nothing by default // do nothing by default
ContinueMakeGet();
} }
void FunctionBase::ContinueMakeHead() void FunctionBase::continue_make_head()
{ {
// do nothing by default // do nothing by default
ContinueMakeHead();
} }
void FunctionBase::ContinueMakePost() void FunctionBase::continue_make_post()
{ {
// do nothing by default // do nothing by default
ContinueMakePost();
} }
void FunctionBase::ContinueMakePut() void FunctionBase::continue_make_put()
{ {
// do nothing by default // do nothing by default
ContinueMakePut();
} }
void FunctionBase::ContinueMakeDelete() void FunctionBase::continue_make_delete()
{ {
// do nothing by default // do nothing by default
ContinueMakeDelete();
} }
void FunctionBase::ContinueMakeConnect() void FunctionBase::continue_make_connect()
{ {
// do nothing by default // do nothing by default
ContinueMakeConnect();
} }
void FunctionBase::ContinueMakeOptions() void FunctionBase::continue_make_options()
{ {
// do nothing by default // do nothing by default
ContinueMakeOptions();
} }
void FunctionBase::ContinueMakeTrace() void FunctionBase::continue_make_trace()
{ {
// do nothing by default // do nothing by default
ContinueMakeTrace();
} }
void FunctionBase::ContinueMakePatch() void FunctionBase::continue_make_patch()
{ {
// do nothing by default // do nothing by default
ContinueMakePatch();
} }
bool FunctionBase::NeedToCopyRawPost()
bool FunctionBase::need_to_copy_raw_post()
{ {
return false; return false;
} }
bool FunctionBase::can_push_url_to_browser_history()
{
return true;
}
void FunctionBase::add_standard_models()
{
if( cur->request->use_ezc_engine )
{
cur->request->models.Add(L"winix_ezc_helper", winix_ezc_helper);
}
}
void FunctionBase::prepare_doc_url(const wchar_t * local_url, pt::WTextStream & url)
{
system->PutUrlProto(config->use_ssl, url, false);
if( !cur->request->subdomain.empty() )
{
url << cur->request->subdomain << '.';
}
url << config->base_url;
if( local_url )
{
url << local_url;
}
}
void FunctionBase::prepare_doc_url(const wchar_t * local_url, std::wstring & url)
{
pt::WTextStream stream;
prepare_doc_url(local_url, stream);
stream.to_str(url);
}
std::wstring FunctionBase::prepare_doc_url(const wchar_t * local_url)
{
std::wstring url;
prepare_doc_url(local_url, url);
return url;
}
std::wstring FunctionBase::prepare_doc_url(const std::wstring & local_url)
{
return prepare_doc_url(local_url.c_str());
}
void FunctionBase::redirect_to(const wchar_t * url, bool append_domain)
{
if( cur->request->is_htmx_request )
{
if( append_domain )
{
cur->request->out_headers.add(L"HX-Redirect", prepare_doc_url(url));
}
else
{
cur->request->out_headers.add(L"HX-Redirect", url);
}
}
else
{
if( append_domain )
{
prepare_doc_url(url, cur->request->redirect_to);
}
else
{
cur->request->redirect_to = url;
}
cur->request->redirect_type = Header::status_303_see_other;
}
}
void FunctionBase::redirect_to(const std::wstring & url, bool append_domain)
{
redirect_to(url.c_str(), append_domain);
}
void FunctionBase::redirect_to(const pt::WTextStream & url, bool append_domain)
{
std::wstring url_str;
url.to_str(url_str);
redirect_to(url_str, append_domain);
}
void FunctionBase::redirect_to(const wchar_t * url, const wchar_t * frame_url, const wchar_t * dom_target)
{
if( cur->request->is_htmx_request )
{
/*
* we do not use HX-Location because it will put the frame_url to the browser history
* and there is no an option to disable it or change the url
*/
pt::WTextStream full_url, full_frame_url, hx_trigger_value;
prepare_doc_url(url, full_url);
prepare_doc_url(frame_url, full_frame_url);
pt::Space & trigger = cur->request->out_headers.get_add_space(L"HX-Trigger");
pt::Space & redirect = trigger.get_add_space(L"winix:redirect");
redirect.add(L"path", full_frame_url);
redirect.add(L"target", dom_target);
log << log3 << "FunctionBase: redirecting to: " << frame_url << ", dom_target: " << dom_target << logend;
if( can_push_url_to_browser_history() )
{
cur->request->out_headers.add(L"HX-Push-Url", full_url);
log << log3 << "FunctionBase: pushing a new url to the browser history: " << full_url << logend;
}
}
else
{
prepare_doc_url(url, cur->request->redirect_to);
cur->request->redirect_type = Header::status_303_see_other;
}
}
void FunctionBase::redirect_to(const std::wstring & url, const std::wstring & frame_url, const std::wstring & dom_target)
{
redirect_to(url.c_str(), frame_url.c_str(), dom_target.c_str());
}
void FunctionBase::redirect_to(pt::WTextStream & url, pt::WTextStream & frame_url, pt::WTextStream & dom_target)
{
std::wstring url_str, frame_url_str, dom_target_str;
url.to_str(url_str);
frame_url.to_str(frame_url_str);
dom_target.to_str(dom_target_str);
redirect_to(url_str, frame_url_str, dom_target_str);
}
void FunctionBase::redirect_to(pt::WTextStream & url, pt::WTextStream & frame_url, const wchar_t * dom_target)
{
std::wstring url_str, frame_url_str;
url.to_str(url_str);
frame_url.to_str(frame_url_str);
redirect_to(url_str.c_str(), frame_url_str.c_str(), dom_target);
}
void FunctionBase::redirect_to(const wchar_t * url, const wchar_t * frame_url, pt::WTextStream & dom_target)
{
std::wstring dom_target_str;
dom_target.to_str(dom_target_str);
redirect_to(url, frame_url, dom_target_str.c_str());
}
void FunctionBase::retarged(const wchar_t * frame, const wchar_t * dom_target, const wchar_t * push_url, const wchar_t * swap_algorithm)
{
pt::WTextStream log_msg;
if( frame && (*frame) )
{
cur->request->send_frames.clear();
cur->request->send_frames.push_back(frame);
log_msg << ", frame: " << frame;
}
if( dom_target && (*dom_target) )
{
cur->request->out_headers.add(L"HX-Retarget", dom_target);
log_msg << ", container: " << dom_target;
}
if( push_url && can_push_url_to_browser_history() )
{
std::wstring url = prepare_doc_url(push_url);
cur->request->out_headers.add(L"HX-Push-Url", url);
log << log3 << "FunctionBase: pushing a new url to the browser history: " << url << logend;
}
if( swap_algorithm && (*swap_algorithm) )
{
cur->request->out_headers.add(L"HX-Reswap", swap_algorithm);
}
log << log3 << "FunctionBase: changing the targed" << log_msg << logend;
}
void FunctionBase::retarged(const std::wstring & frame, const std::wstring & dom_target, const std::wstring & push_url, const wchar_t * swap_algorithm)
{
retarged(frame.c_str(), dom_target.c_str(), push_url.c_str(), swap_algorithm);
}
void FunctionBase::retarged(const wchar_t * frame, pt::WTextStream & dom_target, const wchar_t * push_url, const wchar_t * swap_algorithm)
{
std::wstring dom_target_str;
dom_target.to_str(dom_target_str);
retarged(frame, dom_target_str.c_str(), push_url, swap_algorithm);
}
void FunctionBase::remove_content(pt::WTextStream & dom_target, bool close_dialogs)
{
pt::Space & trigger = cur->request->out_headers.get_add_space(L"HX-Trigger");
pt::Space & remove_content = trigger.get_add_space(L"winix:removecontent");
pt::Space & rm = remove_content.get_add_space(L"rm");
rm.add(dom_target);
if( close_dialogs )
{
close_modal_dialogs();
}
/*
* CHECKME may we do not need to use the ezc engine at all?
*/
cur->request->send_frames.clear();
}
void FunctionBase::remove_content(const wchar_t * dom_target, bool has_postfix, long dom_target_postfix, bool close_dialogs)
{
pt::WTextStream target;
target << dom_target;
if( has_postfix )
target << dom_target_postfix;
remove_content(target, close_dialogs);
}
void FunctionBase::remove_content(const wchar_t * dom_target, long dom_target_postfix, bool close_dialogs)
{
remove_content(dom_target, true, dom_target_postfix, close_dialogs);
}
void FunctionBase::remove_content(const wchar_t * dom_target, bool close_dialogs)
{
remove_content(dom_target, false, 0, close_dialogs);
}
void FunctionBase::update_content(const wchar_t * frame, pt::WTextStream & dom_target, bool close_dialogs)
{
if( close_dialogs )
{
close_modal_dialogs();
}
retarged(frame, dom_target);
}
void FunctionBase::update_content(const wchar_t * frame, const wchar_t * dom_target, bool has_postfix, long dom_target_postfix, bool close_dialogs)
{
pt::WTextStream target;
target << dom_target;
if( has_postfix )
target << dom_target_postfix;
update_content(frame, target, close_dialogs);
}
void FunctionBase::update_content(const wchar_t * frame, const wchar_t * dom_target, long dom_target_postfix, bool close_dialogs)
{
update_content(frame, dom_target, true, dom_target_postfix, close_dialogs);
}
void FunctionBase::update_content(const wchar_t * frame, const wchar_t * dom_target, bool close_dialogs)
{
update_content(frame, dom_target, false, 0, close_dialogs);
}
void FunctionBase::close_modal_dialogs()
{
pt::Space & trigger = cur->request->out_headers.get_add_space(L"HX-Trigger");
trigger.add(L"winix:closedialogs", true);
}
/*
* DEPRACATED
* for backward compatibility
*/
void FunctionBase::Init()
{
}
void FunctionBase::Finish()
{
}
bool FunctionBase::HasAccess()
{
return true;
}
void FunctionBase::Clear()
{
}
void FunctionBase::MakeGet()
{
}
void FunctionBase::MakeHead()
{
make_get();
}
void FunctionBase::MakePost()
{
}
void FunctionBase::MakePut()
{
}
void FunctionBase::MakeDelete()
{
}
void FunctionBase::MakeConnect()
{
}
void FunctionBase::MakeOptions()
{
}
void FunctionBase::MakeTrace()
{
}
void FunctionBase::MakePatch()
{
}
void FunctionBase::ContinueMakeGet()
{
}
void FunctionBase::ContinueMakeHead()
{
}
void FunctionBase::ContinueMakePost()
{
}
void FunctionBase::ContinueMakePut()
{
}
void FunctionBase::ContinueMakeDelete()
{
}
void FunctionBase::ContinueMakeConnect()
{
}
void FunctionBase::ContinueMakeOptions()
{
}
void FunctionBase::ContinueMakeTrace()
{
}
void FunctionBase::ContinueMakePatch()
{
}
} // namespace Winix } // namespace Winix

View File

@@ -36,20 +36,15 @@
#define headerfile_winix_functions_functionbase #define headerfile_winix_functions_functionbase
#include <string> #include <string>
#include <vector>
#include "core/request.h" #include "core/request.h"
#include "core/config.h"
#include "core/synchro.h"
#include "notify/notify.h"
#include "core/winixrequest.h" #include "core/winixrequest.h"
#include "models/helpers/winixezchelper.h"
#include "models/item.h" #include "models/item.h"
#include "notify/notify.h"
namespace Winix namespace Winix
{ {
class Functions; class Functions;
class Templates; class Templates;
@@ -105,30 +100,126 @@ public:
size_t post_max_nested_objects; size_t post_max_nested_objects;
void set_functions(Functions * pfunctions);
void set_templates(Templates * ptemplates);
virtual void init();
virtual void finish();
virtual void add_allow_methods_header();
virtual bool is_cors_method_available(Request::Method method);
virtual bool is_origin_available(const std::wstring & origin_url);
virtual bool are_cors_credentials_available();
virtual bool are_cors_headers_available(const std::wstring & headers);
virtual void add_access_control_allow_methods_header(Request::Method method);
virtual void add_access_control_allow_origin_header(const std::wstring & origin_url);
virtual void add_access_control_allow_headers_header(const std::wstring & headers);
virtual void add_access_control_max_age_header();
virtual void add_access_control_allow_credentials_header();
virtual void add_access_control_expose_headers_header();
virtual void add_cors_preflight_request_headers(const std::wstring & origin, Request::Method method, const std::wstring * request_headers);
virtual void add_cors_normal_request_headers(const std::wstring & origin);
virtual void check_cors_preflight_request(const std::wstring & origin, const std::wstring & method_string);
virtual void add_response_headers_for_origin(const std::wstring & origin);
virtual void check_origin_header();
/*
* - at the beginning call one of has_*_access() depending on the http method
* by default all of them call has_access()
* - next call start_request()
* - call one of make_*() methods
* - if the request is assigned to a job then call clear() and one of continue_make_*() methods
* this call is made from a job thread (with locking mechanism)
* - if the request is still assigned to a job then call clear() and continue_make_*() again
* (this can create a loop of clear() and continue_make_*() calls)
* - if the request is not assigned to a job_request then call finish_request() and clear()
*
*/
virtual bool has_access();
virtual bool has_get_access();
virtual bool has_head_access();
virtual bool has_post_access();
virtual bool has_put_access();
virtual bool has_delete_access();
virtual bool has_connect_access();
virtual bool has_options_access();
virtual bool has_trace_access();
virtual bool has_patch_access();
virtual void start_request();
virtual void make_get();
virtual void make_head();
virtual void make_post();
virtual void make_put();
virtual void make_delete();
virtual void make_connect();
virtual void make_options();
virtual void make_trace();
virtual void make_patch();
virtual void finish_request();
virtual void clear();
/*
* continue_make_* methods are called from the jobs thread
* objects are locked
*/
virtual void continue_make_get();
virtual void continue_make_head();
virtual void continue_make_post();
virtual void continue_make_put();
virtual void continue_make_delete();
virtual void continue_make_connect();
virtual void continue_make_options();
virtual void continue_make_trace();
virtual void continue_make_patch();
virtual bool need_to_copy_raw_post();
virtual bool can_push_url_to_browser_history();
virtual void add_standard_models();
virtual void prepare_doc_url(const wchar_t * local_url, pt::WTextStream & url);
virtual void prepare_doc_url(const wchar_t * local_url, std::wstring & url);
virtual std::wstring prepare_doc_url(const wchar_t * local_url = nullptr);
virtual std::wstring prepare_doc_url(const std::wstring & local_url);
virtual void redirect_to(const wchar_t * url, bool append_domain = true);
virtual void redirect_to(const std::wstring & url, bool append_domain = true);
virtual void redirect_to(const pt::WTextStream & url, bool append_domain = true);
virtual void redirect_to(const wchar_t * url, const wchar_t * frame_url, const wchar_t * dom_target);
virtual void redirect_to(const std::wstring & url, const std::wstring & frame_url, const std::wstring & dom_target);
virtual void redirect_to(pt::WTextStream & url, pt::WTextStream & frame_url, pt::WTextStream & dom_target);
virtual void redirect_to(pt::WTextStream & url, pt::WTextStream & frame_url, const wchar_t * dom_target);
virtual void redirect_to(const wchar_t * url, const wchar_t * frame_url, pt::WTextStream & dom_target);
virtual void retarged(const wchar_t * frame, const wchar_t * dom_target, const wchar_t * push_url = nullptr, const wchar_t * swap_algorithm = nullptr);
virtual void retarged(const std::wstring & frame, const std::wstring & dom_target, const std::wstring & push_url, const wchar_t * swap_algorithm = nullptr);
virtual void retarged(const wchar_t * frame, pt::WTextStream & dom_target, const wchar_t * push_url = nullptr, const wchar_t * swap_algorithm = nullptr);
virtual void remove_content(pt::WTextStream & dom_target, bool close_dialogs = false);
virtual void remove_content(const wchar_t * dom_target, bool has_postfix, long dom_target_postfix, bool close_dialogs = false);
virtual void remove_content(const wchar_t * dom_target, long dom_target_postfix, bool close_dialogs = false);
virtual void remove_content(const wchar_t * dom_target, bool close_dialogs = false);
virtual void update_content(const wchar_t * frame, pt::WTextStream & dom_target, bool close_dialogs = false);
virtual void update_content(const wchar_t * frame, const wchar_t * dom_target, bool has_postfix, long dom_target_postfix, bool close_dialogs = false);
virtual void update_content(const wchar_t * frame, const wchar_t * dom_target, long dom_target_postfix, bool close_dialogs = false);
virtual void update_content(const wchar_t * frame, const wchar_t * dom_target, bool close_dialogs = false);
virtual void close_modal_dialogs();
/*
* DEPRECATED
* for backward compatibility
*/
virtual void Init(); virtual void Init();
virtual void Finish(); virtual void Finish();
virtual bool HasAccess(); virtual bool HasAccess();
virtual void Clear();
virtual void AddAllowMethodsHeader();
virtual bool IsCorsMethodAvailable(Request::Method method);
virtual bool IsOriginAvailable(const std::wstring & origin_url);
virtual bool AreCorsCredentialsAvailable();
virtual bool AreCorsHeadersAvailable(const std::wstring & headers);
virtual void AddAccessControlAllowMethodsHeader(Request::Method method);
virtual void AddAccessControlAllowOriginHeader(const std::wstring & origin_url);
virtual void AddAccessControlAllowHeadersHeader(const std::wstring & headers);
virtual void AddAccessControlMaxAgeHeader();
virtual void AddAccessControlAllowCredentialsHeader();
virtual void AddAccessControlExposeHeadersHeader();
virtual void AddCorsPreflightRequestHeaders(const std::wstring & origin, Request::Method method, const std::wstring * request_headers);
virtual void AddCorsNormalRequestHeaders(const std::wstring & origin);
virtual void CheckCorsPreflightRequest(const std::wstring & origin, const std::wstring & method_string);
virtual void AddResponseHeadersForOrigin(const std::wstring & origin);
virtual void CheckOriginHeader();
virtual void MakeGet(); virtual void MakeGet();
virtual void MakeHead(); virtual void MakeHead();
@@ -140,12 +231,6 @@ public:
virtual void MakeTrace(); virtual void MakeTrace();
virtual void MakePatch(); virtual void MakePatch();
virtual void Clear();
/*
* called from the jobs thread
* objects are locked
*/
virtual void ContinueMakeGet(); virtual void ContinueMakeGet();
virtual void ContinueMakeHead(); virtual void ContinueMakeHead();
virtual void ContinueMakePost(); virtual void ContinueMakePost();
@@ -157,24 +242,13 @@ public:
virtual void ContinueMakePatch(); virtual void ContinueMakePatch();
//void SetConfig(Config * pconfig);
//void SetCur(Cur * pcur);
//void SetSystem(System * psystem);
void SetFunctions(Functions * pfunctions);
void SetTemplates(Templates * ptemplates);
//void SetSynchro(Synchro * psynchro);
//void SetSessionManager(SessionManager * pmanager);
virtual bool NeedToCopyRawPost();
protected: protected:
//Config * config;
//System * system;
Functions * functions; Functions * functions;
Templates * templates; Templates * templates;
//Synchro * synchro;
//SessionManager * session_manager; WinixEzcHelper winix_ezc_helper;
}; };

View File

@@ -184,8 +184,8 @@ void Functions::SetObjects(FunctionBase * fun)
//fun->SetConfig(config); //fun->SetConfig(config);
//fun->SetCur(cur); //fun->SetCur(cur);
//fun->SetSystem(system); //fun->SetSystem(system);
fun->SetFunctions(this); fun->set_functions(this);
fun->SetTemplates(templates); fun->set_templates(templates);
//fun->SetSynchro(synchro); //fun->SetSynchro(synchro);
//fun->SetSessionManager(session_manager); //fun->SetSessionManager(session_manager);
} }
@@ -288,7 +288,7 @@ void Functions::InitFunctions()
Table::iterator i = table.begin(); Table::iterator i = table.begin();
for( ; i!=table.end() ; ++i) for( ; i!=table.end() ; ++i)
i->second->Init(); i->second->init();
} }
@@ -297,7 +297,7 @@ void Functions::FinishFunctions()
Table::iterator i = table.begin(); Table::iterator i = table.begin();
for( ; i!=table.end() ; ++i) for( ; i!=table.end() ; ++i)
i->second->Finish(); i->second->finish();
} }
@@ -449,19 +449,181 @@ bool was_default_function = false;
} }
bool Functions::HasAccessToCallMake()
{
bool has_access = false;
if( cur->request->method == Request::get )
{
has_access = cur->request->function->has_get_access();
}
else
if( cur->request->method == Request::head )
{
has_access = cur->request->function->has_head_access();
}
else
if( cur->request->method == Request::post )
{
has_access = cur->request->function->has_post_access();
}
else
if( cur->request->method == Request::put )
{
has_access = cur->request->function->has_put_access();
}
else
if( cur->request->method == Request::delete_ )
{
has_access = cur->request->function->has_delete_access();
}
else
if( cur->request->method == Request::connect )
{
has_access = cur->request->function->has_connect_access();
}
else
if( cur->request->method == Request::options )
{
has_access = cur->request->function->has_options_access();
}
else
if( cur->request->method == Request::trace )
{
has_access = cur->request->function->has_trace_access();
}
else
if( cur->request->method == Request::patch )
{
has_access = cur->request->function->has_patch_access();
}
else
{
log << log2 << "Functions: I cannot call a function, an unknown request method (skipping)" << logend;
}
return has_access;
}
void Functions::CallFunctionMake()
{
if( cur->request->method == Request::get )
{
cur->request->function->make_get();
}
else
if( cur->request->method == Request::head )
{
cur->request->function->make_head();
}
else
if( cur->request->method == Request::post )
{
cur->request->function->make_post();
}
else
if( cur->request->method == Request::put )
{
cur->request->function->make_put();
}
else
if( cur->request->method == Request::delete_ )
{
cur->request->function->make_delete();
}
else
if( cur->request->method == Request::connect )
{
cur->request->function->make_connect();
}
else
if( cur->request->method == Request::options )
{
cur->request->function->make_options();
}
else
if( cur->request->method == Request::trace )
{
cur->request->function->make_trace();
}
else
if( cur->request->method == Request::patch )
{
cur->request->function->make_patch();
}
else
{
log << log2 << "Functions: I cannot call a function, an unknown request method (skipping)" << logend;
}
}
void Functions::CallFunctionContinueMake()
{
if( cur->request->method == Request::get )
{
cur->request->function->continue_make_get();
}
else
if( cur->request->method == Request::head )
{
cur->request->function->continue_make_head();
}
else
if( cur->request->method == Request::post )
{
cur->request->function->continue_make_post();
}
else
if( cur->request->method == Request::put )
{
cur->request->function->continue_make_put();
}
else
if( cur->request->method == Request::delete_ )
{
cur->request->function->continue_make_delete();
}
else
if( cur->request->method == Request::connect )
{
cur->request->function->continue_make_connect();
}
else
if( cur->request->method == Request::options )
{
cur->request->function->continue_make_options();
}
else
if( cur->request->method == Request::trace )
{
cur->request->function->continue_make_trace();
}
else
if( cur->request->method == Request::patch )
{
cur->request->function->continue_make_patch();
}
else
{
log << log2 << "Functions: I cannot continue a request, an unknown request method (skipping)" << logend;
}
}
void Functions::MakeFunction() void Functions::MakeFunction()
{ {
if( !cur->request->function ) if( !cur->request->function )
{ {
cur->request->http_status = Header::status_500_internal_server_error; // or 404? (404 was originally) cur->request->http_status = Header::status_500_internal_server_error; // or 404? (404 was originally)
log << log1 << "Functions: no function to call" << logend; log << log2 << "Functions: no function to call" << logend;
return; return;
} }
if( !system->DirsHaveReadExecPerm() || if( !system->DirsHaveReadExecPerm() ||
!system->HasReadExecAccess(cur->request->function->fun) || !system->HasReadExecAccess(cur->request->function->fun) ||
!cur->request->function->HasAccess() ) !HasAccessToCallMake() )
{ {
cur->request->http_status = Header::status_403_forbidden; cur->request->http_status = Header::status_403_forbidden;
return; return;
@@ -473,54 +635,11 @@ void Functions::MakeFunction()
return; return;
} }
if( cur->request->method == Request::get ) cur->request->function->start_request();
{ CallFunctionMake();
cur->request->function->MakeGet();
} if( cur->request->run_state != Request::RunState::assigned_to_job )
else cur->request->function->finish_request();
if( cur->request->method == Request::head )
{
cur->request->function->MakeHead();
}
else
if( cur->request->method == Request::post )
{
cur->request->function->MakePost();
}
else
if( cur->request->method == Request::put )
{
cur->request->function->MakePut();
}
else
if( cur->request->method == Request::delete_ )
{
cur->request->function->MakeDelete();
}
else
if( cur->request->method == Request::connect )
{
cur->request->function->MakeConnect();
}
else
if( cur->request->method == Request::options )
{
cur->request->function->MakeOptions();
}
else
if( cur->request->method == Request::trace )
{
cur->request->function->MakeTrace();
}
else
if( cur->request->method == Request::patch )
{
cur->request->function->MakePatch();
}
else
{
log << log1 << "Functions: I cannot call a function, an unknown request method (skipping)" << logend;
}
} }
@@ -535,7 +654,7 @@ void Functions::ContinueMakeFunction()
if( !system->DirsHaveReadExecPerm() || if( !system->DirsHaveReadExecPerm() ||
!system->HasReadExecAccess(cur->request->function->fun) || !system->HasReadExecAccess(cur->request->function->fun) ||
!cur->request->function->HasAccess() ) !HasAccessToCallMake() )
{ {
cur->request->http_status = Header::status_403_forbidden; cur->request->http_status = Header::status_403_forbidden;
return; return;
@@ -545,54 +664,10 @@ void Functions::ContinueMakeFunction()
cur->request->PutMethodName(log); cur->request->PutMethodName(log);
log << " for request " << cur->request << " for function " << cur->request->function->fun.url << logend; log << " for request " << cur->request << " for function " << cur->request->function->fun.url << logend;
if( cur->request->method == Request::get ) CallFunctionContinueMake();
{
cur->request->function->ContinueMakeGet(); if( cur->request->run_state != Request::RunState::assigned_to_job )
} cur->request->function->finish_request();
else
if( cur->request->method == Request::head )
{
cur->request->function->ContinueMakeHead();
}
else
if( cur->request->method == Request::post )
{
cur->request->function->ContinueMakePost();
}
else
if( cur->request->method == Request::put )
{
cur->request->function->ContinueMakePut();
}
else
if( cur->request->method == Request::delete_ )
{
cur->request->function->ContinueMakeDelete();
}
else
if( cur->request->method == Request::connect )
{
cur->request->function->ContinueMakeConnect();
}
else
if( cur->request->method == Request::options )
{
cur->request->function->ContinueMakeOptions();
}
else
if( cur->request->method == Request::trace )
{
cur->request->function->ContinueMakeTrace();
}
else
if( cur->request->method == Request::patch )
{
cur->request->function->ContinueMakePatch();
}
else
{
log << log1 << "Functions: I cannot continue a request, an unknown request method (skipping)" << logend;
}
} }

View File

@@ -231,6 +231,11 @@ private:
void CheckFunctionFollowSymlink(bool was_default_function); void CheckFunctionFollowSymlink(bool was_default_function);
bool CheckAntispamCounter(); bool CheckAntispamCounter();
bool HasAccessToCallMake();
void CallFunctionMake();
void CallFunctionContinueMake();
}; };

View File

@@ -53,7 +53,7 @@ ImgCrop::ImgCrop()
bool ImgCrop::HasAccess() bool ImgCrop::has_access()
{ {
if( cur->request->is_item ) if( cur->request->is_item )
return system->HasWriteAccess(cur->request->item); return system->HasWriteAccess(cur->request->item);
@@ -88,7 +88,7 @@ void ImgCrop::GetDirContent()
void ImgCrop::MakePost() void ImgCrop::make_post()
{ {
int xoffset = int(Tod(cur->request->PostVar(L"cropxtop")) + 0.5); int xoffset = int(Tod(cur->request->PostVar(L"cropxtop")) + 0.5);
int yoffset = int(Tod(cur->request->PostVar(L"cropytop")) + 0.5); int yoffset = int(Tod(cur->request->PostVar(L"cropytop")) + 0.5);
@@ -136,7 +136,7 @@ void ImgCrop::MakePost()
} }
void ImgCrop::MakeGet() void ImgCrop::make_get()
{ {
if( !cur->request->is_item ) if( !cur->request->is_item )
{ {

View File

@@ -51,9 +51,9 @@ public:
ImgCrop(); ImgCrop();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
void MakePost(); void make_post();
// IMPROVEME add method Clear() or ClearAfterRequest()? and clear item_tab // IMPROVEME add method Clear() or ClearAfterRequest()? and clear item_tab

View File

@@ -56,21 +56,21 @@ IPBanFun::IPBanFun()
bool IPBanFun::HasAccess() bool IPBanFun::has_access()
{ {
return cur->session->puser && cur->session->puser->is_super_user; return cur->session->puser && cur->session->puser->is_super_user;
} }
void IPBanFun::MakePost() void IPBanFun::make_post()
{ {
} }
void IPBanFun::MakeGet() void IPBanFun::make_get()
{ {
char tmp_ip_str[100]; char tmp_ip_str[100];
size_t tmp_ip_len = sizeof(tmp_ip_str) / sizeof(char); size_t tmp_ip_len = sizeof(tmp_ip_str) / sizeof(char);

View File

@@ -51,9 +51,9 @@ public:
IPBanFun(); IPBanFun();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
void MakeGet(); void make_get();
private: private:

View File

@@ -49,7 +49,7 @@ Last::Last()
} }
bool Last::HasAccess() bool Last::has_access()
{ {
return cur->session->puser != 0; return cur->session->puser != 0;
} }

View File

@@ -50,7 +50,7 @@ class Last : public FunctionBase
public: public:
Last(); Last();
bool HasAccess(); bool has_access();
private: private:

View File

@@ -53,7 +53,7 @@ Ln::Ln()
bool Ln::HasAccess() bool Ln::has_access()
{ {
return system->HasWriteAccess(*cur->request->dir_tab.back()); return system->HasWriteAccess(*cur->request->dir_tab.back());
} }
@@ -153,7 +153,7 @@ void Ln::CreateHardLink(const std::wstring & link_to)
// we do not use notifications for links // we do not use notifications for links
void Ln::MakePost() void Ln::make_post()
{ {
link_to = cur->request->PostVar(L"linkto"); link_to = cur->request->PostVar(L"linkto");
TrimWhite(link_to); TrimWhite(link_to);

View File

@@ -50,8 +50,8 @@ class Ln : public FunctionBase
public: public:
Ln(); Ln();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
bool CreateSymbolicLink(long parent_id, const wchar_t * link_to, const wchar_t * url, bool link_redirect = true); bool CreateSymbolicLink(long parent_id, const wchar_t * link_to, const wchar_t * url, bool link_redirect = true);
bool CreateSymbolicLink(long parent_id, const std::wstring & link_to, const std::wstring & url, bool link_redirect = true); bool CreateSymbolicLink(long parent_id, const std::wstring & link_to, const std::wstring & url, bool link_redirect = true);

View File

@@ -51,14 +51,14 @@ Locale::Locale()
bool Locale::HasAccess() bool Locale::has_access()
{ {
return cur->session->puser != 0; return cur->session->puser != 0;
} }
void Locale::MakePost() void Locale::make_post()
{ {
if( cur->session->puser ) if( cur->session->puser )
{ {
@@ -79,7 +79,7 @@ void Locale::MakePost()
void Locale::MakeGet() void Locale::make_get()
{ {
} }

View File

@@ -50,9 +50,9 @@ class Locale : public FunctionBase
public: public:
Locale(); Locale();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
void MakeGet(); void make_get();
private: private:

View File

@@ -321,7 +321,7 @@ return false;
} }
void Login::MakePost() void Login::make_post()
{ {
const std::wstring & login = cur->request->PostVar(L"login"); const std::wstring & login = cur->request->PostVar(L"login");
const std::wstring & pass = cur->request->PostVar(L"password"); const std::wstring & pass = cur->request->PostVar(L"password");
@@ -332,7 +332,7 @@ void Login::MakePost()
} }
void Login::MakeGet() void Login::make_get()
{ {
} }

View File

@@ -59,8 +59,8 @@ public:
Login(); Login();
void MakePost(); void make_post();
void MakeGet(); void make_get();
bool ShouldUseCaptchaForCurrentIP(); bool ShouldUseCaptchaForCurrentIP();
bool ShouldUseCaptchaFor(const IPBan & ipban); bool ShouldUseCaptchaFor(const IPBan & ipban);

View File

@@ -52,7 +52,7 @@ Logout::Logout()
void Logout::MakeGet() void Logout::make_get()
{ {
if( cur->session->puser ) if( cur->session->puser )
{ {

View File

@@ -50,7 +50,7 @@ class Logout : public FunctionBase
public: public:
Logout(); Logout();
void MakeGet(); void make_get();
private: private:

View File

@@ -86,7 +86,7 @@ void Ls::prepare_dirs()
} }
void Ls::MakeGet() void Ls::make_get()
{ {
// !! IMPROVE ME // !! IMPROVE ME
// this should be moved to ckeditor function (similarly the html content from fun_ls.html) // this should be moved to ckeditor function (similarly the html content from fun_ls.html)
@@ -107,7 +107,7 @@ void Ls::MakeGet()
void Ls::Clear() void Ls::clear()
{ {
item_tab.clear(); item_tab.clear();
dir_tab.clear(); dir_tab.clear();

View File

@@ -50,8 +50,8 @@ class Ls : public FunctionBase
public: public:
Ls(); Ls();
void MakeGet(); void make_get();
void Clear(); void clear();
private: private:

View File

@@ -50,7 +50,7 @@ Meta::Meta()
} }
bool Meta::HasAccess() bool Meta::has_access()
{ {
if( cur->request->IsParam(L"a") ) if( cur->request->IsParam(L"a") )
return cur->session->puser && cur->session->puser->is_super_user; return cur->session->puser && cur->session->puser->is_super_user;
@@ -161,7 +161,7 @@ void Meta::ChangeMeta()
void Meta::MakePost() void Meta::make_post()
{ {
if( cur->request->IsParam(L"a") ) if( cur->request->IsParam(L"a") )
ChangeAdminMeta(); ChangeAdminMeta();

View File

@@ -52,8 +52,8 @@ public:
Meta(); Meta();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
bool EditAdminMeta(Item & item, const std::wstring & meta_str); bool EditAdminMeta(Item & item, const std::wstring & meta_str);
bool EditMeta(Item & item, const std::wstring & meta_str); bool EditMeta(Item & item, const std::wstring & meta_str);

View File

@@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2021, Tomasz Sowa * Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -36,12 +36,10 @@
#include "functions.h" #include "functions.h"
namespace Winix namespace Winix
{ {
namespace Fun namespace Fun
{ {
@@ -51,10 +49,7 @@ Mkdir::Mkdir()
} }
bool Mkdir::has_mkdir_access(const Item & item)
bool Mkdir::HasAccess(const Item & item)
{ {
// you can create a directory only in a directory // you can create a directory only in a directory
if( item.type != Item::dir ) if( item.type != Item::dir )
@@ -77,18 +72,16 @@ return false;
} }
bool Mkdir::HasAccess() bool Mkdir::has_access()
{ {
if( cur->request->is_item || !HasAccess(*cur->request->dir_tab.back()) ) if( cur->request->is_item || !has_mkdir_access(*cur->request->dir_tab.back()) )
return false; return false;
return true; return true;
} }
void Mkdir::post_fun_mkdir(bool add_to_dir_tab, int privileges)
void Mkdir::PostFunMkdir(bool add_to_dir_tab, int privileges)
{ {
cur->request->item.set_connector(model_connector); cur->request->item.set_connector(model_connector);
functions->ReadItem(cur->request->item, Item::dir); functions->ReadItem(cur->request->item, Item::dir);
@@ -110,18 +103,13 @@ void Mkdir::PostFunMkdir(bool add_to_dir_tab, int privileges)
} }
void Mkdir::MakePost() void Mkdir::make_post()
{ {
PostFunMkdir(false, system->NewDirPrivileges()); post_fun_mkdir(false, system->NewDirPrivileges());
} }
} // namespace } // namespace
} // namespace Winix } // namespace Winix

View File

@@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2010-2014, Tomasz Sowa * Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -39,8 +39,6 @@
namespace Winix namespace Winix
{ {
namespace Fun namespace Fun
{ {
@@ -50,19 +48,17 @@ class Mkdir : public FunctionBase
public: public:
Mkdir(); Mkdir();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
private: private:
bool HasAccess(const Item & item); // !! moze to powinien byc skladnik modelu? bool has_mkdir_access(const Item & item);
bool FunMkdirCheckAccess(); void post_fun_mkdir(bool add_to_dir_tab, int privileges);
void PostFunMkdir(bool add_to_dir_tab, int privileges);
}; };
} // namespace } // namespace
} // namespace Winix } // namespace Winix
#endif #endif

View File

@@ -51,7 +51,7 @@ Mount::Mount()
} }
bool Mount::HasAccess() bool Mount::has_access()
{ {
if( cur->session->puser && cur->session->puser->is_super_user ) if( cur->session->puser && cur->session->puser->is_super_user )
return true; return true;
@@ -60,7 +60,7 @@ return false;
} }
void Mount::MakeGet() void Mount::make_get()
{ {
} }

View File

@@ -50,8 +50,8 @@ class Mount : public FunctionBase
public: public:
Mount(); Mount();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
}; };

View File

@@ -59,7 +59,7 @@ Mv::Mv()
// check if everywhere correct messages are sent (prepare_to, modified item/dir) // check if everywhere correct messages are sent (prepare_to, modified item/dir)
bool Mv::HasAccess() bool Mv::has_access()
{ {
if( cur->request->is_item ) if( cur->request->is_item )
{ {
@@ -140,7 +140,7 @@ void Mv::Prepare()
void Mv::Clear() void Mv::clear()
{ {
out_dir_tab.clear(); out_dir_tab.clear();
out_item.Clear(); out_item.Clear();
@@ -422,7 +422,7 @@ return false;
bool Mv::MoveDir(Item & src_dir, long dst_dir_id, const std::wstring & new_url, bool check_access) bool Mv::MoveDir(Item & src_dir, long dst_dir_id, const std::wstring & new_url, bool check_access)
{ {
bool res = MoveDir2(src_dir, dst_dir_id, new_url, check_access); bool res = MoveDir2(src_dir, dst_dir_id, new_url, check_access);
Clear(); clear();
return res; return res;
} }
@@ -469,7 +469,7 @@ bool Mv::MoveDir2(Item & src_dir, long dst_dir_id, const std::wstring & new_url,
bool Mv::MoveDir(Item & src_dir, const std::wstring & dst_path, bool check_access) bool Mv::MoveDir(Item & src_dir, const std::wstring & dst_path, bool check_access)
{ {
bool res = MoveDir2(src_dir, dst_path, check_access); bool res = MoveDir2(src_dir, dst_path, check_access);
Clear(); clear();
return res; return res;
} }
@@ -560,7 +560,7 @@ return false;
bool Mv::MoveFileOrSymlink(Item & src_file, long dst_dir_id, const std::wstring & new_url, bool check_access) bool Mv::MoveFileOrSymlink(Item & src_file, long dst_dir_id, const std::wstring & new_url, bool check_access)
{ {
bool res = MoveFileOrSymlink2(src_file, dst_dir_id, new_url, check_access); bool res = MoveFileOrSymlink2(src_file, dst_dir_id, new_url, check_access);
Clear(); clear();
return res; return res;
} }
@@ -595,7 +595,7 @@ bool Mv::MoveFileOrSymlink2(Item & src_file, long dst_dir_id, const std::wstring
bool Mv::MoveFileOrSymlink(Item & src_file, const std::wstring & dst_path, bool check_access) bool Mv::MoveFileOrSymlink(Item & src_file, const std::wstring & dst_path, bool check_access)
{ {
bool res = MoveFileOrSymlink2(src_file, dst_path, check_access); bool res = MoveFileOrSymlink2(src_file, dst_path, check_access);
Clear(); clear();
return res; return res;
} }
@@ -672,7 +672,7 @@ void Mv::MoveAllFilesFromDir(Item & src_dir, std::vector<Item*> & dst_dir_tab, b
void Mv::MoveDirContent(Item & src_dir, long dst_dir_id, bool check_access) void Mv::MoveDirContent(Item & src_dir, long dst_dir_id, bool check_access)
{ {
MoveDirContent2(src_dir, dst_dir_id, check_access); MoveDirContent2(src_dir, dst_dir_id, check_access);
Clear(); clear();
} }
@@ -709,7 +709,7 @@ void Mv::MoveDirContent2(Item & src_dir, long dst_dir_id, bool check_access)
void Mv::MoveDirContent(Item & src_dir, const std::wstring & dst_dir, bool check_access) void Mv::MoveDirContent(Item & src_dir, const std::wstring & dst_dir, bool check_access)
{ {
MoveDirContent2(src_dir, dst_dir, check_access); MoveDirContent2(src_dir, dst_dir, check_access);
Clear(); clear();
} }
@@ -732,7 +732,7 @@ void Mv::MoveDirContent2(Item & src_dir, const std::wstring & dst_dir, bool chec
void Mv::MakePost() void Mv::make_post()
{ {
const std::wstring & dst_path = cur->request->PostVar(L"dst_path"); const std::wstring & dst_path = cur->request->PostVar(L"dst_path");
bool ok = true; bool ok = true;

View File

@@ -52,8 +52,8 @@ class Mv : public FunctionBase
public: public:
Mv(); Mv();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
// moving a directory // moving a directory
// new_url can be empty (in such a case the old one is preserved) // new_url can be empty (in such a case the old one is preserved)
@@ -114,7 +114,7 @@ private:
void MoveFilesTree(const Item & dir); void MoveFilesTree(const Item & dir);
bool MoveDir(Item & src_dir, std::vector<Item*> & dst_dir_tab, const std::wstring & dst_name); bool MoveDir(Item & src_dir, std::vector<Item*> & dst_dir_tab, const std::wstring & dst_name);
bool MoveFileOrSymlink(Item & src_file, std::vector<Item*> & dst_dir_tab, const std::wstring & new_url); bool MoveFileOrSymlink(Item & src_file, std::vector<Item*> & dst_dir_tab, const std::wstring & new_url);
void Clear(); void clear();
bool MoveDir2(Item & src_dir, long dst_dir_id, const std::wstring & new_url, bool check_access); bool MoveDir2(Item & src_dir, long dst_dir_id, const std::wstring & new_url, bool check_access);
bool MoveDir2(Item & src_dir, const std::wstring & dst_path, bool check_access); bool MoveDir2(Item & src_dir, const std::wstring & dst_path, bool check_access);
bool MoveFileOrSymlink2(Item & src_file, long dst_dir_id, const std::wstring & new_url, bool check_access); bool MoveFileOrSymlink2(Item & src_file, long dst_dir_id, const std::wstring & new_url, bool check_access);

View File

@@ -50,15 +50,15 @@ Nicedit::Nicedit()
} }
bool Nicedit::HasAccess() bool Nicedit::has_access()
{ {
return functions->fun_emacs.HasAccess(); return functions->fun_emacs.has_access();
} }
void Nicedit::MakePost() void Nicedit::make_post()
{ {
functions->fun_emacs.MakePost(); functions->fun_emacs.make_post();
} }

View File

@@ -50,8 +50,8 @@ class Nicedit : public FunctionBase
public: public:
Nicedit(); Nicedit();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
}; };

View File

@@ -50,7 +50,7 @@ Node::Node()
} }
void Node::MakeGet() void Node::make_get()
{ {
if( cur->request->param_tab.empty() ) if( cur->request->param_tab.empty() )
{ {

View File

@@ -50,7 +50,7 @@ class Node : public FunctionBase
public: public:
Node(); Node();
void MakeGet(); void make_get();
private: private:

View File

@@ -54,7 +54,7 @@ Passwd::Passwd()
bool Passwd::HasAccess() bool Passwd::has_access()
{ {
// a not logged user can use this function to reset his password // a not logged user can use this function to reset his password
return true; return true;
@@ -286,7 +286,7 @@ void Passwd::ShowResetPasswordForm()
but if you are not a root you can change only your password but if you are not a root you can change only your password
and you should provide your current password as well and you should provide your current password as well
*/ */
void Passwd::MakePost() void Passwd::make_post()
{ {
const std::wstring * plogin; const std::wstring * plogin;
@@ -317,7 +317,7 @@ const std::wstring * plogin;
} }
void Passwd::MakeGet() void Passwd::make_get()
{ {
if( cur->request->IsParam(L"resetpassword") ) if( cur->request->IsParam(L"resetpassword") )
ShowResetPasswordForm(); ShowResetPasswordForm();

View File

@@ -51,9 +51,9 @@ class Passwd : public FunctionBase
public: public:
Passwd(); Passwd();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
void MakePost(); void make_post();
bool IsPasswordCorrect(const std::wstring & pass, const std::wstring & conf_pass); bool IsPasswordCorrect(const std::wstring & pass, const std::wstring & conf_pass);
bool ChangePassword(long user_id, const std::wstring & new_password); bool ChangePassword(long user_id, const std::wstring & new_password);

View File

@@ -58,7 +58,7 @@ void Priv::set_dependency(WinixRequest * winix_request)
} }
void Priv::MakePost() void Priv::make_post()
{ {
priv_changer.SetCur(cur); priv_changer.SetCur(cur);
priv_changer.SetSystem(system); priv_changer.SetSystem(system);
@@ -67,7 +67,7 @@ void Priv::MakePost()
} }
void Priv::MakeGet() void Priv::make_get()
{ {
priv_changer.SetCur(cur); priv_changer.SetCur(cur);
priv_changer.SetSystem(system); priv_changer.SetSystem(system);

View File

@@ -51,8 +51,8 @@ class Priv : public FunctionBase
public: public:
Priv(); Priv();
void MakePost(); void make_post();
void MakeGet(); void make_get();
void set_dependency(WinixRequest * winix_request); void set_dependency(WinixRequest * winix_request);

View File

@@ -52,7 +52,7 @@ Pw::Pw()
} }
bool Pw::HasAccess() bool Pw::has_access()
{ {
return true; return true;
} }
@@ -62,12 +62,12 @@ bool Pw::HasAccess()
/* this function will be used for: adding a new user, adding a new group, deleting an existing user etc. */ /* this function will be used for: adding a new user, adding a new group, deleting an existing user etc. */
void Pw::MakePost() void Pw::make_post()
{ {
} }
void Pw::MakeGet() void Pw::make_get()
{ {
} }

View File

@@ -51,9 +51,9 @@ public:
Pw(); Pw();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
void MakeGet(); void make_get();
private: private:

View File

@@ -51,7 +51,7 @@ Reload::Reload()
} }
bool Reload::HasAccess() bool Reload::has_access()
{ {
return cur->session->puser && cur->session->puser->is_super_user; return cur->session->puser && cur->session->puser->is_super_user;
} }
@@ -70,7 +70,7 @@ void Reload::FunReloadTemplates()
void Reload::MakeGet() void Reload::make_get()
{ {
// !! temporarily only an admin has access // !! temporarily only an admin has access

View File

@@ -50,8 +50,8 @@ class Reload : public FunctionBase
public: public:
Reload(); Reload();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
private: private:

View File

@@ -98,7 +98,7 @@ return true;
parameter 'c' to rm function means removing only the content of a directory parameter 'c' to rm function means removing only the content of a directory
this parameter can be sent either by a get or a post variable this parameter can be sent either by a get or a post variable
*/ */
bool Rm::HasAccess() bool Rm::has_access()
{ {
bool res = false; bool res = false;
@@ -511,7 +511,7 @@ void Rm::RemoveDir()
void Rm::Clear() void Rm::clear()
{ {
content_item_tab.clear(); content_item_tab.clear();
files.clear(); files.clear();
@@ -532,7 +532,7 @@ void Rm::CreateJSON(bool status)
void Rm::MakePost() void Rm::make_post()
{ {
Prepare(); Prepare();
@@ -548,7 +548,7 @@ void Rm::MakePost()
RemoveDir(); RemoveDir();
} }
Clear(); clear();
if( cur->request->IsParam(L"jquery_upload") ) if( cur->request->IsParam(L"jquery_upload") )
CreateJSON(true); CreateJSON(true);

View File

@@ -50,8 +50,8 @@ class Rm : public FunctionBase
public: public:
Rm(); Rm();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
// removing the whole directory structure // removing the whole directory structure
// if remove_this_dir is false then only content of dir is removed // if remove_this_dir is false then only content of dir is removed
@@ -92,7 +92,7 @@ private:
bool HasAccessToDir(const Item & dir, bool only_content); bool HasAccessToDir(const Item & dir, bool only_content);
void Prepare(); void Prepare();
void Clear(); void clear();
bool RemoveFile(Item & item); bool RemoveFile(Item & item);
bool RemoveDirFiles(long dir_id, bool check_access); bool RemoveDirFiles(long dir_id, bool check_access);

View File

@@ -53,7 +53,7 @@ RmUser::RmUser()
} }
bool RmUser::HasAccess() bool RmUser::has_access()
{ {
return cur->session->puser && cur->session->puser->is_super_user; return cur->session->puser && cur->session->puser->is_super_user;
} }
@@ -82,7 +82,7 @@ return result;
} }
void RmUser::MakePost() void RmUser::make_post()
{ {
if( cur->session->puser ) if( cur->session->puser )
{ {
@@ -100,7 +100,7 @@ void RmUser::MakePost()
} }
void RmUser::MakeGet() void RmUser::make_get()
{ {
} }

View File

@@ -50,9 +50,9 @@ public:
RmUser(); RmUser();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
void MakePost(); void make_post();
bool RemoveUser(long user_id); bool RemoveUser(long user_id);

View File

@@ -51,13 +51,13 @@ Run::Run()
void Run::MakePost() void Run::make_post()
{ {
MakeGet(); make_get();
} }
void Run::MakeGet() void Run::make_get()
{ {
// IMPROVE ME this probably should be set for all winix functions // IMPROVE ME this probably should be set for all winix functions
cur->request->html_template = cur->request->last_item->html_template; cur->request->html_template = cur->request->last_item->html_template;

View File

@@ -53,8 +53,8 @@ public:
private: private:
void MakePost(); void make_post();
void MakeGet(); void make_get();
}; };

View File

@@ -52,7 +52,7 @@ Sort::Sort()
} }
bool Sort::HasAccess() bool Sort::has_access()
{ {
if( cur->request->is_item ) if( cur->request->is_item )
return system->HasWriteAccess(cur->request->item); return system->HasWriteAccess(cur->request->item);
@@ -139,7 +139,7 @@ void Sort::UpdateItems()
void Sort::MakePost() void Sort::make_post()
{ {
if( cur->request->is_item ) if( cur->request->is_item )
{ {
@@ -157,7 +157,7 @@ void Sort::MakePost()
} }
void Sort::MakeGet() void Sort::make_get()
{ {
if( !cur->request->is_item ) if( !cur->request->is_item )
GetDirContent(); GetDirContent();

View File

@@ -50,9 +50,9 @@ class Sort : public FunctionBase
public: public:
Sort(); Sort();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
void MakePost(); void make_post();
private: private:

View File

@@ -110,7 +110,7 @@ void Subject::EditFileSubject()
void Subject::MakePost() void Subject::make_post()
{ {
if( !SubjectCheckAccess() ) if( !SubjectCheckAccess() )
return; return;
@@ -123,7 +123,7 @@ void Subject::MakePost()
void Subject::MakeGet() void Subject::make_get()
{ {
SubjectCheckAccess(); SubjectCheckAccess();
} }

View File

@@ -50,8 +50,8 @@ class Subject : public FunctionBase
public: public:
Subject(); Subject();
void MakePost(); void make_post();
void MakeGet(); void make_get();
private: private:

View File

@@ -53,7 +53,7 @@ Template::Template()
bool Template::HasAccess() bool Template::has_access()
{ {
if( config->template_only_root_use_template_fun ) if( config->template_only_root_use_template_fun )
{ {
@@ -136,7 +136,7 @@ void Template::ChangeTemplate(Item & item)
} }
void Template::MakePost() void Template::make_post()
{ {
CreateTemplateFileName(cur->request->PostVar(L"template")); CreateTemplateFileName(cur->request->PostVar(L"template"));
ChangeTemplate(*cur->request->last_item); ChangeTemplate(*cur->request->last_item);

View File

@@ -50,8 +50,8 @@ class Template : public FunctionBase
public: public:
Template(); Template();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
private: private:

View File

@@ -49,14 +49,14 @@ TimeZone::TimeZone()
} }
bool TimeZone::HasAccess() bool TimeZone::has_access()
{ {
return cur->session->puser != 0; return cur->session->puser != 0;
} }
void TimeZone::MakePost() void TimeZone::make_post()
{ {
if( cur->session->puser ) if( cur->session->puser )
{ {
@@ -76,7 +76,7 @@ void TimeZone::MakePost()
void TimeZone::MakeGet() void TimeZone::make_get()
{ {
} }

View File

@@ -51,9 +51,9 @@ public:
TimeZone(); TimeZone();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
void MakeGet(); void make_get();
private: private:

View File

@@ -49,19 +49,19 @@ Tinymce::Tinymce()
} }
void Tinymce::Init() void Tinymce::init()
{ {
system->AddCommonFileToVar(L"winix/tinymce.js", L"tinymce.js", Header::text_javascript_utf8); system->AddCommonFileToVar(L"winix/tinymce.js", L"tinymce.js", Header::text_javascript_utf8);
} }
bool Tinymce::HasAccess() bool Tinymce::has_access()
{ {
return functions->fun_emacs.HasAccess(); return functions->fun_emacs.has_access();
} }
void Tinymce::MakeGet() void Tinymce::make_get()
{ {
cur->session->last_css.clear(); cur->session->last_css.clear();
int parcss = system->mounts.MountParCss(); int parcss = system->mounts.MountParCss();
@@ -72,9 +72,9 @@ void Tinymce::MakeGet()
void Tinymce::MakePost() void Tinymce::make_post()
{ {
functions->fun_emacs.MakePost(); functions->fun_emacs.make_post();
} }

View File

@@ -50,10 +50,10 @@ class Tinymce : public FunctionBase
public: public:
Tinymce(); Tinymce();
void Init(); void init();
bool HasAccess(); bool has_access();
void MakeGet(); void make_get();
void MakePost(); void make_post();
}; };

View File

@@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2008-2023, Tomasz Sowa * Copyright (c) 2008-2024, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -57,18 +57,18 @@ Upload::Upload()
} }
void Upload::Init() void Upload::init()
{ {
} }
void Upload::Finish() void Upload::finish()
{ {
CloseMagicLib(); close_magic_lib();
} }
bool Upload::HasAccess(const Item & item) bool Upload::has_upload_access(const Item & item)
{ {
// you can use 'upload' only in a directory // you can use 'upload' only in a directory
if( item.type != Item::dir ) if( item.type != Item::dir )
@@ -91,9 +91,9 @@ return true;
} }
bool Upload::HasAccess() bool Upload::has_access()
{ {
if( cur->request->is_item || !HasAccess(*cur->request->dir_tab.back()) ) if( cur->request->is_item || !has_upload_access(*cur->request->dir_tab.back()) )
return false; return false;
return true; return true;
@@ -102,7 +102,7 @@ return true;
bool Upload::UploadSaveStaticFile(const Item & item, const std::wstring & tmp_filename) bool Upload::upload_save_static_file(const Item & item, const std::wstring & tmp_filename)
{ {
if( !system->MakeFilePath(item, path, false, true, config->upload_dirs_chmod, config->upload_group_int) ) if( !system->MakeFilePath(item, path, false, true, config->upload_dirs_chmod, config->upload_group_int) )
{ {
@@ -131,7 +131,7 @@ bool Upload::UploadSaveStaticFile(const Item & item, const std::wstring & tmp_fi
void Upload::ResizeImage(Item & item) void Upload::resize_image(Item & item)
{ {
Image::Scale scale = system->image.GetImageScale(item.parent_id); Image::Scale scale = system->image.GetImageScale(item.parent_id);
system->image.Resize(item.id, scale.cx, scale.cy, scale.aspect_mode, scale.quality); system->image.Resize(item.id, scale.cx, scale.cy, scale.aspect_mode, scale.quality);
@@ -139,7 +139,7 @@ void Upload::ResizeImage(Item & item)
void Upload::CreateThumb(Item & item) void Upload::create_thumb(Item & item)
{ {
Image::Scale scale = system->image.GetThumbScale(item.parent_id); Image::Scale scale = system->image.GetThumbScale(item.parent_id);
system->image.CreateThumb(item.id, scale.cx, scale.cy, scale.aspect_mode, scale.quality); system->image.CreateThumb(item.id, scale.cx, scale.cy, scale.aspect_mode, scale.quality);
@@ -147,7 +147,7 @@ void Upload::CreateThumb(Item & item)
void Upload::UploadFile(Item & item, const std::wstring & tmp_filename) void Upload::upload_file(Item & item, const std::wstring & tmp_filename)
{ {
// we should add the file beforehand to get the proper item.id // we should add the file beforehand to get the proper item.id
cur->request->status = WINIX_ERR_PERMISSION_DENIED; cur->request->status = WINIX_ERR_PERMISSION_DENIED;
@@ -157,7 +157,7 @@ void Upload::UploadFile(Item & item, const std::wstring & tmp_filename)
{ {
if( system->CreateNewFile(item) ) if( system->CreateNewFile(item) )
{ {
if( UploadSaveStaticFile(item, tmp_filename) ) if( upload_save_static_file(item, tmp_filename) )
{ {
ItemModelData item_model_data; ItemModelData item_model_data;
item_model_data.prepare_unique_url = false; item_model_data.prepare_unique_url = false;
@@ -171,10 +171,10 @@ void Upload::UploadFile(Item & item, const std::wstring & tmp_filename)
if( item.item_content.file_type == WINIX_ITEM_FILETYPE_IMAGE ) if( item.item_content.file_type == WINIX_ITEM_FILETYPE_IMAGE )
{ {
if( config->image_resize ) if( config->image_resize )
ResizeImage(item); resize_image(item);
if( config->create_thumb ) if( config->create_thumb )
CreateThumb(item); create_thumb(item);
} }
if( is_jquery_upload ) if( is_jquery_upload )
@@ -191,7 +191,7 @@ void Upload::UploadFile(Item & item, const std::wstring & tmp_filename)
} }
bool Upload::FunUploadCheckAbuse() bool Upload::fun_upload_check_abuse()
{ {
if( config->use_antispam_mechanism_for_not_logged_users ) if( config->use_antispam_mechanism_for_not_logged_users )
{ {
@@ -218,7 +218,7 @@ return true;
void Upload::UploadMulti() void Upload::upload_multi()
{ {
cur->request->item.Clear(); // clearing and setting date cur->request->item.Clear(); // clearing and setting date
cur->request->item.parent_id = cur->request->dir_tab.back()->id; cur->request->item.parent_id = cur->request->dir_tab.back()->id;
@@ -238,19 +238,19 @@ void Upload::UploadMulti()
cur->request->item.item_content.file_size = i->second.file_size; cur->request->item.item_content.file_size = i->second.file_size;
functions->PrepareUrl(cur->request->item); functions->PrepareUrl(cur->request->item);
AnalizeFileType(i->second.tmp_filename, cur->request->item.item_content.file_mime_type); analize_file_type(i->second.tmp_filename, cur->request->item.item_content.file_mime_type);
UploadFile(cur->request->item, i->second.tmp_filename); upload_file(cur->request->item, i->second.tmp_filename);
i->second.tmp_filename.clear(); i->second.tmp_filename.clear();
} }
if( is_jquery_upload ) if( is_jquery_upload )
CreateJqueryUploadAnswer(); create_jquery_upload_answer();
else else
system->RedirectToLastDir(); system->RedirectToLastDir();
} }
void Upload::UploadSingle() void Upload::upload_single()
{ {
cur->request->item.Clear(); // clearing and setting date cur->request->item.Clear(); // clearing and setting date
@@ -278,22 +278,22 @@ void Upload::UploadSingle()
functions->PrepareUrl(cur->request->item); functions->PrepareUrl(cur->request->item);
} }
AnalizeFileType(post_file.tmp_filename, cur->request->item.item_content.file_mime_type); analize_file_type(post_file.tmp_filename, cur->request->item.item_content.file_mime_type);
UploadFile(cur->request->item, post_file.tmp_filename); upload_file(cur->request->item, post_file.tmp_filename);
post_file.tmp_filename.clear(); post_file.tmp_filename.clear();
if( is_jquery_upload ) if( is_jquery_upload )
CreateJqueryUploadAnswer(); create_jquery_upload_answer();
else else
if( is_ckeditor_upload ) if( is_ckeditor_upload )
CreateCkeditorUploadAnswer(); create_ckeditor_upload_answer();
else else
if( cur->request->status == WINIX_ERR_OK ) if( cur->request->status == WINIX_ERR_OK )
system->RedirectTo(cur->request->item, L"/cat"); system->RedirectTo(cur->request->item, L"/cat");
} }
void Upload::InitMagicLibIfNeeded() void Upload::init_magic_lib_if_needed()
{ {
if( !magic_cookie ) if( !magic_cookie )
{ {
@@ -313,7 +313,7 @@ void Upload::InitMagicLibIfNeeded()
} }
log << logend; log << logend;
CloseMagicLib(); close_magic_lib();
} }
} }
else else
@@ -324,7 +324,7 @@ void Upload::InitMagicLibIfNeeded()
} }
void Upload::CloseMagicLib() void Upload::close_magic_lib()
{ {
if( magic_cookie ) if( magic_cookie )
{ {
@@ -335,7 +335,7 @@ void Upload::CloseMagicLib()
} }
void Upload::AnalizeFileType(const std::wstring & file_path, std::wstring & file_type) void Upload::analize_file_type(const std::wstring & file_path, std::wstring & file_type)
{ {
file_type.clear(); file_type.clear();
@@ -375,7 +375,7 @@ void Upload::AnalizeFileType(const std::wstring & file_path, std::wstring & file
/* /*
* an answer for the 'upload' function * an answer for the 'upload' function
*/ */
void Upload::CreateJqueryUploadAnswer() void Upload::create_jquery_upload_answer()
{ {
Request & req = *cur->request; Request & req = *cur->request;
@@ -420,7 +420,7 @@ void Upload::CreateJqueryUploadAnswer()
* an answer for the ckeditor function * an answer for the ckeditor function
* https://ckeditor.com/docs/ckeditor4/latest/guide/dev_file_upload.html * https://ckeditor.com/docs/ckeditor4/latest/guide/dev_file_upload.html
*/ */
void Upload::CreateCkeditorUploadAnswer() void Upload::create_ckeditor_upload_answer()
{ {
Request & req = *cur->request; Request & req = *cur->request;
@@ -453,9 +453,9 @@ void Upload::CreateCkeditorUploadAnswer()
} }
void Upload::MakePost() void Upload::make_post()
{ {
InitMagicLibIfNeeded(); init_magic_lib_if_needed();
cur->request->item_tab.clear(); cur->request->item_tab.clear();
is_jquery_upload = cur->request->IsParam(L"jquery_upload"); is_jquery_upload = cur->request->IsParam(L"jquery_upload");
is_ckeditor_upload = cur->request->IsParam(L"ckeditor_upload"); is_ckeditor_upload = cur->request->IsParam(L"ckeditor_upload");
@@ -466,18 +466,18 @@ void Upload::MakePost()
return; return;
} }
if( !FunUploadCheckAbuse() ) if( !fun_upload_check_abuse() )
return; return;
if( cur->request->post_file_tab.size() > 1 ) if( cur->request->post_file_tab.size() > 1 )
UploadMulti(); upload_multi();
else else
UploadSingle(); upload_single();
} }
void Upload::MakeGet() void Upload::make_get()
{ {
if( cur->request->IsParam(L"jquery_upload") ) if( cur->request->IsParam(L"jquery_upload") )
{ {
@@ -492,19 +492,17 @@ void Upload::MakeGet()
raw("order by item.sort_index asc, item.url asc, item.id asc"). raw("order by item.sort_index asc, item.url asc, item.id asc").
get_vector(cur->request->item_tab); get_vector(cur->request->item_tab);
CreateJqueryUploadAnswer(); create_jquery_upload_answer();
} }
} }
void Upload::Clear() void Upload::clear()
{ {
files.clear(); files.clear();
} }
} // namespace } // namespace
} // namespace Winix } // namespace Winix

View File

@@ -5,7 +5,7 @@
*/ */
/* /*
* Copyright (c) 2010-2023, Tomasz Sowa * Copyright (c) 2010-2024, Tomasz Sowa
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without * Redistribution and use in source and binary forms, with or without
@@ -52,10 +52,10 @@ class Upload : public FunctionBase
public: public:
Upload(); Upload();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
void MakeGet(); void make_get();
void UploadFile(Item & item, const std::wstring & tmp_filename); void upload_file(Item & item, const std::wstring & tmp_filename);
private: private:
@@ -65,30 +65,29 @@ private:
magic_t magic_cookie; magic_t magic_cookie;
pt::Space files; pt::Space files;
void Init(); void init();
void Finish(); void finish();
void Clear(); void clear();
bool HasAccess(const Item & item); bool has_upload_access(const Item & item);
bool UploadSaveStaticFile(const Item & item, const std::wstring & tmp_filename); bool upload_save_static_file(const Item & item, const std::wstring & tmp_filename);
bool FunUploadCheckAbuse(); bool fun_upload_check_abuse();
void UploadMulti(); void upload_multi();
void UploadSingle(); void upload_single();
void ResizeImage(Item & item); void resize_image(Item & item);
void CreateThumb(Item & item); void create_thumb(Item & item);
void CreateJqueryUploadAnswer(); void create_jquery_upload_answer();
void CreateCkeditorUploadAnswer(); void create_ckeditor_upload_answer();
void InitMagicLibIfNeeded(); void init_magic_lib_if_needed();
void CloseMagicLib(); void close_magic_lib();
void AnalizeFileType(const std::wstring & file_path, std::wstring & file_type); void analize_file_type(const std::wstring & file_path, std::wstring & file_type);
}; };
} // namespace } // namespace
} // namespace Winix } // namespace Winix
#endif #endif

View File

@@ -51,7 +51,7 @@ Vim::Vim()
} }
void Vim::Init() void Vim::init()
{ {
// WYMeditor doesn't work on different domains by default, // WYMeditor doesn't work on different domains by default,
// solution: http://forum.wymeditor.org/forum/viewtopic.php?f=2&t=731&p=2507#p2504 // solution: http://forum.wymeditor.org/forum/viewtopic.php?f=2&t=731&p=2507#p2504
@@ -61,15 +61,15 @@ void Vim::Init()
} }
bool Vim::HasAccess() bool Vim::has_access()
{ {
return functions->fun_emacs.HasAccess(); return functions->fun_emacs.has_access();
} }
void Vim::MakePost() void Vim::make_post()
{ {
functions->fun_emacs.MakePost(); functions->fun_emacs.make_post();
} }

View File

@@ -50,9 +50,9 @@ class Vim : public FunctionBase
public: public:
Vim(); Vim();
void Init(); void init();
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
}; };

View File

@@ -50,7 +50,7 @@ Who::Who()
} }
bool Who::HasAccess() bool Who::has_access()
{ {
return cur->session->puser != 0; return cur->session->puser != 0;
} }

View File

@@ -50,7 +50,7 @@ class Who : public FunctionBase
public: public:
Who(); Who();
bool HasAccess(); bool has_access();
private: private:

View File

@@ -572,7 +572,7 @@ cm.save()
[if winix_load_winixjs] [if winix_load_winixjs]
<script src="[doc_base_url_common]/winix/winix.js"></script> <script src="[doc_base_url_common]/winix/winix.min.js"></script>
[end] [end]

View File

@@ -0,0 +1,70 @@
/*
* This file is a part of Winix
* and is distributed under the 2-Clause BSD licence.
* Author: Tomasz Sowa <t.sowa@ttmath.org>
*/
/*
* Copyright (c) 2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#include "winixezchelper.h"
namespace Winix
{
WinixEzcHelper::WinixEzcHelper()
{
}
void WinixEzcHelper::fields()
{
field(L"meta", meta);
}
void WinixEzcHelper::table()
{
table_name(L"nonexisting", L"winixezchelper");
}
void WinixEzcHelper::clear()
{
Model::clear();
}
}

View File

@@ -0,0 +1,71 @@
/*
* This file is a part of Winix
* and is distributed under the 2-Clause BSD licence.
* Author: Tomasz Sowa <t.sowa@ttmath.org>
*/
/*
* Copyright (c) 2024, Tomasz Sowa
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* 1. Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef headerfile_winix_models_helpers_winixezchelper
#define headerfile_winix_models_helpers_winixezchelper
#include "morm.h"
namespace Winix
{
class WinixEzcHelper : public morm::Model
{
public:
WinixEzcHelper();
pt::Space meta;
void clear();
protected:
void table();
void fields();
MORM_MEMBER_FIELD(WinixEzcHelper)
};
}
#endif

View File

@@ -245,10 +245,16 @@
./exportthread.o: ../../../../pikotools/src/convert/text.h ./exportthread.o: ../../../../pikotools/src/convert/text.h
./funexport.o: funexport.h ../../../../winix/winixd/functions/functionbase.h ./funexport.o: funexport.h ../../../../winix/winixd/functions/functionbase.h
./funexport.o: ../../../../winix/winixd/core/request.h ./funexport.o: ../../../../winix/winixd/core/request.h
./funexport.o: ../../../../winix/winixd/core/config.h ./funexport.o: ../../../../winix/winixd/core/winixrequest.h
./funexport.o: ../../../../pikotools/src/space/spaceparser.h ./funexport.o: ../../../../winix/winixd/core/winixsystem.h
./funexport.o: ../../../../pikotools/src/space/space.h ./funexport.o: ../../../../winix/winixd/core/system.h
./funexport.o: ../../../../pikotools/src/convert/baseparser.h ./funexport.o: ../../../../winix/winixd/core/job.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/core/winixbase.h
./funexport.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./funexport.o: ../../../../morm/src/morm_types.h ../../../../morm/src/model.h
./funexport.o: ../../../../pikotools/src/textstream/textstream.h ./funexport.o: ../../../../pikotools/src/textstream/textstream.h
./funexport.o: ../../../../pikotools/src/textstream/stream.h ./funexport.o: ../../../../pikotools/src/textstream/stream.h
./funexport.o: ../../../../pikotools/src/space/space.h ./funexport.o: ../../../../pikotools/src/space/space.h
@@ -260,17 +266,11 @@
./funexport.o: ../../../../pikotools/src/membuffer/membuffer.h ./funexport.o: ../../../../pikotools/src/membuffer/membuffer.h
./funexport.o: ../../../../pikotools/src/textstream/types.h ./funexport.o: ../../../../pikotools/src/textstream/types.h
./funexport.o: ../../../../pikotools/src/textstream/stream_private.h ./funexport.o: ../../../../pikotools/src/textstream/stream_private.h
./funexport.o: ../../../../winix/winixd/core/log.h
./funexport.o: ../../../../winix/winixd/core/logmanipulators.h
./funexport.o: ../../../../pikotools/src/log/log.h
./funexport.o: ../../../../pikotools/src/log/filelog.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../morm/src/morm.h ../../../../morm/src/version.h
./funexport.o: ../../../../morm/src/morm_types.h ../../../../morm/src/model.h
./funexport.o: ../../../../morm/src/modelconnector.h ./funexport.o: ../../../../morm/src/modelconnector.h
./funexport.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h ./funexport.o: ../../../../morm/src/clearer.h ../../../../morm/src/ft.h
./funexport.o: ../../../../morm/src/dbconnector.h ./funexport.o: ../../../../morm/src/dbconnector.h
./funexport.o: ../../../../pikotools/src/log/log.h
./funexport.o: ../../../../pikotools/src/log/filelog.h
./funexport.o: ../../../../morm/src/queryresult.h ./funexport.o: ../../../../morm/src/queryresult.h
./funexport.o: ../../../../morm/src/flatconnector.h export.h exportftp.h ./funexport.o: ../../../../morm/src/flatconnector.h export.h exportftp.h
./funexport.o: ../../../../morm/src/dbexpression.h ./funexport.o: ../../../../morm/src/dbexpression.h
@@ -296,39 +296,6 @@
./funexport.o: ../../../../morm/src/postgresqlqueryresult.h ./funexport.o: ../../../../morm/src/postgresqlqueryresult.h
./funexport.o: ../../../../morm/src/xmlconnector.h ./funexport.o: ../../../../morm/src/xmlconnector.h
./funexport.o: ../../../../morm/src/transaction.h ./funexport.o: ../../../../morm/src/transaction.h
./funexport.o: ../../../../winix/winixd/notify/notify.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/notify/notifypool.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../winix/winixd/templates/patterns.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../winix/winixd/core/winixbase.h
./funexport.o: ../../../../pikotools/src/convert/patternreplacer.h
./funexport.o: ../../../../pikotools/src/convert/strtoint.h
./funexport.o: ../../../../pikotools/src/convert/text.h
./funexport.o: ../../../../pikotools/src/convert/misc.h
./funexport.o: ../../../../winix/winixd/templates/localefilter.h
./funexport.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./funexport.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./funexport.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
./funexport.o: ../../../../ezc/src/objects.h ../../../../ezc/src/pattern.h
./funexport.o: ../../../../ezc/src/outstreams.h
./funexport.o: ../../../../ezc/src/expressionparser.h
./funexport.o: ../../../../ezc/src/models.h
./funexport.o: ../../../../ezc/src/patternparser.h
./funexport.o: ../../../../winix/winixd/templates/misc.h
./funexport.o: ../../../../winix/winixd/notify/notifythread.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/notify/templatesnotify.h
./funexport.o: ../../../../winix/winixd/core/users.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/winixrequest.h
./funexport.o: ../../../../winix/winixd/core/winixsystem.h
./funexport.o: ../../../../winix/winixd/core/system.h
./funexport.o: ../../../../winix/winixd/core/job.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/core/jobtask.h ./funexport.o: ../../../../winix/winixd/core/jobtask.h
./funexport.o: ../../../../winix/winixd/core/cur.h ./funexport.o: ../../../../winix/winixd/core/cur.h
./funexport.o: ../../../../winix/winixd/core/request.h ./funexport.o: ../../../../winix/winixd/core/request.h
@@ -340,13 +307,36 @@
./funexport.o: ../../../../winix/winixd/models/itemcontent.h ./funexport.o: ../../../../winix/winixd/models/itemcontent.h
./funexport.o: ../../../../winix/winixd/templates/htmltextstream.h ./funexport.o: ../../../../winix/winixd/templates/htmltextstream.h
./funexport.o: ../../../../winix/winixd/templates/misc.h ./funexport.o: ../../../../winix/winixd/templates/misc.h
./funexport.o: ../../../../winix/winixd/templates/localefilter.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../pikotools/src/space/spaceparser.h
./funexport.o: ../../../../pikotools/src/space/space.h
./funexport.o: ../../../../pikotools/src/convert/baseparser.h
./funexport.o: ../../../../pikotools/src/convert/patternreplacer.h
./funexport.o: ../../../../pikotools/src/convert/strtoint.h
./funexport.o: ../../../../pikotools/src/convert/text.h
./funexport.o: ../../../../pikotools/src/convert/misc.h
./funexport.o: ../../../../ezc/src/ezc.h ../../../../ezc/src/version.h
./funexport.o: ../../../../ezc/src/generator.h ../../../../ezc/src/blocks.h
./funexport.o: ../../../../ezc/src/cache.h ../../../../ezc/src/functions.h
./funexport.o: ../../../../ezc/src/objects.h ../../../../ezc/src/pattern.h
./funexport.o: ../../../../ezc/src/outstreams.h
./funexport.o: ../../../../ezc/src/expressionparser.h
./funexport.o: ../../../../ezc/src/models.h
./funexport.o: ../../../../ezc/src/patternparser.h
./funexport.o: ../../../../winix/winixd/templates/htmltextstream.h ./funexport.o: ../../../../winix/winixd/templates/htmltextstream.h
./funexport.o: ../../../../winix/winixd/core/error.h ./funexport.o: ../../../../winix/winixd/core/error.h
./funexport.o: ../../../../winix/winixd/core/config.h ./funexport.o: ../../../../winix/winixd/core/config.h
./funexport.o: ../../../../winix/winixd/models/winixmodel.h ./funexport.o: ../../../../winix/winixd/models/winixmodel.h
./funexport.o: ../../../../winix/winixd/core/header.h ./funexport.o: ../../../../winix/winixd/core/header.h
./funexport.o: ../../../../winix/winixd/core/log.h
./funexport.o: ../../../../winix/winixd/core/logmanipulators.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/synchro.h
./funexport.o: ../../../../winix/winixd/core/compress.h ./funexport.o: ../../../../winix/winixd/core/compress.h
./funexport.o: ../../../../winix/winixd/core/winixbase.h ./funexport.o: ../../../../winix/winixd/core/winixbase.h
./funexport.o: ../../../../winix/winixd/core/config.h
./funexport.o: ../../../../winix/winixd/core/filelog.h
./funexport.o: ../../../../winix/winixd/core/lock.h ./funexport.o: ../../../../winix/winixd/core/lock.h
./funexport.o: ../../../../winix/winixd/core/plugin.h ./funexport.o: ../../../../winix/winixd/core/plugin.h
./funexport.o: ../../../../winix/winixd/core/pluginmsg.h ./funexport.o: ../../../../winix/winixd/core/pluginmsg.h
@@ -360,6 +350,7 @@
./funexport.o: ../../../../winix/winixd/core/ipban.h ./funexport.o: ../../../../winix/winixd/core/ipban.h
./funexport.o: ../../../../winix/winixd/core/loadavg.h ./funexport.o: ../../../../winix/winixd/core/loadavg.h
./funexport.o: ../../../../winix/winixd/requestjobs/requestjobbase.h ./funexport.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./funexport.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funexport.o: ../../../../winix/winixd/core/dirs.h ./funexport.o: ../../../../winix/winixd/core/dirs.h
./funexport.o: ../../../../winix/winixd/core/dircontainer.h ./funexport.o: ../../../../winix/winixd/core/dircontainer.h
./funexport.o: ../../../../winix/winixd/core/crypt.h ./funexport.o: ../../../../winix/winixd/core/crypt.h
@@ -372,6 +363,15 @@
./funexport.o: ../../../../winix/winixd/core/image.h ./funexport.o: ../../../../winix/winixd/core/image.h
./funexport.o: ../../../../winix/winixd/core/threadmanager.h ./funexport.o: ../../../../winix/winixd/core/threadmanager.h
./funexport.o: ../../../../winix/winixd/models/winixmodelconnector.h ./funexport.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funexport.o: ../../../../winix/winixd/notify/notify.h
./funexport.o: ../../../../winix/winixd/notify/notifypool.h
./funexport.o: ../../../../winix/winixd/templates/locale.h
./funexport.o: ../../../../winix/winixd/templates/patterns.h
./funexport.o: ../../../../winix/winixd/templates/misc.h
./funexport.o: ../../../../winix/winixd/notify/notifythread.h
./funexport.o: ../../../../winix/winixd/core/basethread.h
./funexport.o: ../../../../winix/winixd/notify/templatesnotify.h
./funexport.o: ../../../../winix/winixd/core/users.h
./funexport.o: ../../../../winix/winixd/core/timezones.h ./funexport.o: ../../../../winix/winixd/core/timezones.h
./funexport.o: ../../../../winix/winixd/core/timezone.h ./funexport.o: ../../../../winix/winixd/core/timezone.h
./funexport.o: ../../../../winix/winixd/core/cur.h ./funexport.o: ../../../../winix/winixd/core/cur.h
@@ -380,6 +380,7 @@
./funexport.o: ../../../../winix/winixd/core/ipbancontainer.h ./funexport.o: ../../../../winix/winixd/core/ipbancontainer.h
./funexport.o: ../../../../winix/winixd/core/sessionidmanager.h ./funexport.o: ../../../../winix/winixd/core/sessionidmanager.h
./funexport.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h ./funexport.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./funexport.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./funexport.o: exportinfo.h edb.h exportdir.h ./funexport.o: exportinfo.h edb.h exportdir.h
./funexport.o: ../../../../winix/winixd/core/dirs.h message.h exportthread.h ./funexport.o: ../../../../winix/winixd/core/dirs.h message.h exportthread.h
./init.o: ../../../../winix/winixd/core/log.h ./init.o: ../../../../winix/winixd/core/log.h
@@ -516,6 +517,7 @@
./init.o: ../../../../winix/winixd/core/ipbancontainer.h ./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h ./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h ./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./init.o: ../../../../winix/winixd/functions/functions.h ./init.o: ../../../../winix/winixd/functions/functions.h
./init.o: ../../../../winix/winixd/functions/functionbase.h ./init.o: ../../../../winix/winixd/functions/functionbase.h
./init.o: ../../../../winix/winixd/functions/functionparser.h ./init.o: ../../../../winix/winixd/functions/functionparser.h

View File

@@ -56,7 +56,7 @@ void FunExport::SetExportInfo(ExportInfo * pexport_info)
} }
bool FunExport::HasAccess() bool FunExport::has_access()
{ {
// temporarily only a logged user can use this function // temporarily only a logged user can use this function
// !! IMPROVEME we have to change to only some users can use this function in a specified directory // !! IMPROVEME we have to change to only some users can use this function in a specified directory
@@ -138,7 +138,7 @@ void FunExport::Export()
void FunExport::MakePost() void FunExport::make_post()
{ {
Export(); Export();
} }

View File

@@ -53,9 +53,9 @@ public:
FunExport(); FunExport();
void SetExportInfo(ExportInfo * pexport_info); void SetExportInfo(ExportInfo * pexport_info);
bool HasAccess(); bool has_access();
void MakePost(); void make_post();
void MakeGet(); void MakeGet();

View File

@@ -94,8 +94,33 @@
./gallery.o: ../../../../winix/winixd/core/mounts.h ./gallery.o: ../../../../winix/winixd/core/mounts.h
./gallery.o: ../../../../winix/winixd/core/mountparser.h ./gallery.o: ../../../../winix/winixd/core/mountparser.h
./gallery.o: ../../../../winix/winixd/core/jobtask.h ./gallery.o: ../../../../winix/winixd/core/jobtask.h
./gallery.o: ../../../../winix/winixd/notify/notify.h ./gallery.o: ../../../../winix/winixd/core/winixrequest.h
./gallery.o: ../../../../winix/winixd/core/winixsystem.h
./gallery.o: ../../../../winix/winixd/core/system.h
./gallery.o: ../../../../winix/winixd/core/job.h
./gallery.o: ../../../../winix/winixd/core/basethread.h
./gallery.o: ../../../../winix/winixd/core/cur.h
./gallery.o: ../../../../winix/winixd/core/request.h
./gallery.o: ../../../../winix/winixd/core/session.h
./gallery.o: ../../../../winix/winixd/models/user.h
./gallery.o: ../../../../winix/winixd/core/rebus.h
./gallery.o: ../../../../winix/winixd/core/ipban.h
./gallery.o: ../../../../winix/winixd/core/loadavg.h
./gallery.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./gallery.o: ../../../../winix/winixd/core/winixmodeldeprecated.h ./gallery.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./gallery.o: ../../../../winix/winixd/core/dirs.h
./gallery.o: ../../../../winix/winixd/core/dircontainer.h
./gallery.o: ../../../../winix/winixd/core/crypt.h
./gallery.o: ../../../../winix/winixd/core/run.h
./gallery.o: ../../../../winix/winixd/core/users.h
./gallery.o: ../../../../winix/winixd/core/ugcontainer.h
./gallery.o: ../../../../winix/winixd/core/lastcontainer.h
./gallery.o: ../../../../winix/winixd/core/groups.h
./gallery.o: ../../../../winix/winixd/models/group.h
./gallery.o: ../../../../winix/winixd/core/image.h
./gallery.o: ../../../../winix/winixd/core/threadmanager.h
./gallery.o: ../../../../winix/winixd/models/winixmodelconnector.h
./gallery.o: ../../../../winix/winixd/notify/notify.h
./gallery.o: ../../../../winix/winixd/notify/notifypool.h ./gallery.o: ../../../../winix/winixd/notify/notifypool.h
./gallery.o: ../../../../winix/winixd/templates/locale.h ./gallery.o: ../../../../winix/winixd/templates/locale.h
./gallery.o: ../../../../winix/winixd/templates/patterns.h ./gallery.o: ../../../../winix/winixd/templates/patterns.h
@@ -104,31 +129,6 @@
./gallery.o: ../../../../winix/winixd/core/basethread.h ./gallery.o: ../../../../winix/winixd/core/basethread.h
./gallery.o: ../../../../winix/winixd/notify/templatesnotify.h ./gallery.o: ../../../../winix/winixd/notify/templatesnotify.h
./gallery.o: ../../../../winix/winixd/core/users.h ./gallery.o: ../../../../winix/winixd/core/users.h
./gallery.o: ../../../../winix/winixd/models/user.h
./gallery.o: ../../../../winix/winixd/core/ugcontainer.h
./gallery.o: ../../../../winix/winixd/core/lastcontainer.h
./gallery.o: ../../../../winix/winixd/core/cur.h
./gallery.o: ../../../../winix/winixd/core/request.h
./gallery.o: ../../../../winix/winixd/core/session.h
./gallery.o: ../../../../winix/winixd/core/rebus.h
./gallery.o: ../../../../winix/winixd/core/ipban.h
./gallery.o: ../../../../winix/winixd/core/winixrequest.h
./gallery.o: ../../../../winix/winixd/core/winixsystem.h
./gallery.o: ../../../../winix/winixd/core/system.h
./gallery.o: ../../../../winix/winixd/core/job.h
./gallery.o: ../../../../winix/winixd/core/basethread.h
./gallery.o: ../../../../winix/winixd/core/loadavg.h
./gallery.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./gallery.o: ../../../../winix/winixd/core/dirs.h
./gallery.o: ../../../../winix/winixd/core/dircontainer.h
./gallery.o: ../../../../winix/winixd/core/crypt.h
./gallery.o: ../../../../winix/winixd/core/run.h
./gallery.o: ../../../../winix/winixd/core/users.h
./gallery.o: ../../../../winix/winixd/core/groups.h
./gallery.o: ../../../../winix/winixd/models/group.h
./gallery.o: ../../../../winix/winixd/core/image.h
./gallery.o: ../../../../winix/winixd/core/threadmanager.h
./gallery.o: ../../../../winix/winixd/models/winixmodelconnector.h
./gallery.o: ../../../../winix/winixd/core/timezones.h ./gallery.o: ../../../../winix/winixd/core/timezones.h
./gallery.o: ../../../../winix/winixd/core/timezone.h ./gallery.o: ../../../../winix/winixd/core/timezone.h
./gallery.o: ../../../../winix/winixd/core/cur.h ./gallery.o: ../../../../winix/winixd/core/cur.h
@@ -137,6 +137,7 @@
./gallery.o: ../../../../winix/winixd/core/ipbancontainer.h ./gallery.o: ../../../../winix/winixd/core/ipbancontainer.h
./gallery.o: ../../../../winix/winixd/core/sessionidmanager.h ./gallery.o: ../../../../winix/winixd/core/sessionidmanager.h
./gallery.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h ./gallery.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./gallery.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./gallery.o: galleryinfo.h ./gallery.o: galleryinfo.h
./galleryinfo.o: galleryinfo.h ../../../../winix/winixd/models/item.h ./galleryinfo.o: galleryinfo.h ../../../../winix/winixd/models/item.h
./galleryinfo.o: ../../../../winix/winixd/models/winixmodel.h ./galleryinfo.o: ../../../../winix/winixd/models/winixmodel.h
@@ -305,8 +306,33 @@
./init.o: ../../../../winix/winixd/core/mounts.h ./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/core/mountparser.h ./init.o: ../../../../winix/winixd/core/mountparser.h
./init.o: ../../../../winix/winixd/core/jobtask.h ./init.o: ../../../../winix/winixd/core/jobtask.h
./init.o: ../../../../winix/winixd/notify/notify.h ./init.o: ../../../../winix/winixd/core/winixrequest.h
./init.o: ../../../../winix/winixd/core/winixsystem.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/job.h
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/loadavg.h
./init.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h ./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./init.o: ../../../../winix/winixd/core/dirs.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/crypt.h
./init.o: ../../../../winix/winixd/core/run.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/notify/notify.h
./init.o: ../../../../winix/winixd/notify/notifypool.h ./init.o: ../../../../winix/winixd/notify/notifypool.h
./init.o: ../../../../winix/winixd/templates/locale.h ./init.o: ../../../../winix/winixd/templates/locale.h
./init.o: ../../../../winix/winixd/templates/patterns.h ./init.o: ../../../../winix/winixd/templates/patterns.h
@@ -315,31 +341,6 @@
./init.o: ../../../../winix/winixd/core/basethread.h ./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/notify/templatesnotify.h ./init.o: ../../../../winix/winixd/notify/templatesnotify.h
./init.o: ../../../../winix/winixd/core/users.h ./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/winixrequest.h
./init.o: ../../../../winix/winixd/core/winixsystem.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/job.h
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/core/loadavg.h
./init.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./init.o: ../../../../winix/winixd/core/dirs.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/crypt.h
./init.o: ../../../../winix/winixd/core/run.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/core/timezones.h ./init.o: ../../../../winix/winixd/core/timezones.h
./init.o: ../../../../winix/winixd/core/timezone.h ./init.o: ../../../../winix/winixd/core/timezone.h
./init.o: ../../../../winix/winixd/core/cur.h ./init.o: ../../../../winix/winixd/core/cur.h
@@ -348,6 +349,7 @@
./init.o: ../../../../winix/winixd/core/ipbancontainer.h ./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h ./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h ./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./init.o: galleryinfo.h ../../../../winix/winixd/core/plugin.h ./init.o: galleryinfo.h ../../../../winix/winixd/core/plugin.h
./init.o: ../../../../winix/winixd/functions/functions.h ./init.o: ../../../../winix/winixd/functions/functions.h
./init.o: ../../../../winix/winixd/functions/functionbase.h ./init.o: ../../../../winix/winixd/functions/functionbase.h
@@ -498,8 +500,33 @@
./templates.o: ../../../../winix/winixd/core/mounts.h ./templates.o: ../../../../winix/winixd/core/mounts.h
./templates.o: ../../../../winix/winixd/core/mountparser.h ./templates.o: ../../../../winix/winixd/core/mountparser.h
./templates.o: ../../../../winix/winixd/core/jobtask.h ./templates.o: ../../../../winix/winixd/core/jobtask.h
./templates.o: ../../../../winix/winixd/notify/notify.h ./templates.o: ../../../../winix/winixd/core/winixrequest.h
./templates.o: ../../../../winix/winixd/core/winixsystem.h
./templates.o: ../../../../winix/winixd/core/system.h
./templates.o: ../../../../winix/winixd/core/job.h
./templates.o: ../../../../winix/winixd/core/basethread.h
./templates.o: ../../../../winix/winixd/core/cur.h
./templates.o: ../../../../winix/winixd/core/request.h
./templates.o: ../../../../winix/winixd/core/session.h
./templates.o: ../../../../winix/winixd/models/user.h
./templates.o: ../../../../winix/winixd/core/rebus.h
./templates.o: ../../../../winix/winixd/core/ipban.h
./templates.o: ../../../../winix/winixd/core/loadavg.h
./templates.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h ./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./templates.o: ../../../../winix/winixd/core/dirs.h
./templates.o: ../../../../winix/winixd/core/dircontainer.h
./templates.o: ../../../../winix/winixd/core/crypt.h
./templates.o: ../../../../winix/winixd/core/run.h
./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/lastcontainer.h
./templates.o: ../../../../winix/winixd/core/groups.h
./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/image.h
./templates.o: ../../../../winix/winixd/core/threadmanager.h
./templates.o: ../../../../winix/winixd/models/winixmodelconnector.h
./templates.o: ../../../../winix/winixd/notify/notify.h
./templates.o: ../../../../winix/winixd/notify/notifypool.h ./templates.o: ../../../../winix/winixd/notify/notifypool.h
./templates.o: ../../../../winix/winixd/templates/locale.h ./templates.o: ../../../../winix/winixd/templates/locale.h
./templates.o: ../../../../winix/winixd/templates/patterns.h ./templates.o: ../../../../winix/winixd/templates/patterns.h
@@ -508,31 +535,6 @@
./templates.o: ../../../../winix/winixd/core/basethread.h ./templates.o: ../../../../winix/winixd/core/basethread.h
./templates.o: ../../../../winix/winixd/notify/templatesnotify.h ./templates.o: ../../../../winix/winixd/notify/templatesnotify.h
./templates.o: ../../../../winix/winixd/core/users.h ./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/models/user.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/lastcontainer.h
./templates.o: ../../../../winix/winixd/core/cur.h
./templates.o: ../../../../winix/winixd/core/request.h
./templates.o: ../../../../winix/winixd/core/session.h
./templates.o: ../../../../winix/winixd/core/rebus.h
./templates.o: ../../../../winix/winixd/core/ipban.h
./templates.o: ../../../../winix/winixd/core/winixrequest.h
./templates.o: ../../../../winix/winixd/core/winixsystem.h
./templates.o: ../../../../winix/winixd/core/system.h
./templates.o: ../../../../winix/winixd/core/job.h
./templates.o: ../../../../winix/winixd/core/basethread.h
./templates.o: ../../../../winix/winixd/core/loadavg.h
./templates.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./templates.o: ../../../../winix/winixd/core/dirs.h
./templates.o: ../../../../winix/winixd/core/dircontainer.h
./templates.o: ../../../../winix/winixd/core/crypt.h
./templates.o: ../../../../winix/winixd/core/run.h
./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/core/groups.h
./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/image.h
./templates.o: ../../../../winix/winixd/core/threadmanager.h
./templates.o: ../../../../winix/winixd/models/winixmodelconnector.h
./templates.o: ../../../../winix/winixd/core/timezones.h ./templates.o: ../../../../winix/winixd/core/timezones.h
./templates.o: ../../../../winix/winixd/core/timezone.h ./templates.o: ../../../../winix/winixd/core/timezone.h
./templates.o: ../../../../winix/winixd/core/cur.h ./templates.o: ../../../../winix/winixd/core/cur.h
@@ -541,6 +543,7 @@
./templates.o: ../../../../winix/winixd/core/ipbancontainer.h ./templates.o: ../../../../winix/winixd/core/ipbancontainer.h
./templates.o: ../../../../winix/winixd/core/sessionidmanager.h ./templates.o: ../../../../winix/winixd/core/sessionidmanager.h
./templates.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h ./templates.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./templates.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./templates.o: galleryinfo.h ../../../../winix/winixd/core/misc.h ./templates.o: galleryinfo.h ../../../../winix/winixd/core/misc.h
./templates.o: ../../../../winix/winixd/core/winix_const.h ./templates.o: ../../../../winix/winixd/core/winix_const.h
./templates.o: ../../../../pikotools/src/convert/convert.h ./templates.o: ../../../../pikotools/src/convert/convert.h

View File

@@ -55,7 +55,7 @@ void Gallery::SetGalleryInfo(GalleryInfo * pinfo)
bool Gallery::HasAccess() bool Gallery::has_access()
{ {
return true; return true;

View File

@@ -51,7 +51,7 @@ class Gallery : public FunctionBase
public: public:
Gallery(); Gallery();
bool HasAccess(); bool has_access();
void MakeGet(); void MakeGet();
void SetGalleryInfo(GalleryInfo * pinfo); void SetGalleryInfo(GalleryInfo * pinfo);

View File

@@ -911,11 +911,13 @@
./init.o: ../../../../winix/winixd/functions/functionbase.h ./init.o: ../../../../winix/winixd/functions/functionbase.h
# ../../../../winix/winixd/functions/functionbase.h includes: # ../../../../winix/winixd/functions/functionbase.h includes:
# core/request.h # core/request.h
# core/config.h
# core/synchro.h
# notify/notify.h
# core/winixrequest.h # core/winixrequest.h
# models/helpers/winixezchelper.h
# models/item.h # models/item.h
# notify/notify.h
./init.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
# ../../../../winix/winixd/models/helpers/winixezchelper.h includes:
# morm.h
./init.o: ../../../../winix/winixd/functions/functionparser.h ./init.o: ../../../../winix/winixd/functions/functionparser.h
# ../../../../winix/winixd/functions/functionparser.h includes: # ../../../../winix/winixd/functions/functionparser.h includes:
# core/winixmodeldeprecated.h # core/winixmodeldeprecated.h

View File

@@ -101,8 +101,33 @@
./funregistermail.o: ../../../../winix/winixd/core/mounts.h ./funregistermail.o: ../../../../winix/winixd/core/mounts.h
./funregistermail.o: ../../../../winix/winixd/core/mountparser.h ./funregistermail.o: ../../../../winix/winixd/core/mountparser.h
./funregistermail.o: ../../../../winix/winixd/core/jobtask.h ./funregistermail.o: ../../../../winix/winixd/core/jobtask.h
./funregistermail.o: ../../../../winix/winixd/notify/notify.h ./funregistermail.o: ../../../../winix/winixd/core/winixrequest.h
./funregistermail.o: ../../../../winix/winixd/core/winixsystem.h
./funregistermail.o: ../../../../winix/winixd/core/system.h
./funregistermail.o: ../../../../winix/winixd/core/job.h
./funregistermail.o: ../../../../winix/winixd/core/basethread.h
./funregistermail.o: ../../../../winix/winixd/core/cur.h
./funregistermail.o: ../../../../winix/winixd/core/request.h
./funregistermail.o: ../../../../winix/winixd/core/session.h
./funregistermail.o: ../../../../winix/winixd/models/user.h
./funregistermail.o: ../../../../winix/winixd/core/rebus.h
./funregistermail.o: ../../../../winix/winixd/core/ipban.h
./funregistermail.o: ../../../../winix/winixd/core/loadavg.h
./funregistermail.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./funregistermail.o: ../../../../winix/winixd/core/winixmodeldeprecated.h ./funregistermail.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funregistermail.o: ../../../../winix/winixd/core/dirs.h
./funregistermail.o: ../../../../winix/winixd/core/dircontainer.h
./funregistermail.o: ../../../../winix/winixd/core/crypt.h
./funregistermail.o: ../../../../winix/winixd/core/run.h
./funregistermail.o: ../../../../winix/winixd/core/users.h
./funregistermail.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail.o: ../../../../winix/winixd/core/lastcontainer.h
./funregistermail.o: ../../../../winix/winixd/core/groups.h
./funregistermail.o: ../../../../winix/winixd/models/group.h
./funregistermail.o: ../../../../winix/winixd/core/image.h
./funregistermail.o: ../../../../winix/winixd/core/threadmanager.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail.o: ../../../../winix/winixd/notify/notify.h
./funregistermail.o: ../../../../winix/winixd/notify/notifypool.h ./funregistermail.o: ../../../../winix/winixd/notify/notifypool.h
./funregistermail.o: ../../../../winix/winixd/templates/locale.h ./funregistermail.o: ../../../../winix/winixd/templates/locale.h
./funregistermail.o: ../../../../winix/winixd/templates/patterns.h ./funregistermail.o: ../../../../winix/winixd/templates/patterns.h
@@ -111,31 +136,6 @@
./funregistermail.o: ../../../../winix/winixd/core/basethread.h ./funregistermail.o: ../../../../winix/winixd/core/basethread.h
./funregistermail.o: ../../../../winix/winixd/notify/templatesnotify.h ./funregistermail.o: ../../../../winix/winixd/notify/templatesnotify.h
./funregistermail.o: ../../../../winix/winixd/core/users.h ./funregistermail.o: ../../../../winix/winixd/core/users.h
./funregistermail.o: ../../../../winix/winixd/models/user.h
./funregistermail.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail.o: ../../../../winix/winixd/core/lastcontainer.h
./funregistermail.o: ../../../../winix/winixd/core/cur.h
./funregistermail.o: ../../../../winix/winixd/core/request.h
./funregistermail.o: ../../../../winix/winixd/core/session.h
./funregistermail.o: ../../../../winix/winixd/core/rebus.h
./funregistermail.o: ../../../../winix/winixd/core/ipban.h
./funregistermail.o: ../../../../winix/winixd/core/winixrequest.h
./funregistermail.o: ../../../../winix/winixd/core/winixsystem.h
./funregistermail.o: ../../../../winix/winixd/core/system.h
./funregistermail.o: ../../../../winix/winixd/core/job.h
./funregistermail.o: ../../../../winix/winixd/core/basethread.h
./funregistermail.o: ../../../../winix/winixd/core/loadavg.h
./funregistermail.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./funregistermail.o: ../../../../winix/winixd/core/dirs.h
./funregistermail.o: ../../../../winix/winixd/core/dircontainer.h
./funregistermail.o: ../../../../winix/winixd/core/crypt.h
./funregistermail.o: ../../../../winix/winixd/core/run.h
./funregistermail.o: ../../../../winix/winixd/core/users.h
./funregistermail.o: ../../../../winix/winixd/core/groups.h
./funregistermail.o: ../../../../winix/winixd/models/group.h
./funregistermail.o: ../../../../winix/winixd/core/image.h
./funregistermail.o: ../../../../winix/winixd/core/threadmanager.h
./funregistermail.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail.o: ../../../../winix/winixd/core/timezones.h ./funregistermail.o: ../../../../winix/winixd/core/timezones.h
./funregistermail.o: ../../../../winix/winixd/core/timezone.h ./funregistermail.o: ../../../../winix/winixd/core/timezone.h
./funregistermail.o: ../../../../winix/winixd/core/cur.h ./funregistermail.o: ../../../../winix/winixd/core/cur.h
@@ -144,6 +144,7 @@
./funregistermail.o: ../../../../winix/winixd/core/ipbancontainer.h ./funregistermail.o: ../../../../winix/winixd/core/ipbancontainer.h
./funregistermail.o: ../../../../winix/winixd/core/sessionidmanager.h ./funregistermail.o: ../../../../winix/winixd/core/sessionidmanager.h
./funregistermail.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h ./funregistermail.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./funregistermail.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./funregistermail.o: registermail_info.h registermail.h mdb.h ./funregistermail.o: registermail_info.h registermail.h mdb.h
./funregistermail.o: ../../../../winix/winixd/core/misc.h ./funregistermail.o: ../../../../winix/winixd/core/misc.h
./funregistermail.o: ../../../../winix/winixd/core/winix_const.h ./funregistermail.o: ../../../../winix/winixd/core/winix_const.h
@@ -256,8 +257,33 @@
./funregistermail_showusers.o: ../../../../winix/winixd/core/mounts.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/mounts.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/mountparser.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/mountparser.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/jobtask.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/jobtask.h
./funregistermail_showusers.o: ../../../../winix/winixd/notify/notify.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/winixrequest.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixsystem.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/system.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/job.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/basethread.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/cur.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/request.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/session.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/user.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/rebus.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/ipban.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/loadavg.h
./funregistermail_showusers.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixmodeldeprecated.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/dirs.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/dircontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/crypt.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/run.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/users.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/lastcontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/groups.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/group.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/image.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/threadmanager.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail_showusers.o: ../../../../winix/winixd/notify/notify.h
./funregistermail_showusers.o: ../../../../winix/winixd/notify/notifypool.h ./funregistermail_showusers.o: ../../../../winix/winixd/notify/notifypool.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/locale.h ./funregistermail_showusers.o: ../../../../winix/winixd/templates/locale.h
./funregistermail_showusers.o: ../../../../winix/winixd/templates/patterns.h ./funregistermail_showusers.o: ../../../../winix/winixd/templates/patterns.h
@@ -266,31 +292,6 @@
./funregistermail_showusers.o: ../../../../winix/winixd/core/basethread.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/basethread.h
./funregistermail_showusers.o: ../../../../winix/winixd/notify/templatesnotify.h ./funregistermail_showusers.o: ../../../../winix/winixd/notify/templatesnotify.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/users.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/users.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/user.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/ugcontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/lastcontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/cur.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/request.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/session.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/rebus.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/ipban.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixrequest.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/winixsystem.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/system.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/job.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/basethread.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/loadavg.h
./funregistermail_showusers.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/dirs.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/dircontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/crypt.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/run.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/users.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/groups.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/group.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/image.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/threadmanager.h
./funregistermail_showusers.o: ../../../../winix/winixd/models/winixmodelconnector.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/timezones.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/timezones.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/timezone.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/timezone.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/cur.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/cur.h
@@ -299,8 +300,9 @@
./funregistermail_showusers.o: ../../../../winix/winixd/core/ipbancontainer.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/ipbancontainer.h
./funregistermail_showusers.o: ../../../../winix/winixd/core/sessionidmanager.h ./funregistermail_showusers.o: ../../../../winix/winixd/core/sessionidmanager.h
./funregistermail_showusers.o: ../../../../tito/src/base64.h ./funregistermail_showusers.o: ../../../../tito/src/base64.h
./funregistermail_showusers.o: ../../../../tito/src/aes.h registermail_info.h ./funregistermail_showusers.o: ../../../../tito/src/aes.h
./funregistermail_showusers.o: registermail.h mdb.h ./funregistermail_showusers.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./funregistermail_showusers.o: registermail_info.h registermail.h mdb.h
./init.o: ../../../../winix/winixd/core/log.h ./init.o: ../../../../winix/winixd/core/log.h
./init.o: ../../../../winix/winixd/core/logmanipulators.h ./init.o: ../../../../winix/winixd/core/logmanipulators.h
./init.o: ../../../../pikotools/src/log/log.h ./init.o: ../../../../pikotools/src/log/log.h
@@ -397,8 +399,33 @@
./init.o: ../../../../winix/winixd/core/mounts.h ./init.o: ../../../../winix/winixd/core/mounts.h
./init.o: ../../../../winix/winixd/core/mountparser.h ./init.o: ../../../../winix/winixd/core/mountparser.h
./init.o: ../../../../winix/winixd/core/jobtask.h ./init.o: ../../../../winix/winixd/core/jobtask.h
./init.o: ../../../../winix/winixd/notify/notify.h ./init.o: ../../../../winix/winixd/core/winixrequest.h
./init.o: ../../../../winix/winixd/core/winixsystem.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/job.h
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/loadavg.h
./init.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h ./init.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./init.o: ../../../../winix/winixd/core/dirs.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/crypt.h
./init.o: ../../../../winix/winixd/core/run.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/notify/notify.h
./init.o: ../../../../winix/winixd/notify/notifypool.h ./init.o: ../../../../winix/winixd/notify/notifypool.h
./init.o: ../../../../winix/winixd/templates/locale.h ./init.o: ../../../../winix/winixd/templates/locale.h
./init.o: ../../../../winix/winixd/templates/patterns.h ./init.o: ../../../../winix/winixd/templates/patterns.h
@@ -407,31 +434,6 @@
./init.o: ../../../../winix/winixd/core/basethread.h ./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/notify/templatesnotify.h ./init.o: ../../../../winix/winixd/notify/templatesnotify.h
./init.o: ../../../../winix/winixd/core/users.h ./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/models/user.h
./init.o: ../../../../winix/winixd/core/ugcontainer.h
./init.o: ../../../../winix/winixd/core/lastcontainer.h
./init.o: ../../../../winix/winixd/core/cur.h
./init.o: ../../../../winix/winixd/core/request.h
./init.o: ../../../../winix/winixd/core/session.h
./init.o: ../../../../winix/winixd/core/rebus.h
./init.o: ../../../../winix/winixd/core/ipban.h
./init.o: ../../../../winix/winixd/core/winixrequest.h
./init.o: ../../../../winix/winixd/core/winixsystem.h
./init.o: ../../../../winix/winixd/core/system.h
./init.o: ../../../../winix/winixd/core/job.h
./init.o: ../../../../winix/winixd/core/basethread.h
./init.o: ../../../../winix/winixd/core/loadavg.h
./init.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./init.o: ../../../../winix/winixd/core/dirs.h
./init.o: ../../../../winix/winixd/core/dircontainer.h
./init.o: ../../../../winix/winixd/core/crypt.h
./init.o: ../../../../winix/winixd/core/run.h
./init.o: ../../../../winix/winixd/core/users.h
./init.o: ../../../../winix/winixd/core/groups.h
./init.o: ../../../../winix/winixd/models/group.h
./init.o: ../../../../winix/winixd/core/image.h
./init.o: ../../../../winix/winixd/core/threadmanager.h
./init.o: ../../../../winix/winixd/models/winixmodelconnector.h
./init.o: ../../../../winix/winixd/core/timezones.h ./init.o: ../../../../winix/winixd/core/timezones.h
./init.o: ../../../../winix/winixd/core/timezone.h ./init.o: ../../../../winix/winixd/core/timezone.h
./init.o: ../../../../winix/winixd/core/cur.h ./init.o: ../../../../winix/winixd/core/cur.h
@@ -440,6 +442,7 @@
./init.o: ../../../../winix/winixd/core/ipbancontainer.h ./init.o: ../../../../winix/winixd/core/ipbancontainer.h
./init.o: ../../../../winix/winixd/core/sessionidmanager.h ./init.o: ../../../../winix/winixd/core/sessionidmanager.h
./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h ./init.o: ../../../../tito/src/base64.h ../../../../tito/src/aes.h
./init.o: ../../../../winix/winixd/models/helpers/winixezchelper.h
./init.o: registermail_info.h funregistermail_showusers.h ./init.o: registermail_info.h funregistermail_showusers.h
./init.o: ../../../../winix/winixd/functions/functions.h ./init.o: ../../../../winix/winixd/functions/functions.h
./init.o: ../../../../winix/winixd/functions/functionbase.h ./init.o: ../../../../winix/winixd/functions/functionbase.h
@@ -660,6 +663,7 @@
./templates.o: ../../../../winix/winixd/core/system.h ./templates.o: ../../../../winix/winixd/core/system.h
./templates.o: ../../../../winix/winixd/core/job.h ./templates.o: ../../../../winix/winixd/core/job.h
./templates.o: ../../../../winix/winixd/core/basethread.h ./templates.o: ../../../../winix/winixd/core/basethread.h
./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./templates.o: ../../../../winix/winixd/core/jobtask.h ./templates.o: ../../../../winix/winixd/core/jobtask.h
./templates.o: ../../../../winix/winixd/core/cur.h ./templates.o: ../../../../winix/winixd/core/cur.h
./templates.o: ../../../../winix/winixd/core/request.h ./templates.o: ../../../../winix/winixd/core/request.h
@@ -674,7 +678,6 @@
./templates.o: ../../../../winix/winixd/core/loadavg.h ./templates.o: ../../../../winix/winixd/core/loadavg.h
./templates.o: ../../../../winix/winixd/core/mounts.h ./templates.o: ../../../../winix/winixd/core/mounts.h
./templates.o: ../../../../winix/winixd/core/mountparser.h ./templates.o: ../../../../winix/winixd/core/mountparser.h
./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./templates.o: ../../../../winix/winixd/requestjobs/requestjobbase.h ./templates.o: ../../../../winix/winixd/requestjobs/requestjobbase.h
./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h ./templates.o: ../../../../winix/winixd/core/winixmodeldeprecated.h
./templates.o: ../../../../winix/winixd/core/request.h ./templates.o: ../../../../winix/winixd/core/request.h
@@ -690,9 +693,10 @@
./templates.o: ../../../../winix/winixd/core/crypt.h ./templates.o: ../../../../winix/winixd/core/crypt.h
./templates.o: ../../../../winix/winixd/core/run.h ./templates.o: ../../../../winix/winixd/core/run.h
./templates.o: ../../../../winix/winixd/core/users.h ./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/lastcontainer.h
./templates.o: ../../../../winix/winixd/core/groups.h ./templates.o: ../../../../winix/winixd/core/groups.h
./templates.o: ../../../../winix/winixd/models/group.h ./templates.o: ../../../../winix/winixd/models/group.h
./templates.o: ../../../../winix/winixd/core/ugcontainer.h
./templates.o: ../../../../winix/winixd/core/image.h ./templates.o: ../../../../winix/winixd/core/image.h
./templates.o: ../../../../winix/winixd/core/threadmanager.h ./templates.o: ../../../../winix/winixd/core/threadmanager.h
./templates.o: ../../../../winix/winixd/models/winixmodelconnector.h ./templates.o: ../../../../winix/winixd/models/winixmodelconnector.h
@@ -704,7 +708,6 @@
./templates.o: ../../../../winix/winixd/core/basethread.h ./templates.o: ../../../../winix/winixd/core/basethread.h
./templates.o: ../../../../winix/winixd/notify/templatesnotify.h ./templates.o: ../../../../winix/winixd/notify/templatesnotify.h
./templates.o: ../../../../winix/winixd/core/users.h ./templates.o: ../../../../winix/winixd/core/users.h
./templates.o: ../../../../winix/winixd/core/lastcontainer.h
./templates.o: ../../../../winix/winixd/core/timezones.h ./templates.o: ../../../../winix/winixd/core/timezones.h
./templates.o: ../../../../winix/winixd/core/timezone.h ./templates.o: ../../../../winix/winixd/core/timezone.h
./templates.o: ../../../../winix/winixd/core/sessionmanager.h ./templates.o: ../../../../winix/winixd/core/sessionmanager.h

View File

@@ -65,14 +65,14 @@ void FunRegisterMail::SetInfo(RegisterMailInfo * info)
bool FunRegisterMail::HasAccess() bool FunRegisterMail::has_access()
{ {
return true; return true;
} }
void FunRegisterMail::MakePost() void FunRegisterMail::make_post()
{ {
} }

Some files were not shown because too many files have changed in this diff Show More