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:
@@ -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();
|
||||
|
Reference in New Issue
Block a user