added: 'rm' function can work with tickets

git-svn-id: svn://ttmath.org/publicrep/winix/trunk@565 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2010-02-06 14:08:44 +00:00
parent ed9feaf542
commit 0e50977779
16 changed files with 137 additions and 38 deletions

View File

@@ -15,10 +15,31 @@
bool Content::FunRmCheckAccess()
{
if( !request.is_item )
{
if( !request.CanRemove(*request.dir_table.back()) )
{
request.status = Error::permission_denied;
return false;
}
}
else
if( !request.CanRemove(request.item) )
{
request.status = Error::permission_denied;
return false;
}
return true;
}
void Content::FunRmDirRecursive()
{
data.dirs.MakePath(request.dir_table.back()->id, request.session->dir_old);
// this method deletes recursively all directories
data.dirs.DeleteDir(request.dir_table.back()->id);
@@ -53,12 +74,6 @@ void Content::FunRmDirRecursive()
void Content::FunRmDir()
{
if( !request.CanRemove(*request.dir_table.back()) )
{
request.status = Error::permission_denied;
return;
}
if( request.param_table.empty() )
request.status = Error::permission_denied;
else
@@ -72,27 +87,17 @@ void Content::FunRmDir()
}
void Content::FunRm()
{
if( !request.is_item )
{
FunRmDir();
if( !FunRmCheckAccess() )
return;
}
if( !request.CanRemove(request.item) )
{
request.status = Error::permission_denied;
return;
}
if( !request.is_item )
return FunRmDir();
if( request.param_table.empty() )
{
// we'll put some information about the deleted item (on the next page)
request.session->item = request.item;
// !! zmienic interfejs dla db.DelItem
if( db.DelItem( request.item ) )
{
request.session->done_status = Error::ok;
@@ -101,6 +106,10 @@ void Content::FunRm()
if( data.mounts.pmount->type == Mount::thread )
db.EditThreadRemoveItem(request.item.parent_id);
else
if( data.mounts.pmount->type == Mount::ticket )
db.EditTicketRemoveItem(request.item.id);
}
else
{