winix/functions/download.cpp

55 lines
1011 B
C++
Executable File

/*
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2008-2010, Tomasz Sowa
* All rights reserved.
*
*/
#include "download.h"
namespace Fun
{
Download::Download()
{
fun.url = L"download";
}
void Download::MakeGet()
{
// !! moze wywalic to no_item i wszedzie w takich miejscach dac poprostu permission_denied?
if( !request->is_item )
{
log << log1 << "Content: download function requires an item" << logend;
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() )
{
request->status = WINIX_ERR_PERMISSION_DENIED;
return;
}
request->send_as_attachment = request->IsParam(L"attachment");
if( request->item.has_thumb && request->IsParam(L"thumb") )
system->MakeFilePath(request->item, request->x_sendfile, true);
else
system->MakeFilePath(request->item, request->x_sendfile);
}
} // namespace