changed: added Cur structure
we have there two pointers: Request * request; Session * session; these are the current request and the current session the session GC was moved to SessionManager (was in SessionContainer) git-svn-id: svn://ttmath.org/publicrep/winix/trunk@708 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -25,25 +25,25 @@ bool AddUser::CheckAddUserVars(const std::wstring & login, const std::wstring &
|
||||
{
|
||||
if( login.empty() )
|
||||
{
|
||||
request->status = WINIX_ERR_LOGIN_EMPTY;
|
||||
cur->request->status = WINIX_ERR_LOGIN_EMPTY;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( pass != conf_pass )
|
||||
{
|
||||
request->status = WINIX_ERR_PASSWORDS_DIFFERENT;
|
||||
cur->request->status = WINIX_ERR_PASSWORDS_DIFFERENT;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( pass.size() < config->password_min_size )
|
||||
{
|
||||
request->status = WINIX_ERR_PASSWORD_TOO_SHORT;
|
||||
cur->request->status = WINIX_ERR_PASSWORD_TOO_SHORT;
|
||||
return false;
|
||||
}
|
||||
|
||||
if( system->users.IsUser(login) )
|
||||
{
|
||||
request->status = WINIX_ERR_USER_EXISTS;
|
||||
cur->request->status = WINIX_ERR_USER_EXISTS;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -59,23 +59,23 @@ void AddUser::MakePost()
|
||||
{
|
||||
User user;
|
||||
|
||||
const std::wstring & login = request->PostVar(L"login");
|
||||
const std::wstring & pass = request->PostVar(L"password");
|
||||
const std::wstring & conf_pass = request->PostVar(L"confirmpassword");
|
||||
const std::wstring & login = cur->request->PostVar(L"login");
|
||||
const std::wstring & pass = cur->request->PostVar(L"password");
|
||||
const std::wstring & conf_pass = cur->request->PostVar(L"confirmpassword");
|
||||
|
||||
if( !CheckAddUserVars(login, pass, conf_pass) )
|
||||
return;
|
||||
|
||||
user.name = login;
|
||||
user.email = request->PostVar(L"email");
|
||||
user.email = cur->request->PostVar(L"email");
|
||||
|
||||
request->status = db->AddUser(user, pass);
|
||||
cur->request->status = db->AddUser(user, pass);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
if( system->users.AddUser(user) )
|
||||
{
|
||||
if( !request->session->puser )
|
||||
if( !cur->session->puser )
|
||||
system->users.LoginUser(user.id, false);
|
||||
|
||||
log << log2 << "Adduser: added a new user: " << user.name << logend;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentadduser
|
||||
#define headerfilecmslucontentadduser
|
||||
#ifndef headerfile_winix_functions_adduser
|
||||
#define headerfile_winix_functions_adduser
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -22,21 +22,21 @@ Cat::Cat()
|
||||
|
||||
void Cat::MakeGet()
|
||||
{
|
||||
if( !request->is_item )
|
||||
if( !cur->request->is_item )
|
||||
{
|
||||
log << log1 << "Content: cat function requires an item" << logend;
|
||||
request->status = WINIX_ERR_NO_ITEM;
|
||||
cur->request->status = WINIX_ERR_NO_ITEM;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if( !system->HasReadAccess(request->item) )
|
||||
if( !system->HasReadAccess(cur->request->item) )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
request->send_as_attachment = request->IsParam(L"attachment");
|
||||
cur->request->send_as_attachment = cur->request->IsParam(L"attachment");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentfuncatcat
|
||||
#define headerfilecmslucontentfuncatcat
|
||||
#ifndef headerfile_winix_functions_cat
|
||||
#define headerfile_winix_functions_cat
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ Chmod::Chmod()
|
||||
|
||||
void Chmod::MakePost()
|
||||
{
|
||||
priv_changer.SetRequest(request);
|
||||
priv_changer.SetCur(cur);
|
||||
priv_changer.SetSystem(system);
|
||||
priv_changer.SetDb(db);
|
||||
|
||||
@@ -33,7 +33,7 @@ void Chmod::MakePost()
|
||||
|
||||
void Chmod::MakeGet()
|
||||
{
|
||||
priv_changer.SetRequest(request);
|
||||
priv_changer.SetCur(cur);
|
||||
priv_changer.SetSystem(system);
|
||||
priv_changer.SetDb(db);
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentchmod
|
||||
#define headerfilecmslucontentchmod
|
||||
#ifndef headerfile_winix_functions_chmod
|
||||
#define headerfile_winix_functions_chmod
|
||||
|
||||
#include "functionbase.h"
|
||||
#include "privchanger.h"
|
||||
|
||||
@@ -23,7 +23,7 @@ Chown::Chown()
|
||||
|
||||
void Chown::MakePost()
|
||||
{
|
||||
priv_changer.SetRequest(request);
|
||||
priv_changer.SetCur(cur);
|
||||
priv_changer.SetSystem(system);
|
||||
priv_changer.SetDb(db);
|
||||
|
||||
@@ -33,7 +33,7 @@ void Chown::MakePost()
|
||||
|
||||
void Chown::MakeGet()
|
||||
{
|
||||
priv_changer.SetRequest(request);
|
||||
priv_changer.SetCur(cur);
|
||||
priv_changer.SetSystem(system);
|
||||
priv_changer.SetDb(db);
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentchown
|
||||
#define headerfilecmslucontentchown
|
||||
#ifndef headerfile_winix_functions_chown
|
||||
#define headerfile_winix_functions_chown
|
||||
|
||||
#include "functionbase.h"
|
||||
#include "privchanger.h"
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentckeditor
|
||||
#define headerfilecmslucontentckeditor
|
||||
#ifndef headerfile_winix_functions_ckeditor
|
||||
#define headerfile_winix_functions_ckeditor
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -29,19 +29,19 @@ bool Cp::HasAccess()
|
||||
|
||||
bool Cp::CheckAccessFrom()
|
||||
{
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
{
|
||||
if( !system->HasReadAccess(request->item) || request->item.type == Item::symlink )
|
||||
if( !system->HasReadAccess(cur->request->item) || cur->request->item.type == Item::symlink )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
if( !request->IsParam(L"r") )
|
||||
if( !cur->request->IsParam(L"r") )
|
||||
{
|
||||
// directories need 'r' parameter
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -54,7 +54,7 @@ bool Cp::CheckAccessTo()
|
||||
!system->HasReadExecAccessToPath(dir_tab) ||
|
||||
!system->HasWriteAccess(*dir_tab.back()) )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -65,14 +65,14 @@ return true;
|
||||
|
||||
bool Cp::ParseDir()
|
||||
{
|
||||
const std::wstring & new_dir = request->PostVar(L"to");
|
||||
int res = system->dirs.FollowLink(request->dir_tab, new_dir, dir_tab, file);
|
||||
const std::wstring & new_dir = cur->request->PostVar(L"to");
|
||||
int res = system->dirs.FollowLink(cur->request->dir_tab, new_dir, dir_tab, file);
|
||||
|
||||
if( res == 3 )
|
||||
request->status = WINIX_ERR_NO_ROOT_DIR;
|
||||
cur->request->status = WINIX_ERR_NO_ROOT_DIR;
|
||||
else
|
||||
if( res != 0 && res != 1 )
|
||||
request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
|
||||
return res == 0 || res == 1;
|
||||
}
|
||||
@@ -94,7 +94,7 @@ bool Cp::CopyStaticFile(const std::wstring & from, const std::wstring & to)
|
||||
else
|
||||
{
|
||||
log << log1 << "Cp: can't copy a file from: " << from << ", to: " << to << logend;
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -113,13 +113,13 @@ bool res1, res2, res3, res4, res5;
|
||||
|
||||
if( !res1 || !res2 || !res3 || !res4 || !res5 )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
if( CopyStaticFile(old_path, new_path) )
|
||||
{
|
||||
request->status = db->EditFileById(item, item.id);
|
||||
cur->request->status = db->EditFileById(item, item.id);
|
||||
|
||||
if( item.has_thumb )
|
||||
CopyStaticFile(old_path_thumb, new_path_thumb);
|
||||
@@ -142,9 +142,9 @@ void Cp::CopyFile(Item & item, long dst_dir_id)
|
||||
SetNewAttributes(item);
|
||||
|
||||
item.parent_id = dst_dir_id;
|
||||
request->status = db->AddItem(item);
|
||||
cur->request->status = db->AddItem(item);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
if( item.file_type != WINIX_ITEM_FILETYPE_NONE )
|
||||
CopyStaticFile(item);
|
||||
@@ -187,8 +187,8 @@ void Cp::Prepare()
|
||||
new_user = -1;
|
||||
new_group = dir_tab.back()->group_id;
|
||||
|
||||
if( request->session->puser )
|
||||
new_user = request->session->puser->id;
|
||||
if( cur->session->puser )
|
||||
new_user = cur->session->puser->id;
|
||||
|
||||
loop_checker.clear();
|
||||
}
|
||||
@@ -261,7 +261,7 @@ long Cp::CopyDirTree(const Item & dir, long dst_dir_id)
|
||||
temp.link_redirect = 0;
|
||||
}
|
||||
|
||||
request->status = system->dirs.AddDirectory(temp);
|
||||
cur->request->status = system->dirs.AddDirectory(temp);
|
||||
loop_checker.push_back(temp.id);
|
||||
|
||||
// remember the new dir_id because temp can be changed
|
||||
@@ -311,7 +311,7 @@ void Cp::PostCopyFile(Item & item, bool redirect)
|
||||
|
||||
CopyFileOrSymlink(item, dir_tab.back()->id);
|
||||
|
||||
if( request->status == WINIX_ERR_OK && redirect )
|
||||
if( cur->request->status == WINIX_ERR_OK && redirect )
|
||||
system->RedirectTo(item);
|
||||
}
|
||||
|
||||
@@ -323,7 +323,7 @@ void Cp::PostCopyDirContent(const Item & dir, bool redirect)
|
||||
{
|
||||
if( !file.empty() )
|
||||
{
|
||||
request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ void Cp::PostCopyDirContent(const Item & dir, bool redirect)
|
||||
|
||||
CopyDirContentTree(dir, dir_tab.back()->id);
|
||||
|
||||
if( request->status == WINIX_ERR_OK && redirect )
|
||||
if( cur->request->status == WINIX_ERR_OK && redirect )
|
||||
system->RedirectTo(dir_tab.back()->id);
|
||||
}
|
||||
|
||||
@@ -347,7 +347,7 @@ void Cp::PostCopyDir(const Item & dir, bool redirect)
|
||||
|
||||
long new_dir_id = CopyDirTree(dir, dir_id);
|
||||
|
||||
if( new_dir_id != -1 && request->status == WINIX_ERR_OK && redirect )
|
||||
if( new_dir_id != -1 && cur->request->status == WINIX_ERR_OK && redirect )
|
||||
system->RedirectTo(new_dir_id);
|
||||
}
|
||||
|
||||
@@ -367,20 +367,20 @@ void Cp::MakePost()
|
||||
{
|
||||
Prepare();
|
||||
|
||||
preserve_attr = request->IsPostVar(L"preserveattr");
|
||||
remove_defaults = request->IsPostVar(L"removedefaults");
|
||||
follow_symlinks = request->IsPostVar(L"followsymlinks");
|
||||
preserve_attr = cur->request->IsPostVar(L"preserveattr");
|
||||
remove_defaults = cur->request->IsPostVar(L"removedefaults");
|
||||
follow_symlinks = cur->request->IsPostVar(L"followsymlinks");
|
||||
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
{
|
||||
PostCopyFile(request->item);
|
||||
PostCopyFile(cur->request->item);
|
||||
}
|
||||
else
|
||||
{
|
||||
if( request->IsPostVar(L"onlycontent") )
|
||||
PostCopyDirContent(*request->dir_tab.back());
|
||||
if( cur->request->IsPostVar(L"onlycontent") )
|
||||
PostCopyDirContent(*cur->request->dir_tab.back());
|
||||
else
|
||||
PostCopyDir(*request->dir_tab.back());
|
||||
PostCopyDir(*cur->request->dir_tab.back());
|
||||
}
|
||||
|
||||
Clear();
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentcp
|
||||
#define headerfilecmslucontentcp
|
||||
#ifndef headerfile_winix_functions_cp
|
||||
#define headerfile_winix_functions_cp
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -22,24 +22,24 @@ Default::Default()
|
||||
|
||||
bool Default::HasAccess()
|
||||
{
|
||||
return !request->is_item && system->HasWriteAccess(*request->dir_tab.back());
|
||||
return !cur->request->is_item && system->HasWriteAccess(*cur->request->dir_tab.back());
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Default::MakePost()
|
||||
{
|
||||
Item & dir = *request->dir_tab.back();
|
||||
Item & dir = *cur->request->dir_tab.back();
|
||||
|
||||
dir.link_to = request->PostVar(L"linkto");
|
||||
dir.link_redirect = request->IsPostVar(L"makeredirect") ? 1 : 0;
|
||||
dir.link_to = cur->request->PostVar(L"linkto");
|
||||
dir.link_redirect = cur->request->IsPostVar(L"makeredirect") ? 1 : 0;
|
||||
TrimWhite(dir.link_to);
|
||||
|
||||
// !! dodac sprawdzenie czy link_to jest pusty teraz
|
||||
|
||||
request->status = db->EditLinkItem(dir.id, dir.link_to, dir.link_redirect);
|
||||
cur->request->status = db->EditLinkItem(dir.id, dir.link_to, dir.link_redirect);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
log << log2 << "Default: changed link_to: " << dir.link_to << ", for dir_id: " << dir.id << logend;
|
||||
system->RedirectToLastDir();
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentdefault
|
||||
#define headerfilecmslucontentdefault
|
||||
#ifndef headerfile_winix_functions_default
|
||||
#define headerfile_winix_functions_default
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -24,28 +24,28 @@ Download::Download()
|
||||
void Download::MakeGet()
|
||||
{
|
||||
// !! moze wywalic to no_item i wszedzie w takich miejscach dac poprostu permission_denied?
|
||||
if( !request->is_item )
|
||||
if( !cur->request->is_item )
|
||||
{
|
||||
log << log1 << "Content: download function requires an item" << logend;
|
||||
request->status = WINIX_ERR_NO_ITEM;
|
||||
cur->request->status = WINIX_ERR_NO_ITEM;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if( !system->HasReadAccess(request->item) ||
|
||||
request->item.file_type == WINIX_ITEM_FILETYPE_NONE ||
|
||||
request->item.file_path.empty() )
|
||||
if( !system->HasReadAccess(cur->request->item) ||
|
||||
cur->request->item.file_type == WINIX_ITEM_FILETYPE_NONE ||
|
||||
cur->request->item.file_path.empty() )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
request->send_as_attachment = request->IsParam(L"attachment");
|
||||
cur->request->send_as_attachment = cur->request->IsParam(L"attachment");
|
||||
|
||||
if( request->item.has_thumb && request->IsParam(L"thumb") )
|
||||
system->MakeFilePath(request->item, request->x_sendfile, true);
|
||||
if( cur->request->item.has_thumb && cur->request->IsParam(L"thumb") )
|
||||
system->MakeFilePath(cur->request->item, cur->request->x_sendfile, true);
|
||||
else
|
||||
system->MakeFilePath(request->item, request->x_sendfile);
|
||||
system->MakeFilePath(cur->request->item, cur->request->x_sendfile);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentdownload
|
||||
#define headerfilecmslucontentdownload
|
||||
#ifndef headerfile_winix_functions_download
|
||||
#define headerfile_winix_functions_download
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ Emacs::Emacs()
|
||||
|
||||
bool Emacs::HasAccess(const Item & item)
|
||||
{
|
||||
if( request->session->puser && request->session->puser->super_user )
|
||||
if( cur->session->puser && cur->session->puser->super_user )
|
||||
// super user can use emacs everywhere
|
||||
return true;
|
||||
|
||||
@@ -35,7 +35,7 @@ bool Emacs::HasAccess(const Item & item)
|
||||
if( !system->mounts.pmount->IsPar(system->mounts.MountParEmacsOn()) )
|
||||
return true;
|
||||
|
||||
if( system->mounts.pmount->IsArg(system->mounts.MountParEmacsOn(), request->dir_tab.size()) )
|
||||
if( system->mounts.pmount->IsArg(system->mounts.MountParEmacsOn(), cur->request->dir_tab.size()) )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -45,7 +45,7 @@ return false;
|
||||
|
||||
bool Emacs::HasAccess()
|
||||
{
|
||||
return HasAccess(*request->last_item);
|
||||
return HasAccess(*cur->request->last_item);
|
||||
}
|
||||
|
||||
|
||||
@@ -56,16 +56,16 @@ bool Emacs::PostEmacsCheckAbuse(bool adding)
|
||||
{
|
||||
if( !system->rebus.CheckRebus() )
|
||||
{
|
||||
request->status = WINIX_ERR_INCORRECT_REBUS;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_REBUS;
|
||||
return false;
|
||||
}
|
||||
|
||||
// !! is tested in createthread once
|
||||
functions->CheckGetPostTimes();
|
||||
|
||||
if( request->session->spam_score > 0 )
|
||||
if( cur->session->spam_score > 0 )
|
||||
{
|
||||
request->status = WINIX_ERR_SPAM;
|
||||
cur->request->status = WINIX_ERR_SPAM;
|
||||
log << log1 << "Emacs: ignoring due to suspected spamming" << logend;
|
||||
return false;
|
||||
}
|
||||
@@ -109,39 +109,39 @@ return WINIX_NOTIFY_CODE_FILE_ADD;
|
||||
|
||||
void Emacs::MakePost()
|
||||
{
|
||||
bool adding = !request->is_item;
|
||||
bool adding = !cur->request->is_item;
|
||||
|
||||
if( !adding )
|
||||
old_url = request->item.url;
|
||||
old_url = cur->request->item.url;
|
||||
|
||||
functions->ReadItem(request->item, Item::file);
|
||||
functions->ReadItem(cur->request->item, Item::file);
|
||||
|
||||
if( adding )
|
||||
functions->SetUser(request->item); // set user before checking the rebus
|
||||
functions->SetUser(cur->request->item); // set user before checking the rebus
|
||||
|
||||
if( !PostEmacsCheckAbuse(adding) )
|
||||
return;
|
||||
|
||||
if( adding )
|
||||
{
|
||||
request->is_item = true; // !! moze lepiej nie ustawiac is_item? (bo jak wystapi blad np dodania do bazy danych
|
||||
cur->request->is_item = true; // !! moze lepiej nie ustawiac is_item? (bo jak wystapi blad np dodania do bazy danych
|
||||
// to formularz edycji zmieni sie z 'dodaj' na 'edytuj'
|
||||
request->item.privileges = 0644; // !! tymczasowo, bedzie uzyte umask
|
||||
request->status = system->AddFile(request->item, NotifyCodeAdd());
|
||||
cur->request->item.privileges = 0644; // !! tymczasowo, bedzie uzyte umask
|
||||
cur->request->status = system->AddFile(cur->request->item, NotifyCodeAdd());
|
||||
}
|
||||
else
|
||||
{
|
||||
request->status = system->EditFile(request->item, request->item.url != old_url, NotifyCodeEdit());
|
||||
cur->request->status = system->EditFile(cur->request->item, cur->request->item.url != old_url, NotifyCodeEdit());
|
||||
}
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
PostFunEmacsModifyMountPoint(adding);
|
||||
functions->CheckSpecialFile(request->item);
|
||||
functions->CheckSpecialFile(cur->request->item);
|
||||
}
|
||||
else
|
||||
{
|
||||
log << log1 << "Emacs: error: " << request->status << logend;
|
||||
log << log1 << "Emacs: error: " << cur->request->status << logend;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentemacs
|
||||
#define headerfilecmslucontentemacs
|
||||
#ifndef headerfile_winix_functions_emacs
|
||||
#define headerfile_winix_functions_emacs
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -33,12 +33,13 @@ void FunctionBase::SetConfig(Config * pconfig)
|
||||
}
|
||||
|
||||
|
||||
void FunctionBase::SetRequest(Request * prequest)
|
||||
void FunctionBase::SetCur(Cur * pcur)
|
||||
{
|
||||
request = prequest;
|
||||
cur = pcur;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void FunctionBase::SetDb(Db * pdb)
|
||||
{
|
||||
db = pdb;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentfunctionbase
|
||||
#define headerfilecmslucontentfunctionbase
|
||||
#ifndef headerfile_winix_functions_functionbase
|
||||
#define headerfile_winix_functions_functionbase
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
virtual void MakeGet();
|
||||
|
||||
void SetConfig(Config * pconfig);
|
||||
void SetRequest(Request * prequest);
|
||||
void SetCur(Cur * pcur);
|
||||
void SetDb(Db * pdb);
|
||||
void SetSystem(System * psystem);
|
||||
void SetFunctions(Functions * pfunctions);
|
||||
@@ -60,13 +60,13 @@ public:
|
||||
|
||||
protected:
|
||||
|
||||
Config * config;
|
||||
Request * request;
|
||||
Db * db;
|
||||
System * system;
|
||||
Config * config;
|
||||
Cur * cur;
|
||||
Db * db;
|
||||
System * system;
|
||||
Functions * functions;
|
||||
Templates * templates;
|
||||
Synchro * synchro;
|
||||
Synchro * synchro;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
|
||||
void FunctionParser::SkipEmptyString(const char * msg)
|
||||
{
|
||||
for( ; get_index != get_tab_len && request->get_tab[get_index].empty() ; ++get_index )
|
||||
for( ; get_index != get_tab_len && cur->request->get_tab[get_index].empty() ; ++get_index )
|
||||
log << log3 << msg << logend;
|
||||
}
|
||||
|
||||
@@ -31,14 +31,14 @@ void FunctionParser::ParseDirectories()
|
||||
if( !pdir )
|
||||
{
|
||||
// there is no the root dir
|
||||
request->status = WINIX_ERR_NO_ROOT_DIR;
|
||||
cur->request->status = WINIX_ERR_NO_ROOT_DIR;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
while( true )
|
||||
{
|
||||
request->dir_tab.push_back( pdir );
|
||||
cur->request->dir_tab.push_back( pdir );
|
||||
log << log3 << "FP: Directory: ";
|
||||
|
||||
if( pdir->parent_id == -1 )
|
||||
@@ -51,7 +51,7 @@ void FunctionParser::ParseDirectories()
|
||||
if( get_index == get_tab_len )
|
||||
break;
|
||||
|
||||
pdir = system->dirs.GetDir(request->get_tab[get_index], pdir->id);
|
||||
pdir = system->dirs.GetDir(cur->request->get_tab[get_index], pdir->id);
|
||||
|
||||
if( !pdir )
|
||||
break;
|
||||
@@ -59,7 +59,7 @@ void FunctionParser::ParseDirectories()
|
||||
++get_index;
|
||||
}
|
||||
|
||||
request->last_item = request->dir_tab.back();
|
||||
cur->request->last_item = cur->request->dir_tab.back();
|
||||
}
|
||||
|
||||
|
||||
@@ -71,26 +71,26 @@ void FunctionParser::ParseItem()
|
||||
if( get_index == get_tab_len )
|
||||
return;
|
||||
|
||||
// request->dir_tab has at least one element
|
||||
long parent_id = request->dir_tab.back()->id;
|
||||
const std::wstring & url = request->get_tab[get_index];
|
||||
// cur->request->dir_tab has at least one element
|
||||
long parent_id = cur->request->dir_tab.back()->id;
|
||||
const std::wstring & url = cur->request->get_tab[get_index];
|
||||
|
||||
request->status = db->GetItem(parent_id, url, request->item);
|
||||
cur->request->status = db->GetItem(parent_id, url, cur->request->item);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
request->last_item = &request->item;
|
||||
cur->request->last_item = &cur->request->item;
|
||||
|
||||
if( request->role == Request::authorizer && request->item.file_type == WINIX_ITEM_FILETYPE_NONE )
|
||||
if( cur->request->role == Request::authorizer && cur->request->item.file_type == WINIX_ITEM_FILETYPE_NONE )
|
||||
{
|
||||
log << log1 << "FP: item.url: " << url << " exists but has not a static content (authorizer role)" << logend;
|
||||
request->status = WINIX_ERR_NO_ITEM;
|
||||
cur->request->status = WINIX_ERR_NO_ITEM;
|
||||
return;
|
||||
}
|
||||
|
||||
++get_index;
|
||||
request->is_item = true;
|
||||
log << log3 << "FP: Item: id: " << request->item.id << ", url: " << request->item.url << logend;
|
||||
cur->request->is_item = true;
|
||||
log << log3 << "FP: Item: id: " << cur->request->item.id << ", url: " << cur->request->item.url << logend;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -107,13 +107,13 @@ void FunctionParser::ParseFunction()
|
||||
if( get_index == get_tab_len )
|
||||
return;
|
||||
|
||||
request->function = functions->Find(request->get_tab[get_index]);
|
||||
cur->request->function = functions->Find(cur->request->get_tab[get_index]);
|
||||
|
||||
|
||||
if( request->function )
|
||||
if( cur->request->function )
|
||||
{
|
||||
++get_index;
|
||||
log << log3 << "FP: Function: " << request->function->fun.url << logend;
|
||||
log << log3 << "FP: Function: " << cur->request->function->fun.url << logend;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,7 +144,7 @@ size_t i;
|
||||
param.value = par.substr(i+1);
|
||||
}
|
||||
|
||||
request->param_tab.push_back(param);
|
||||
cur->request->param_tab.push_back(param);
|
||||
|
||||
log << log3 << "FP: Param: name=" << param.name;
|
||||
|
||||
@@ -165,45 +165,45 @@ void FunctionParser::ParseParams()
|
||||
if( get_index == get_tab_len )
|
||||
break;
|
||||
|
||||
ParseParams(request->get_tab[get_index]);
|
||||
ParseParams(cur->request->get_tab[get_index]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
void FunctionParser::Parse(Request * prequest, Db * pdb, Functions * pfunctions, System * psystem)
|
||||
void FunctionParser::Parse(Cur * pcur, Db * pdb, Functions * pfunctions, System * psystem)
|
||||
{
|
||||
request = prequest;
|
||||
db = pdb;
|
||||
functions = pfunctions;
|
||||
cur = pcur;
|
||||
system = psystem;
|
||||
functions = pfunctions;
|
||||
|
||||
request->status = WINIX_ERR_OK;
|
||||
cur->request->status = WINIX_ERR_OK;
|
||||
get_index = 0;
|
||||
get_tab_len = request->get_tab.size();
|
||||
request->function = 0;
|
||||
request->is_item = false;
|
||||
get_tab_len = cur->request->get_tab.size();
|
||||
cur->request->function = 0;
|
||||
cur->request->is_item = false;
|
||||
|
||||
ParseDirectories();
|
||||
|
||||
if( request->status != WINIX_ERR_OK )
|
||||
if( cur->request->status != WINIX_ERR_OK )
|
||||
return;
|
||||
|
||||
ParseFunction();
|
||||
|
||||
if( !request->function )
|
||||
if( !cur->request->function )
|
||||
{
|
||||
ParseItem();
|
||||
|
||||
if( request->status != WINIX_ERR_OK )
|
||||
if( cur->request->status != WINIX_ERR_OK )
|
||||
return;
|
||||
|
||||
ParseFunction();
|
||||
|
||||
if( !request->function && get_index != get_tab_len )
|
||||
if( !cur->request->function && get_index != get_tab_len )
|
||||
{
|
||||
request->status = WINIX_ERR_NO_FUNCTION;
|
||||
log << log3 << "FP: Parse: unknown function: \"" << request->get_tab[get_index] << "\"" << logend;
|
||||
cur->request->status = WINIX_ERR_NO_FUNCTION;
|
||||
log << log3 << "FP: Parse: unknown function: \"" << cur->request->get_tab[get_index] << "\"" << logend;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucorefunctionparser
|
||||
#define headerfilecmslucorefunctionparser
|
||||
#ifndef headerfile_winix_functions_functionparser
|
||||
#define headerfile_winix_functions_functionparser
|
||||
|
||||
#include "core/request.h"
|
||||
#include "db/db.h"
|
||||
#include "core/cur.h"
|
||||
#include "core/system.h"
|
||||
|
||||
|
||||
@@ -21,10 +21,10 @@ class Functions;
|
||||
|
||||
class FunctionParser
|
||||
{
|
||||
Request * request;
|
||||
Db * db;
|
||||
Functions * functions;
|
||||
Cur * cur;
|
||||
System * system;
|
||||
Functions * functions;
|
||||
|
||||
GetTab::size_type get_index;
|
||||
GetTab::size_type get_tab_len;
|
||||
@@ -40,7 +40,7 @@ class FunctionParser
|
||||
|
||||
public:
|
||||
|
||||
void Parse(Request * prequest, Db * pdb, Functions * pfunctions, System * psystem);
|
||||
void Parse(Cur * pcur, Db * pdb, Functions * pfunctions, System * psystem);
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -21,12 +21,13 @@ void Functions::SetConfig(Config * pconfig)
|
||||
}
|
||||
|
||||
|
||||
void Functions::SetRequest(Request * prequest)
|
||||
void Functions::SetCur(Cur * pcur)
|
||||
{
|
||||
request = prequest;
|
||||
cur = pcur;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Functions::SetDb(Db * pdb)
|
||||
{
|
||||
db = pdb;
|
||||
@@ -135,7 +136,7 @@ return WINIX_NOTHING_TO_DO;
|
||||
void Functions::SetObjects(FunctionBase * fun)
|
||||
{
|
||||
fun->SetConfig(config);
|
||||
fun->SetRequest(request);
|
||||
fun->SetCur(cur);
|
||||
fun->SetDb(db);
|
||||
fun->SetSystem(system);
|
||||
fun->SetFunctions(this);
|
||||
@@ -224,22 +225,22 @@ void Functions::Init()
|
||||
|
||||
void Functions::Parse()
|
||||
{
|
||||
function_parser.Parse(request, db, this, system);
|
||||
function_parser.Parse(cur, db, this, system);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Functions::SetDefaultFunctionForFile()
|
||||
{
|
||||
if( request->item.file_type != WINIX_ITEM_FILETYPE_NONE )
|
||||
request->function = &fun_download;
|
||||
if( cur->request->item.file_type != WINIX_ITEM_FILETYPE_NONE )
|
||||
cur->request->function = &fun_download;
|
||||
else
|
||||
if( system->HasReadExecAccess(request->item) )
|
||||
request->function = &fun_run;
|
||||
if( system->HasReadExecAccess(cur->request->item) )
|
||||
cur->request->function = &fun_run;
|
||||
else
|
||||
request->function = &fun_cat;
|
||||
cur->request->function = &fun_cat;
|
||||
|
||||
log << log3 << "Functions: default function: " << request->function->fun.url << logend;
|
||||
log << log3 << "Functions: default function: " << cur->request->function->fun.url << logend;
|
||||
}
|
||||
|
||||
|
||||
@@ -249,30 +250,30 @@ void Functions::SetDefaultFunctionForDir()
|
||||
{
|
||||
// !! nie potrzebne
|
||||
// if( system->mounts.pmount->type == system->mounts.MountTypeThread() )
|
||||
// request->function = &fun_thread;
|
||||
// cur->request->function = &fun_thread;
|
||||
// else
|
||||
|
||||
request->function = &fun_ls;
|
||||
cur->request->function = &fun_ls;
|
||||
|
||||
log << log3 << "Functions: default function: " << request->function->fun.url << logend;
|
||||
log << log3 << "Functions: default function: " << cur->request->function->fun.url << logend;
|
||||
}
|
||||
|
||||
|
||||
void Functions::SetDefaultFunction()
|
||||
{
|
||||
request->function = 0;
|
||||
cur->request->function = 0;
|
||||
|
||||
plugin.Call(WINIX_SELECT_DEFAULT_FUNCTION);
|
||||
|
||||
if( request->function )
|
||||
if( cur->request->function )
|
||||
{
|
||||
log << log3 << "Functions: default function: " << request->function->fun.url
|
||||
log << log3 << "Functions: default function: " << cur->request->function->fun.url
|
||||
<< " (set by a plugin)" << logend;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
SetDefaultFunctionForFile();
|
||||
else
|
||||
SetDefaultFunctionForDir();
|
||||
@@ -288,13 +289,13 @@ void Functions::CheckFunctionFollowDir(bool was_default_function)
|
||||
|
||||
if( was_default_function )
|
||||
{
|
||||
if( request->dir_tab.back()->link_redirect == 1 )
|
||||
if( cur->request->dir_tab.back()->link_redirect == 1 )
|
||||
{
|
||||
system->RedirectTo(request->dir_tab.back()->link_to);
|
||||
system->RedirectTo(cur->request->dir_tab.back()->link_to);
|
||||
}
|
||||
else
|
||||
{
|
||||
if( system->FollowAllLinks(request->dir_tab.back()->link_to, true, true) )
|
||||
if( system->FollowAllLinks(cur->request->dir_tab.back()->link_to, true, true) )
|
||||
SetDefaultFunction();
|
||||
}
|
||||
}
|
||||
@@ -304,25 +305,25 @@ void Functions::CheckFunctionFollowDir(bool was_default_function)
|
||||
|
||||
void Functions::CheckFunctionFollowSymlink(bool was_default_function)
|
||||
{
|
||||
if( request->item.link_redirect == 1 )
|
||||
if( cur->request->item.link_redirect == 1 )
|
||||
{
|
||||
if( was_default_function )
|
||||
system->RedirectTo(request->item.link_to);
|
||||
system->RedirectTo(cur->request->item.link_to);
|
||||
else
|
||||
system->RedirectWithFunctionAndParamsTo(request->item.link_to);
|
||||
system->RedirectWithFunctionAndParamsTo(cur->request->item.link_to);
|
||||
}
|
||||
else
|
||||
if( system->FollowAllLinks(request->item.link_to, true, true) )
|
||||
if( system->FollowAllLinks(cur->request->item.link_to, true, true) )
|
||||
{
|
||||
if( was_default_function )
|
||||
SetDefaultFunction();
|
||||
|
||||
if( request->status == WINIX_ERR_OK && !request->redirect_to.empty() && !was_default_function && request->function )
|
||||
if( cur->request->status == WINIX_ERR_OK && !cur->request->redirect_to.empty() && !was_default_function && cur->request->function )
|
||||
{
|
||||
// !! nie jestem pewny dodania tej nowej funkcji do redirecta... (sprawdzic to)
|
||||
request->redirect_to += '/';
|
||||
request->redirect_to += request->function->fun.url;
|
||||
system->AddParams(request->param_tab, request->redirect_to, false);
|
||||
cur->request->redirect_to += '/';
|
||||
cur->request->redirect_to += cur->request->function->fun.url;
|
||||
system->AddParams(cur->request->param_tab, cur->request->redirect_to, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -334,19 +335,19 @@ void Functions::CheckFunctionAndSymlink()
|
||||
{
|
||||
bool was_default_function = false;
|
||||
|
||||
if( !request->function || request->function == &fun_special_default )
|
||||
if( !cur->request->function || cur->request->function == &fun_special_default )
|
||||
{
|
||||
was_default_function = true;
|
||||
SetDefaultFunction();
|
||||
}
|
||||
|
||||
if( request->status != WINIX_ERR_OK || !request->redirect_to.empty() )
|
||||
if( cur->request->status != WINIX_ERR_OK || !cur->request->redirect_to.empty() )
|
||||
return;
|
||||
|
||||
if( !request->is_item && !request->dir_tab.back()->link_to.empty() )
|
||||
if( !cur->request->is_item && !cur->request->dir_tab.back()->link_to.empty() )
|
||||
CheckFunctionFollowDir(was_default_function);
|
||||
else
|
||||
if( request->is_item && request->item.type == Item::symlink && request->function && request->function->follow_symlinks )
|
||||
if( cur->request->is_item && cur->request->item.type == Item::symlink && cur->request->function && cur->request->function->follow_symlinks )
|
||||
CheckFunctionFollowSymlink(was_default_function);
|
||||
}
|
||||
|
||||
@@ -354,38 +355,38 @@ bool was_default_function = false;
|
||||
|
||||
void Functions::MakeFunction()
|
||||
{
|
||||
if( !request->function )
|
||||
if( !cur->request->function )
|
||||
{
|
||||
request->status = WINIX_ERR_NO_FUNCTION;
|
||||
cur->request->status = WINIX_ERR_NO_FUNCTION;
|
||||
log << log1 << "Functions: no function (neither cat nor ls)" << logend;
|
||||
return;
|
||||
}
|
||||
|
||||
if( !system->DirsHaveReadExecPerm() ||
|
||||
!system->HasReadExecAccess(request->function->fun) ||
|
||||
!request->function->HasAccess() )
|
||||
!system->HasReadExecAccess(cur->request->function->fun) ||
|
||||
!cur->request->function->HasAccess() )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
if( request->method == Request::get )
|
||||
if( cur->request->method == Request::get )
|
||||
{
|
||||
if( request->redirect_to.empty() )
|
||||
request->function->MakeGet();
|
||||
if( cur->request->redirect_to.empty() )
|
||||
cur->request->function->MakeGet();
|
||||
}
|
||||
else
|
||||
if( request->method == Request::post )
|
||||
if( cur->request->method == Request::post )
|
||||
{
|
||||
// we don't use post with redirecting (the post variables would be lost)
|
||||
|
||||
if( request->redirect_to.empty() )
|
||||
request->function->MakePost();
|
||||
if( cur->request->redirect_to.empty() )
|
||||
cur->request->function->MakePost();
|
||||
else
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
}
|
||||
else
|
||||
if( request->method == Request::head )
|
||||
if( cur->request->method == Request::head )
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
@@ -401,19 +402,19 @@ void Functions::CheckGetPostTimes(time_t difference)
|
||||
{
|
||||
time_t now = std::time(0);
|
||||
|
||||
if( request->session->puser )
|
||||
if( cur->session->puser )
|
||||
return;
|
||||
|
||||
if( request->method != Request::post )
|
||||
if( cur->request->method != Request::post )
|
||||
return;
|
||||
|
||||
if( now - request->session->last_time_get >= (time_t)difference )
|
||||
if( now - cur->session->last_time_get >= (time_t)difference )
|
||||
return;
|
||||
|
||||
if( request->AllPostVarEmpty() )
|
||||
if( cur->request->AllPostVarEmpty() )
|
||||
return;
|
||||
|
||||
request->session->spam_score += 1;
|
||||
cur->session->spam_score += 1;
|
||||
log << log1 << "Functions: spam +1: POST after GET sent too fast" << logend;
|
||||
}
|
||||
|
||||
@@ -424,15 +425,15 @@ bool Functions::CheckAbuse()
|
||||
{
|
||||
if( !system->rebus.CheckRebus() )
|
||||
{
|
||||
request->status = WINIX_ERR_INCORRECT_REBUS;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_REBUS;
|
||||
return true;
|
||||
}
|
||||
|
||||
CheckGetPostTimes();
|
||||
|
||||
if( request->session->spam_score > 0 )
|
||||
if( cur->session->spam_score > 0 )
|
||||
{
|
||||
request->status = WINIX_ERR_SPAM;
|
||||
cur->request->status = WINIX_ERR_SPAM;
|
||||
log << log1 << "Functions: ignoring due to suspected spamming" << logend;
|
||||
return true;
|
||||
}
|
||||
@@ -446,17 +447,17 @@ return false;
|
||||
// returning true if the 'url' has to be changed
|
||||
void Functions::ReadItemUrlSubject(Item & item, Item::Type item_type)
|
||||
{
|
||||
std::wstring * new_subject = request->PostVarp(L"subject");
|
||||
std::wstring * new_url = request->PostVarp(L"url");
|
||||
std::wstring * new_subject = cur->request->PostVarp(L"subject");
|
||||
std::wstring * new_url = cur->request->PostVarp(L"url");
|
||||
|
||||
if( new_subject )
|
||||
item.subject = *new_subject;
|
||||
|
||||
if( item.subject.empty() )
|
||||
{
|
||||
item.subject = request->dir_tab.back()->subject;
|
||||
item.subject = cur->request->dir_tab.back()->subject;
|
||||
item.subject += L"_msg_";
|
||||
Toa(db->Size(request->dir_tab.back()->id, Item::file), item.subject, 10, false);
|
||||
Toa(db->Size(cur->request->dir_tab.back()->id, Item::file), item.subject, 10, false);
|
||||
}
|
||||
|
||||
if( new_url )
|
||||
@@ -475,13 +476,13 @@ void Functions::ReadItemFilterHtml(Item & item)
|
||||
html_filter.CheckOrphans(HTMLFilter::lang_none);
|
||||
html_filter.SafeMode(true);
|
||||
|
||||
html_filter.Filter(request->PostVar(L"itemcontent"), item.content);
|
||||
html_filter.Filter(cur->request->PostVar(L"itemcontent"), item.content);
|
||||
}
|
||||
|
||||
|
||||
void Functions::ReadItemContent(Item & item, const std::wstring & content_type)
|
||||
{
|
||||
bool is_root = request->session->puser && request->session->puser->super_user;
|
||||
bool is_root = cur->session->puser && cur->session->puser->super_user;
|
||||
bool filter_html = (content_type == L"2") && config->editors_html_safe_mode;
|
||||
|
||||
if( filter_html && is_root && config->editors_html_safe_mode_skip_root )
|
||||
@@ -490,14 +491,14 @@ void Functions::ReadItemContent(Item & item, const std::wstring & content_type)
|
||||
if( filter_html )
|
||||
ReadItemFilterHtml(item);
|
||||
else
|
||||
request->PostVar(L"itemcontent", item.content);
|
||||
cur->request->PostVar(L"itemcontent", item.content);
|
||||
}
|
||||
|
||||
|
||||
void Functions::ReadItemContentWithType(Item & item)
|
||||
{
|
||||
item.content_type = Item::ct_formatted_text; // default is formatted text
|
||||
request->PostVar(L"contenttype", temp);
|
||||
cur->request->PostVar(L"contenttype", temp);
|
||||
|
||||
ReadItemContent(item, temp);
|
||||
|
||||
@@ -513,10 +514,10 @@ void Functions::ReadItemContentWithType(Item & item)
|
||||
|
||||
// those below need special privileges
|
||||
|
||||
if( !request->session->puser )
|
||||
if( !cur->session->puser )
|
||||
return;
|
||||
|
||||
long user_id = request->session->puser->id;
|
||||
long user_id = cur->session->puser->id;
|
||||
|
||||
|
||||
if( temp == L"2" )
|
||||
@@ -551,7 +552,7 @@ void Functions::ReadItem(Item & item, Item::Type item_type)
|
||||
return;
|
||||
|
||||
item.type = item_type;
|
||||
item.parent_id = request->dir_tab.back()->id; // !! moze to dac jako parametr?
|
||||
item.parent_id = cur->request->dir_tab.back()->id; // !! moze to dac jako parametr?
|
||||
|
||||
ReadItemUrlSubject(item, item_type);
|
||||
|
||||
@@ -562,16 +563,16 @@ void Functions::ReadItem(Item & item, Item::Type item_type)
|
||||
|
||||
void Functions::SetUser(Item & item)
|
||||
{
|
||||
if( request->session && request->session->puser )
|
||||
if( cur->session && cur->session->puser )
|
||||
{
|
||||
item.user_id = request->session->puser->id;
|
||||
item.user_id = cur->session->puser->id;
|
||||
item.guest_name.clear();
|
||||
}
|
||||
else
|
||||
{
|
||||
item.user_id = -1;
|
||||
request->PostVar(L"guestname", item.guest_name);
|
||||
cur->request->PostVar(L"guestname", item.guest_name);
|
||||
}
|
||||
|
||||
item.group_id = request->dir_tab.back()->group_id;
|
||||
item.group_id = cur->request->dir_tab.back()->group_id;
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentfunctions
|
||||
#define headerfilecmslucontentfunctions
|
||||
#ifndef headerfile_winix_functions_functions
|
||||
#define headerfile_winix_functions_functions
|
||||
|
||||
#include <string>
|
||||
#include "functionbase.h"
|
||||
@@ -102,7 +102,7 @@ public:
|
||||
|
||||
|
||||
void SetConfig(Config * pconfig);
|
||||
void SetRequest(Request * prequest);
|
||||
void SetCur(Cur * pcur);
|
||||
void SetDb(Db * pdb);
|
||||
void SetSystem(System * psystem);
|
||||
void SetTemplates(Templates * ptemplates);
|
||||
@@ -136,7 +136,7 @@ public:
|
||||
private:
|
||||
|
||||
Config * config;
|
||||
Request * request;
|
||||
Cur * cur;
|
||||
Db * db;
|
||||
System * system;
|
||||
Synchro * synchro;
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentlast
|
||||
#define headerfilecmslucontentlast
|
||||
#ifndef headerfile_winix_functions_last
|
||||
#define headerfile_winix_functions_last
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ Ln::Ln()
|
||||
|
||||
bool Ln::HasAccess()
|
||||
{
|
||||
return system->HasWriteAccess(*request->dir_tab.back());
|
||||
return system->HasWriteAccess(*cur->request->dir_tab.back());
|
||||
}
|
||||
|
||||
|
||||
@@ -33,53 +33,53 @@ void Ln::CreateSymbolicLink(const std::wstring & link_to)
|
||||
{
|
||||
item.Clear(); // setting the date to now
|
||||
item.type = Item::symlink;
|
||||
item.parent_id = request->dir_tab.back()->id;
|
||||
item.url = request->PostVar(L"url");
|
||||
item.parent_id = cur->request->dir_tab.back()->id;
|
||||
item.url = cur->request->PostVar(L"url");
|
||||
item.link_to = link_to;
|
||||
item.link_redirect = request->IsPostVar(L"makeredirect") ? 1 : 0;
|
||||
item.link_redirect = cur->request->IsPostVar(L"makeredirect") ? 1 : 0;
|
||||
item.privileges = 0644; // !! tymczasowo, bedzie uzyte umask
|
||||
functions->SetUser(item);
|
||||
functions->PrepareUrl(item);
|
||||
|
||||
request->status = db->AddItem(item);
|
||||
cur->request->status = db->AddItem(item);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
log << log3 << "Ln: created a symbolic link to: " << link_to << logend;
|
||||
}
|
||||
|
||||
|
||||
void Ln::CreateHardLink(const std::wstring & link_to)
|
||||
{
|
||||
int res = system->FollowAllLinks(request->dir_tab, link_to, dir_tab, item, false, false);
|
||||
int res = system->FollowAllLinks(cur->request->dir_tab, link_to, dir_tab, item, false, false);
|
||||
|
||||
if( res == 0 )
|
||||
{
|
||||
log << log2 << "Ln: " << link_to << " is a directory (can't create a hard link)" << logend;
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
}
|
||||
else
|
||||
if( res == 1 )
|
||||
{
|
||||
item.SetDateToNow();
|
||||
item.type = Item::file;
|
||||
item.parent_id = request->dir_tab.back()->id;
|
||||
item.url = request->PostVar(L"url");
|
||||
item.parent_id = cur->request->dir_tab.back()->id;
|
||||
item.url = cur->request->PostVar(L"url");
|
||||
item.privileges = 0644; // !! tymczasowo, bedzie uzyte umask
|
||||
functions->SetUser(item);
|
||||
functions->PrepareUrl(item);
|
||||
request->status = db->AddHardLink(item);
|
||||
cur->request->status = db->AddHardLink(item);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
log << log3 << "Ln: created a hard link to: " << link_to << logend;
|
||||
}
|
||||
else
|
||||
if( res == 5 || res == 6 )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
}
|
||||
else
|
||||
{
|
||||
request->status = WINIX_ERR_NO_ITEM;
|
||||
cur->request->status = WINIX_ERR_NO_ITEM;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,20 +88,20 @@ void Ln::CreateHardLink(const std::wstring & link_to)
|
||||
// we do not use notifications for links
|
||||
void Ln::MakePost()
|
||||
{
|
||||
link_to = request->PostVar(L"linkto");
|
||||
link_to = cur->request->PostVar(L"linkto");
|
||||
TrimWhite(link_to);
|
||||
|
||||
if( link_to.empty() )
|
||||
return;
|
||||
|
||||
int type = Toi(request->PostVar(L"linktype"));
|
||||
int type = Toi(cur->request->PostVar(L"linktype"));
|
||||
|
||||
if( type == 0 )
|
||||
CreateHardLink(link_to);
|
||||
else
|
||||
CreateSymbolicLink(link_to);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectTo(item);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentln
|
||||
#define headerfilecmslucontentln
|
||||
#ifndef headerfile_winix_functions_ln
|
||||
#define headerfile_winix_functions_ln
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -22,15 +22,15 @@ Login::Login()
|
||||
|
||||
void Login::MakePost()
|
||||
{
|
||||
if( request->session->id == 0 )
|
||||
if( cur->session->id == 0 )
|
||||
{
|
||||
log << log1 << "Login: can't login in a temporary session (skipped)" << logend;
|
||||
return;
|
||||
}
|
||||
|
||||
const std::wstring & login = request->PostVar(L"login");
|
||||
const std::wstring & pass = request->PostVar(L"password");
|
||||
const std::wstring & remem = request->PostVar(L"rememberme");
|
||||
const std::wstring & login = cur->request->PostVar(L"login");
|
||||
const std::wstring & pass = cur->request->PostVar(L"password");
|
||||
const std::wstring & remem = cur->request->PostVar(L"rememberme");
|
||||
long user_id;
|
||||
|
||||
if( db->CheckUser(login, pass, user_id) )
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentlogin
|
||||
#define headerfilecmslucontentlogin
|
||||
#ifndef headerfile_winix_functions_login
|
||||
#define headerfile_winix_functions_login
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentlogout
|
||||
#define headerfilecmslucontentlogout
|
||||
#ifndef headerfile_winix_functions_logout
|
||||
#define headerfile_winix_functions_logout
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -23,23 +23,23 @@ Ls::Ls()
|
||||
|
||||
void Ls::MakeGet()
|
||||
{
|
||||
if( !request->is_item )
|
||||
if( !cur->request->is_item )
|
||||
{
|
||||
DbItemQuery iq;
|
||||
|
||||
iq.sel_content = false;
|
||||
|
||||
iq.WhereParentId(request->dir_tab.back()->id);
|
||||
iq.WhereParentId(cur->request->dir_tab.back()->id);
|
||||
iq.WhereType(Item::dir, false);
|
||||
|
||||
if( request->IsParam(L"ckeditor_browse") )
|
||||
if( cur->request->IsParam(L"ckeditor_browse") )
|
||||
{
|
||||
iq.WhereFileType(WINIX_ITEM_FILETYPE_IMAGE);
|
||||
db->GetItems(request->item_tab, iq);
|
||||
db->GetItems(cur->request->item_tab, iq);
|
||||
}
|
||||
else
|
||||
{
|
||||
db->GetItems(request->item_tab, iq);
|
||||
db->GetItems(cur->request->item_tab, iq);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentls
|
||||
#define headerfilecmslucontentls
|
||||
#ifndef headerfile_winix_functions_ls
|
||||
#define headerfile_winix_functions_ls
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -30,7 +30,7 @@ bool Mkdir::HasAccess(const Item & item)
|
||||
if( item.type != Item::dir )
|
||||
return false;
|
||||
|
||||
if( request->session->puser && request->session->puser->super_user )
|
||||
if( cur->session->puser && cur->session->puser->super_user )
|
||||
// super user can use mkdir everywhere
|
||||
return true;
|
||||
|
||||
@@ -40,7 +40,7 @@ bool Mkdir::HasAccess(const Item & item)
|
||||
if( !system->mounts.pmount->IsPar(system->mounts.MountParMkdirOn()) )
|
||||
return true;
|
||||
|
||||
if( system->mounts.pmount->IsArg(system->mounts.MountParMkdirOn(), request->dir_tab.size()) )
|
||||
if( system->mounts.pmount->IsArg(system->mounts.MountParMkdirOn(), cur->request->dir_tab.size()) )
|
||||
return true;
|
||||
|
||||
return false;
|
||||
@@ -49,7 +49,7 @@ return false;
|
||||
|
||||
bool Mkdir::HasAccess()
|
||||
{
|
||||
if( request->is_item || !HasAccess(*request->dir_tab.back()) )
|
||||
if( cur->request->is_item || !HasAccess(*cur->request->dir_tab.back()) )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -60,19 +60,19 @@ return true;
|
||||
|
||||
void Mkdir::PostFunMkdir(bool add_to_dir_tab, int privileges)
|
||||
{
|
||||
functions->ReadItem(request->item, Item::dir);
|
||||
functions->SetUser(request->item);
|
||||
request->item.privileges = privileges;
|
||||
functions->ReadItem(cur->request->item, Item::dir);
|
||||
functions->SetUser(cur->request->item);
|
||||
cur->request->item.privileges = privileges;
|
||||
|
||||
request->status = system->dirs.AddDirectory(request->item, add_to_dir_tab);
|
||||
cur->request->status = system->dirs.AddDirectory(cur->request->item, add_to_dir_tab);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
system->RedirectTo(request->item);
|
||||
system->RedirectTo(cur->request->item);
|
||||
}
|
||||
else
|
||||
{
|
||||
log << log1 << "Content: PostFunMkdir: Error: " << request->status << logend;
|
||||
log << log1 << "Content: PostFunMkdir: Error: " << cur->request->status << logend;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentmkdir
|
||||
#define headerfilecmslucontentmkdir
|
||||
#ifndef headerfile_winix_functions_mkdir
|
||||
#define headerfile_winix_functions_mkdir
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -35,15 +35,15 @@ Item * last;
|
||||
Item * last_but_one = 0;
|
||||
size_t dir_tab_size;
|
||||
|
||||
last = request->dir_tab.back();
|
||||
dir_tab_size = request->dir_tab.size();
|
||||
last = cur->request->dir_tab.back();
|
||||
dir_tab_size = cur->request->dir_tab.size();
|
||||
|
||||
if( dir_tab_size <= 1 )
|
||||
return false; // you cannot move the root directory
|
||||
|
||||
last_but_one = request->dir_tab[dir_tab_size - 2];
|
||||
last_but_one = cur->request->dir_tab[dir_tab_size - 2];
|
||||
|
||||
if( request->method != Request::post )
|
||||
if( cur->request->method != Request::post )
|
||||
{
|
||||
// used in GET or HEAD
|
||||
// we don't now whether we move the last directory or the last but one
|
||||
@@ -56,7 +56,7 @@ size_t dir_tab_size;
|
||||
{
|
||||
// used in POST when the moving is performed
|
||||
|
||||
if( request->IsPostVar(L"onlycontent") )
|
||||
if( cur->request->IsPostVar(L"onlycontent") )
|
||||
return system->HasWriteAccess(*last);
|
||||
else
|
||||
return system->HasWriteAccess(*last_but_one);
|
||||
@@ -70,13 +70,13 @@ return true;
|
||||
|
||||
bool Mv::CheckAccessFrom()
|
||||
{
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
{
|
||||
// moving a file
|
||||
|
||||
if( !system->HasWriteAccess(*request->dir_tab.back()) )
|
||||
if( !system->HasWriteAccess(*cur->request->dir_tab.back()) )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -84,7 +84,7 @@ bool Mv::CheckAccessFrom()
|
||||
{
|
||||
if( !CheckAccessFromToDir() )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -99,7 +99,7 @@ bool Mv::CheckAccessTo()
|
||||
!system->HasReadExecAccessToPath(dir_tab) ||
|
||||
!system->HasWriteAccess(*dir_tab.back()) )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -112,14 +112,14 @@ return true;
|
||||
|
||||
bool Mv::ParseDir()
|
||||
{
|
||||
const std::wstring & new_dir = request->PostVar(L"to");
|
||||
int res = system->dirs.FollowLink(request->dir_tab, new_dir, dir_tab, file);
|
||||
const std::wstring & new_dir = cur->request->PostVar(L"to");
|
||||
int res = system->dirs.FollowLink(cur->request->dir_tab, new_dir, dir_tab, file);
|
||||
|
||||
if( res == 3 )
|
||||
request->status = WINIX_ERR_NO_ROOT_DIR;
|
||||
cur->request->status = WINIX_ERR_NO_ROOT_DIR;
|
||||
else
|
||||
if( res != 0 && res != 1 )
|
||||
request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
|
||||
return res == 0 || res == 1;
|
||||
}
|
||||
@@ -142,7 +142,7 @@ bool Mv::MoveStaticFile(const std::wstring & from, const std::wstring & to)
|
||||
else
|
||||
{
|
||||
log << log1 << "Mv: can't move a file from: " << from << ", to: " << to << logend;
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -161,13 +161,13 @@ bool res1, res2, res3, res4, res5;
|
||||
|
||||
if( !res1 || !res2 || !res3 || !res4 || !res5 )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
if( MoveStaticFile(old_path, new_path) )
|
||||
{
|
||||
request->status = db->EditFileById(item, item.id);
|
||||
cur->request->status = db->EditFileById(item, item.id);
|
||||
|
||||
if( item.has_thumb )
|
||||
MoveStaticFile(old_path_thumb, new_path_thumb);
|
||||
@@ -189,9 +189,9 @@ void Mv::MoveFileOrSymlink(Item & item)
|
||||
}
|
||||
|
||||
item.parent_id = dir_tab.back()->id;
|
||||
request->status = db->EditParentUrlById(item, item.id);
|
||||
cur->request->status = db->EditParentUrlById(item, item.id);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
if( item.type == Item::file )
|
||||
log << log3 << "Mv: file: ";
|
||||
@@ -280,13 +280,13 @@ void Mv::MoveDir(Item & dir)
|
||||
if( dst_dir_id == dir.id || system->dirs.HasParent(dst_dir_id, dir.id) )
|
||||
{
|
||||
log << log1 << "Mv: cannot move directory to inside it" << logend;
|
||||
request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
return;
|
||||
}
|
||||
|
||||
if( !system->dirs.ChangeParent(dir.id, dst_dir_id) )
|
||||
{
|
||||
request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -299,9 +299,9 @@ void Mv::MoveDir(Item & dir)
|
||||
file.clear();
|
||||
}
|
||||
|
||||
request->status = db->EditParentUrlById(dir, dir.id);
|
||||
cur->request->status = db->EditParentUrlById(dir, dir.id);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
log << log3 << "Mv: directory: " << old_url << " was moved to: ";
|
||||
system->dirs.LogDir(dir_tab);
|
||||
@@ -334,13 +334,13 @@ return false;
|
||||
|
||||
void Mv::PostMoveFile()
|
||||
{
|
||||
if( IsTheSameFile(request->item) )
|
||||
if( IsTheSameFile(cur->request->item) )
|
||||
return;
|
||||
|
||||
MoveFileOrSymlink(request->item);
|
||||
MoveFileOrSymlink(cur->request->item);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
system->RedirectTo(request->item);
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectTo(cur->request->item);
|
||||
}
|
||||
|
||||
|
||||
@@ -349,14 +349,14 @@ void Mv::PostMoveDirContent()
|
||||
{
|
||||
if( !file.empty() )
|
||||
{
|
||||
request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_DIR;
|
||||
return;
|
||||
}
|
||||
|
||||
if( request->dir_tab.back()->id == dir_tab.back()->id )
|
||||
if( cur->request->dir_tab.back()->id == dir_tab.back()->id )
|
||||
return; // nothing to do
|
||||
|
||||
MoveDirContent(*request->dir_tab.back());
|
||||
MoveDirContent(*cur->request->dir_tab.back());
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
|
||||
@@ -364,7 +364,7 @@ void Mv::PostMoveDirContent()
|
||||
|
||||
void Mv::PostMoveDir()
|
||||
{
|
||||
Item & last_dir = *request->dir_tab.back();
|
||||
Item & last_dir = *cur->request->dir_tab.back();
|
||||
Item & new_dir = *dir_tab.back();
|
||||
|
||||
if( file.empty() && new_dir.id == last_dir.id )
|
||||
@@ -372,7 +372,7 @@ void Mv::PostMoveDir()
|
||||
|
||||
MoveDir(last_dir);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
|
||||
@@ -387,13 +387,13 @@ void Mv::MakePost()
|
||||
{
|
||||
Prepare();
|
||||
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
{
|
||||
PostMoveFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
if( request->IsPostVar(L"onlycontent") )
|
||||
if( cur->request->IsPostVar(L"onlycontent") )
|
||||
PostMoveDirContent();
|
||||
else
|
||||
PostMoveDir();
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentmv
|
||||
#define headerfilecmslucontentmv
|
||||
#ifndef headerfile_winix_functions_mv
|
||||
#define headerfile_winix_functions_mv
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -21,14 +21,14 @@ Node::Node()
|
||||
|
||||
void Node::MakeGet()
|
||||
{
|
||||
if( request->param_tab.empty() )
|
||||
if( cur->request->param_tab.empty() )
|
||||
{
|
||||
//request->status = Error
|
||||
//cur->request->status = Error
|
||||
//!!zglosic 404
|
||||
return;
|
||||
}
|
||||
|
||||
long id = Tol(request->param_tab[0].name);
|
||||
long id = Tol(cur->request->param_tab[0].name);
|
||||
system->RedirectTo(id);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentnode
|
||||
#define headerfilecmslucontentnode
|
||||
#ifndef headerfile_winix_functions_node
|
||||
#define headerfile_winix_functions_node
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ Priv::Priv()
|
||||
|
||||
void Priv::MakePost()
|
||||
{
|
||||
priv_changer.SetRequest(request);
|
||||
priv_changer.SetCur(cur);
|
||||
priv_changer.SetSystem(system);
|
||||
priv_changer.SetDb(db);
|
||||
|
||||
@@ -33,7 +33,7 @@ void Priv::MakePost()
|
||||
|
||||
void Priv::MakeGet()
|
||||
{
|
||||
priv_changer.SetRequest(request);
|
||||
priv_changer.SetCur(cur);
|
||||
priv_changer.SetSystem(system);
|
||||
priv_changer.SetDb(db);
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentpriv
|
||||
#define headerfilecmslucontentpriv
|
||||
#ifndef headerfile_winix_functions_priv
|
||||
#define headerfile_winix_functions_priv
|
||||
|
||||
#include "functionbase.h"
|
||||
#include "privchanger.h"
|
||||
|
||||
@@ -10,9 +10,9 @@
|
||||
#include "privchanger.h"
|
||||
|
||||
|
||||
void PrivChanger::SetRequest(Request * prequest)
|
||||
void PrivChanger::SetCur(Cur * pcur)
|
||||
{
|
||||
request = prequest;
|
||||
cur = pcur;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,9 +34,9 @@ bool PrivChanger::CheckAccess()
|
||||
// but we cannot use parameter 'r' on files
|
||||
// and only logged users can change permissions
|
||||
|
||||
if( !request->session->puser || (request->is_item && request->IsParam(L"r")) )
|
||||
if( !cur->session->puser || (cur->request->is_item && cur->request->IsParam(L"r")) )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ void PrivChanger::ChangePriv(Item & item, long user_id, long group_id, int privi
|
||||
return;
|
||||
}
|
||||
|
||||
request->status = db->EditPrivById(item, item.id);
|
||||
cur->request->status = db->EditPrivById(item, item.id);
|
||||
}
|
||||
|
||||
|
||||
@@ -174,12 +174,12 @@ void PrivChanger::PrivFilesInDir(long parent_id)
|
||||
iq.WhereParentId(parent_id);
|
||||
iq.WhereType(Item::dir, false);
|
||||
|
||||
db->GetItems(request->item_tab, iq);
|
||||
db->GetItems(cur->request->item_tab, iq);
|
||||
|
||||
|
||||
std::vector<Item>::iterator i = request->item_tab.begin();
|
||||
std::vector<Item>::iterator i = cur->request->item_tab.begin();
|
||||
|
||||
for( ; i != request->item_tab.end() ; ++i)
|
||||
for( ; i != cur->request->item_tab.end() ; ++i)
|
||||
{
|
||||
PrivLog(L"changed file: ", -1, i->url);
|
||||
ChangePriv(*i, user_id_file, group_id_file, priv_file);
|
||||
@@ -210,9 +210,9 @@ void PrivChanger::PrivDir(long parent_id)
|
||||
void PrivChanger::ReadPriv(const wchar_t * user_in, const wchar_t * group_in, const wchar_t * priv_in,
|
||||
long & user_id, long & group_id, int & priv)
|
||||
{
|
||||
const std::wstring & user_str = request->PostVar(user_in);
|
||||
const std::wstring & group_str = request->PostVar(group_in);
|
||||
const std::wstring & priv_str = request->PostVar(priv_in);
|
||||
const std::wstring & user_str = cur->request->PostVar(user_in);
|
||||
const std::wstring & group_str = cur->request->PostVar(group_in);
|
||||
const std::wstring & priv_str = cur->request->PostVar(priv_in);
|
||||
|
||||
if( change_owner )
|
||||
{
|
||||
@@ -234,18 +234,18 @@ void PrivChanger::PrivDir()
|
||||
PrivLogStart(L"Content: changes for dirs: ", user_id_dir, group_id_dir, priv_dir);
|
||||
|
||||
|
||||
if( request->IsPostVar(L"changecurrentdir") )
|
||||
if( cur->request->IsPostVar(L"changecurrentdir") )
|
||||
{
|
||||
Item & last_dir = *request->dir_tab.back();
|
||||
Item & last_dir = *cur->request->dir_tab.back();
|
||||
PrivLog(L"changed dir: ", last_dir.id, last_dir.url);
|
||||
ChangePriv(*request->dir_tab.back(), user_id_dir, group_id_dir, priv_dir);
|
||||
ChangePriv(*cur->request->dir_tab.back(), user_id_dir, group_id_dir, priv_dir);
|
||||
}
|
||||
|
||||
|
||||
subdirectories = request->IsPostVar(L"changesubdirs");
|
||||
subdirectories = cur->request->IsPostVar(L"changesubdirs");
|
||||
|
||||
// go through all directories
|
||||
PrivDir(request->dir_tab.back()->id);
|
||||
PrivDir(cur->request->dir_tab.back()->id);
|
||||
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
@@ -258,14 +258,14 @@ void PrivChanger::PrivOneItem()
|
||||
ReadPriv(L"user", L"group", L"privileges", user_id_file, group_id_file, priv_file);
|
||||
PrivLogStart(L"Content: changes: ", user_id_file, group_id_file, priv_file);
|
||||
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
{
|
||||
ChangePriv(request->item, user_id_file, group_id_file, priv_file);
|
||||
system->RedirectTo(request->item);
|
||||
ChangePriv(cur->request->item, user_id_file, group_id_file, priv_file);
|
||||
system->RedirectTo(cur->request->item);
|
||||
}
|
||||
else
|
||||
{
|
||||
ChangePriv(*request->dir_tab.back(), user_id_file, group_id_file, priv_file);
|
||||
ChangePriv(*cur->request->dir_tab.back(), user_id_file, group_id_file, priv_file);
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
}
|
||||
@@ -280,7 +280,7 @@ void PrivChanger::Change(bool change_owner_, bool change_priv_)
|
||||
change_owner = change_owner_;
|
||||
change_priv = change_priv_;
|
||||
|
||||
if( request->IsParam(L"r") )
|
||||
if( cur->request->IsParam(L"r") )
|
||||
{
|
||||
PrivDir();
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentprivchanger
|
||||
#define headerfilecmslucontentprivchanger
|
||||
#ifndef headerfile_winix_functions_privchanger
|
||||
#define headerfile_winix_functions_privchanger
|
||||
|
||||
|
||||
#include "core/request.h"
|
||||
@@ -24,13 +24,13 @@ public:
|
||||
bool CheckAccess();
|
||||
void Change(bool change_owner_, bool change_priv_);
|
||||
|
||||
void SetRequest(Request * prequest);
|
||||
void SetCur(Cur * pcur);
|
||||
void SetSystem(System * psystem);
|
||||
void SetDb(Db * pdb);
|
||||
|
||||
private:
|
||||
|
||||
Request * request;
|
||||
Cur * cur;
|
||||
System * system;
|
||||
Db * db;
|
||||
|
||||
|
||||
@@ -38,14 +38,14 @@ void Reload::MakeGet()
|
||||
{
|
||||
// !! temporarily only an admin has access
|
||||
|
||||
if( !request->session->puser || !request->session->puser->super_user )
|
||||
if( !cur->session->puser || !cur->session->puser->super_user )
|
||||
{
|
||||
log << log1 << "Content: Only an admin has access to reload function" << logend;
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
if( request->IsParam(L"templates") )
|
||||
if( cur->request->IsParam(L"templates") )
|
||||
FunReloadTemplates();
|
||||
}
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentreload
|
||||
#define headerfilecmslucontentreload
|
||||
#ifndef headerfile_winix_functions_reload
|
||||
#define headerfile_winix_functions_reload
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ bool Rm::HasAccess(const Item & item)
|
||||
{
|
||||
// !! temporarily (we're waiting for the sticky bit to be implemented)
|
||||
// not logged users cannot remove anything
|
||||
if( !request->session->puser )
|
||||
if( !cur->session->puser )
|
||||
return false;
|
||||
|
||||
if( item.parent_id == -1 )
|
||||
@@ -55,7 +55,7 @@ bool Rm::HasAccess(const Item & item)
|
||||
}
|
||||
|
||||
if( system->mounts.pmount->IsPar(system->mounts.MountParOnlyRootRemove()) )
|
||||
if( !request->session->puser || !request->session->puser->super_user )
|
||||
if( !cur->session->puser || !cur->session->puser->super_user )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -64,10 +64,10 @@ return true;
|
||||
|
||||
bool Rm::HasAccess()
|
||||
{
|
||||
if( !request->is_item )
|
||||
return HasAccess(*request->dir_tab.back());
|
||||
if( !cur->request->is_item )
|
||||
return HasAccess(*cur->request->dir_tab.back());
|
||||
else
|
||||
return HasAccess(request->item);
|
||||
return HasAccess(cur->request->item);
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -103,7 +103,7 @@ bool Rm::RemoveStaticFile(const std::wstring & path)
|
||||
else
|
||||
{
|
||||
log << log1 << "Rm: can't remove a file: " << path << logend;
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -128,7 +128,7 @@ void Rm::RemoveStaticFile(Item & item)
|
||||
}
|
||||
else
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -156,7 +156,7 @@ void Rm::RemoveFileOrSymlink(Item & item)
|
||||
}
|
||||
else
|
||||
{
|
||||
// request->status = WINIX_ERR_NO_ITEM;
|
||||
// cur->request->status = WINIX_ERR_NO_ITEM;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ void Rm::RemoveDir(const Item & dir)
|
||||
old_url = dir.url;
|
||||
RemoveDirTree(dir.id);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
log << log3 << "Rm: removed directory " << old_url << logend;
|
||||
}
|
||||
|
||||
@@ -207,9 +207,9 @@ void Rm::RemoveDir(const Item & dir)
|
||||
|
||||
void Rm::RemoveFile()
|
||||
{
|
||||
RemoveFileOrSymlink(request->item);
|
||||
RemoveFileOrSymlink(cur->request->item);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
|
||||
@@ -217,13 +217,13 @@ void Rm::RemoveFile()
|
||||
|
||||
void Rm::RemoveDirContent()
|
||||
{
|
||||
if( !request->IsParam(L"r") )
|
||||
if( !cur->request->IsParam(L"r") )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
content_dir_iq.WhereParentId(request->dir_tab.back()->id);
|
||||
content_dir_iq.WhereParentId(cur->request->dir_tab.back()->id);
|
||||
db->GetItems(item_tab, content_dir_iq);
|
||||
|
||||
for(size_t i=0 ; i<item_tab.size() ; ++i)
|
||||
@@ -234,7 +234,7 @@ void Rm::RemoveDirContent()
|
||||
RemoveFileOrSymlink(item_tab[i]);
|
||||
}
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
|
||||
@@ -242,17 +242,17 @@ void Rm::RemoveDirContent()
|
||||
|
||||
void Rm::RemoveDir()
|
||||
{
|
||||
if( !request->IsParam(L"r") || request->dir_tab.size() <= 1 )
|
||||
if( !cur->request->IsParam(L"r") || cur->request->dir_tab.size() <= 1 )
|
||||
{
|
||||
// we cannot remove the root directory (dir_tab.size()==1)
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
RemoveDir(*request->dir_tab.back());
|
||||
request->dir_tab.erase(--request->dir_tab.end());
|
||||
RemoveDir(*cur->request->dir_tab.back());
|
||||
cur->request->dir_tab.erase(--cur->request->dir_tab.end());
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectToLastDir();
|
||||
}
|
||||
|
||||
@@ -271,13 +271,13 @@ void Rm::MakePost()
|
||||
{
|
||||
Prepare();
|
||||
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
{
|
||||
RemoveFile();
|
||||
}
|
||||
else
|
||||
{
|
||||
if( request->IsPostVar(L"onlycontent") )
|
||||
if( cur->request->IsPostVar(L"onlycontent") )
|
||||
RemoveDirContent();
|
||||
else
|
||||
RemoveDir();
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentrm
|
||||
#define headerfilecmslucontentrm
|
||||
#ifndef headerfile_winix_functions_rm
|
||||
#define headerfile_winix_functions_rm
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -29,16 +29,16 @@ void Run::MakePost()
|
||||
|
||||
void Run::MakeGet()
|
||||
{
|
||||
if( !request->is_item )
|
||||
if( !cur->request->is_item )
|
||||
{
|
||||
log << log1 << "Content: Run function requires an item" << logend;
|
||||
request->status = WINIX_ERR_NO_ITEM;
|
||||
cur->request->status = WINIX_ERR_NO_ITEM;
|
||||
return;
|
||||
}
|
||||
|
||||
if( !system->HasReadExecAccess(request->item) )
|
||||
if( !system->HasReadExecAccess(cur->request->item) )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentrun
|
||||
#define headerfilecmslucontentrun
|
||||
#ifndef headerfile_winix_functions_run
|
||||
#define headerfile_winix_functions_run
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentspecialdefault
|
||||
#define headerfilecmslucontentspecialdefault
|
||||
#ifndef headerfile_winix_functions_specialdefault
|
||||
#define headerfile_winix_functions_specialdefault
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentstat
|
||||
#define headerfilecmslucontentstat
|
||||
#ifndef headerfile_winix_functions_stat
|
||||
#define headerfile_winix_functions_stat
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -23,18 +23,18 @@ Subject::Subject()
|
||||
bool Subject::SubjectCheckAccess()
|
||||
{
|
||||
// super user can always
|
||||
if( request->session->puser && request->session->puser->super_user )
|
||||
if( cur->session->puser && cur->session->puser->super_user )
|
||||
return true;
|
||||
|
||||
bool access;
|
||||
|
||||
if( request->is_item )
|
||||
access = system->HasWriteAccess(request->item);
|
||||
if( cur->request->is_item )
|
||||
access = system->HasWriteAccess(cur->request->item);
|
||||
else
|
||||
access = system->HasWriteAccess(*request->dir_tab.back());
|
||||
access = system->HasWriteAccess(*cur->request->dir_tab.back());
|
||||
|
||||
if( !access )
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
|
||||
return access;
|
||||
}
|
||||
@@ -43,9 +43,9 @@ return access;
|
||||
|
||||
void Subject::EditDirSubject()
|
||||
{
|
||||
Item & dir = *request->dir_tab.back();
|
||||
Item & dir = *cur->request->dir_tab.back();
|
||||
|
||||
request->PostVar(L"subject", dir.subject);
|
||||
cur->request->PostVar(L"subject", dir.subject);
|
||||
db->EditSubjectById(dir, dir.id);
|
||||
|
||||
system->RedirectToLastDir();
|
||||
@@ -55,10 +55,10 @@ void Subject::EditDirSubject()
|
||||
|
||||
void Subject::EditFileSubject()
|
||||
{
|
||||
request->PostVar(L"subject", request->item.subject);
|
||||
db->EditSubjectById(request->item, request->item.id);
|
||||
cur->request->PostVar(L"subject", cur->request->item.subject);
|
||||
db->EditSubjectById(cur->request->item, cur->request->item.id);
|
||||
|
||||
system->RedirectTo(request->item);
|
||||
system->RedirectTo(cur->request->item);
|
||||
}
|
||||
|
||||
|
||||
@@ -69,7 +69,7 @@ void Subject::MakePost()
|
||||
if( !SubjectCheckAccess() )
|
||||
return;
|
||||
|
||||
if( request->is_item )
|
||||
if( cur->request->is_item )
|
||||
EditFileSubject();
|
||||
else
|
||||
EditDirSubject();
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentsubject
|
||||
#define headerfilecmslucontentsubject
|
||||
#ifndef headerfile_winix_functions_subject
|
||||
#define headerfile_winix_functions_subject
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -29,14 +29,14 @@ bool Template::HasAccess()
|
||||
if( config->template_only_root_use_template_fun )
|
||||
{
|
||||
// only root is allowed to change the template
|
||||
return (request->session->puser && request->session->puser->super_user);
|
||||
return (cur->session->puser && cur->session->puser->super_user);
|
||||
}
|
||||
|
||||
|
||||
if( request->is_item )
|
||||
return system->HasWriteAccess(request->item);
|
||||
if( cur->request->is_item )
|
||||
return system->HasWriteAccess(cur->request->item);
|
||||
else
|
||||
return system->HasWriteAccess(*request->dir_tab.back());
|
||||
return system->HasWriteAccess(*cur->request->dir_tab.back());
|
||||
}
|
||||
|
||||
|
||||
@@ -83,9 +83,9 @@ void Template::ChangeTemplate(Item & item)
|
||||
{
|
||||
if( html_template != item.html_template )
|
||||
{
|
||||
request->status = db->EditTemplateItemById(item.id, html_template);
|
||||
cur->request->status = db->EditTemplateItemById(item.id, html_template);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
item.html_template = html_template;
|
||||
PutLog(item);
|
||||
@@ -96,8 +96,8 @@ void Template::ChangeTemplate(Item & item)
|
||||
|
||||
void Template::MakePost()
|
||||
{
|
||||
CreateTemplateFileName(request->PostVar(L"template"));
|
||||
ChangeTemplate(*request->last_item);
|
||||
CreateTemplateFileName(cur->request->PostVar(L"template"));
|
||||
ChangeTemplate(*cur->request->last_item);
|
||||
|
||||
system->RedirectToLastItem();
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontenttemplate
|
||||
#define headerfilecmslucontenttemplate
|
||||
#ifndef headerfile_winix_functions_template
|
||||
#define headerfile_winix_functions_template
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontenttinymce
|
||||
#define headerfilecmslucontenttinymce
|
||||
#ifndef headerfile_winix_functions_tinymce
|
||||
#define headerfile_winix_functions_tinymce
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentuname
|
||||
#define headerfilecmslucontentuname
|
||||
#ifndef headerfile_winix_functions_uname
|
||||
#define headerfile_winix_functions_uname
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ bool Upload::HasAccess(const Item & item)
|
||||
return false;
|
||||
}
|
||||
|
||||
if( request->session->puser && request->session->puser->super_user )
|
||||
if( cur->session->puser && cur->session->puser->super_user )
|
||||
// super user can use upload everywhere
|
||||
return true;
|
||||
|
||||
@@ -58,7 +58,7 @@ return true;
|
||||
|
||||
bool Upload::HasAccess()
|
||||
{
|
||||
if( request->is_item || !HasAccess(*request->dir_tab.back()) )
|
||||
if( cur->request->is_item || !HasAccess(*cur->request->dir_tab.back()) )
|
||||
return false;
|
||||
|
||||
return true;
|
||||
@@ -71,7 +71,7 @@ bool Upload::UploadSaveStaticFile(const Item & item, const std::wstring & tmp_fi
|
||||
{
|
||||
if( !system->MakeFilePath(item, path, false, true, config->upload_dirs_chmod) )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -83,7 +83,7 @@ bool Upload::UploadSaveStaticFile(const Item & item, const std::wstring & tmp_fi
|
||||
else
|
||||
{
|
||||
log << log1 << "Upload: can't move the tmp file from: " << tmp_filename << ", to: " << path << logend;
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -92,15 +92,15 @@ bool Upload::UploadSaveStaticFile(const Item & item, const std::wstring & tmp_fi
|
||||
void Upload::UploadFile(Item & item, const std::wstring & tmp_filename)
|
||||
{
|
||||
// we should add the file beforehand to get the proper item.id
|
||||
request->status = system->AddFile(item);
|
||||
cur->request->status = system->AddFile(item);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
{
|
||||
if( system->CreateNewFile(item) )
|
||||
{
|
||||
if( UploadSaveStaticFile(item, tmp_filename) )
|
||||
{
|
||||
request->status = db->EditFileById(item, item.id);
|
||||
cur->request->status = db->EditFileById(item, item.id);
|
||||
|
||||
if( item.file_type == WINIX_ITEM_FILETYPE_IMAGE && config->create_thumb )
|
||||
system->thumb.CreateThumb(item, config->thumb_cx, config->thumb_cy, config->thumb_mode);
|
||||
@@ -118,15 +118,15 @@ bool Upload::FunUploadCheckAbuse()
|
||||
{
|
||||
if( !system->rebus.CheckRebus() )
|
||||
{
|
||||
request->status = WINIX_ERR_INCORRECT_REBUS;
|
||||
cur->request->status = WINIX_ERR_INCORRECT_REBUS;
|
||||
return false;
|
||||
}
|
||||
|
||||
functions->CheckGetPostTimes(4);
|
||||
|
||||
if( request->session->spam_score > 0 )
|
||||
if( cur->session->spam_score > 0 )
|
||||
{
|
||||
request->status = WINIX_ERR_SPAM;
|
||||
cur->request->status = WINIX_ERR_SPAM;
|
||||
log << log1 << "Content: ignoring due to suspected spamming" << logend;
|
||||
return false;
|
||||
}
|
||||
@@ -140,24 +140,24 @@ return true;
|
||||
|
||||
void Upload::UploadMulti()
|
||||
{
|
||||
request->item.Clear(); // clearing and setting date
|
||||
request->item.parent_id = request->dir_tab.back()->id;
|
||||
request->item.type = Item::file;
|
||||
request->item.privileges = 0644; // !! tymczasowo
|
||||
functions->SetUser(request->item);
|
||||
cur->request->item.Clear(); // clearing and setting date
|
||||
cur->request->item.parent_id = cur->request->dir_tab.back()->id;
|
||||
cur->request->item.type = Item::file;
|
||||
cur->request->item.privileges = 0644; // !! tymczasowo
|
||||
functions->SetUser(cur->request->item);
|
||||
|
||||
PostFileTab::iterator i = request->post_file_tab.begin();
|
||||
PostFileTab::iterator i = cur->request->post_file_tab.begin();
|
||||
|
||||
for( ; i != request->post_file_tab.end() ; ++i)
|
||||
for( ; i != cur->request->post_file_tab.end() ; ++i)
|
||||
{
|
||||
const wchar_t * file_name = i->second.filename.c_str();
|
||||
|
||||
request->item.subject = file_name;
|
||||
request->item.url = file_name;
|
||||
request->item.file_type = SelectFileType(file_name);
|
||||
cur->request->item.subject = file_name;
|
||||
cur->request->item.url = file_name;
|
||||
cur->request->item.file_type = SelectFileType(file_name);
|
||||
|
||||
functions->PrepareUrl(request->item);
|
||||
UploadFile(request->item, i->second.tmp_filename);
|
||||
functions->PrepareUrl(cur->request->item);
|
||||
UploadFile(cur->request->item, i->second.tmp_filename);
|
||||
}
|
||||
|
||||
system->RedirectToLastDir();
|
||||
@@ -166,31 +166,31 @@ void Upload::UploadMulti()
|
||||
|
||||
void Upload::UploadSingle()
|
||||
{
|
||||
const std::wstring & new_subject = request->PostVar(L"subject");
|
||||
const std::wstring & new_url = request->PostVar(L"url");
|
||||
const std::wstring & new_subject = cur->request->PostVar(L"subject");
|
||||
const std::wstring & new_url = cur->request->PostVar(L"url");
|
||||
bool has_subject = !new_subject.empty();
|
||||
bool has_url = !new_url.empty();
|
||||
|
||||
functions->ReadItem(request->item, Item::file); // ReadItem() changes the url if it is empty
|
||||
functions->SetUser(request->item);
|
||||
request->item.privileges = 0644; // !! tymczasowo
|
||||
functions->ReadItem(cur->request->item, Item::file); // ReadItem() changes the url if it is empty
|
||||
functions->SetUser(cur->request->item);
|
||||
cur->request->item.privileges = 0644; // !! tymczasowo
|
||||
|
||||
const wchar_t * file_name = request->post_file_tab.begin()->second.filename.c_str();
|
||||
request->item.file_type = SelectFileType(file_name);
|
||||
const wchar_t * file_name = cur->request->post_file_tab.begin()->second.filename.c_str();
|
||||
cur->request->item.file_type = SelectFileType(file_name);
|
||||
|
||||
if( !has_subject )
|
||||
request->item.subject = file_name;
|
||||
cur->request->item.subject = file_name;
|
||||
|
||||
if( !has_url )
|
||||
{
|
||||
request->item.url = file_name;
|
||||
functions->PrepareUrl(request->item);
|
||||
cur->request->item.url = file_name;
|
||||
functions->PrepareUrl(cur->request->item);
|
||||
}
|
||||
|
||||
UploadFile(request->item, request->post_file_tab.begin()->second.tmp_filename);
|
||||
UploadFile(cur->request->item, cur->request->post_file_tab.begin()->second.tmp_filename);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
system->RedirectTo(request->item, L"/cat");
|
||||
if( cur->request->status == WINIX_ERR_OK )
|
||||
system->RedirectTo(cur->request->item, L"/cat");
|
||||
}
|
||||
|
||||
|
||||
@@ -198,16 +198,16 @@ void Upload::UploadSingle()
|
||||
// !! dodac usuwanie plikow statycznych przez rm
|
||||
void Upload::MakePost()
|
||||
{
|
||||
if( request->post_file_tab.empty() )
|
||||
if( cur->request->post_file_tab.empty() )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
}
|
||||
|
||||
if( !FunUploadCheckAbuse() )
|
||||
return;
|
||||
|
||||
if( request->post_file_tab.size() > 1 )
|
||||
if( cur->request->post_file_tab.size() > 1 )
|
||||
UploadMulti();
|
||||
else
|
||||
UploadSingle();
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentupload
|
||||
#define headerfilecmslucontentupload
|
||||
#ifndef headerfile_winix_functions_upload
|
||||
#define headerfile_winix_functions_upload
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentuptime
|
||||
#define headerfilecmslucontentuptime
|
||||
#ifndef headerfile_winix_functions_uptime
|
||||
#define headerfile_winix_functions_uptime
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentvim
|
||||
#define headerfilecmslucontentvim
|
||||
#ifndef headerfile_winix_functions_vim
|
||||
#define headerfile_winix_functions_vim
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontentwho
|
||||
#define headerfilecmslucontentwho
|
||||
#ifndef headerfile_winix_functions_who
|
||||
#define headerfile_winix_functions_who
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user