Files
winix/content/createthread.cpp
Tomasz Sowa 2dd3fc7df8 changed: the way of building
core.a content.a templates.a confparser.a have gone away
	 there is only: cmslu.a now (in the global directory 'cmslu')
changed: the way of building
         in Makefile(s) we dont longer use explicitly a variable 'o = file1.o file2.o...'
	 it was put into Makefile.o.dep and is generated automatically 
         when 'make depend' is invoked
changed: some #include "..." directives were put from *.h to *.cpp files
         fewer dependences


git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@501 e52654a7-88a9-db11-a3e9-0013d4bc506e
2009-04-21 20:50:55 +00:00

83 lines
1.4 KiB
C++
Executable File

/*
* This file is a part of CMSLU -- Content Management System like Unix
* and is not publicly distributed
*
* Copyright (c) 2008-2009, Tomasz Sowa
* All rights reserved.
*
*/
#include "content.h"
#include "../core/request.h"
#include "../core/error.h"
#include "../core/db.h"
#include "../core/mount.h"
#include "../core/data.h"
bool Content::FunCreateThreadCheckAccess()
{
Mount mount = data.mounts.GetCurrentMountPoint();
if( mount.type != Mount::thread )
{
request.status = Error::permision_denied;
return false;
}
if( !request.HasWriteAccess(*request.dir_table.back()) || request.is_item )
{
request.status = Error::permision_denied;
return false;
}
return true;
}
void Content::PostFunCreateThread()
{
if( !FunCreateThreadCheckAccess() )
return;
PostFunMkdir(true);
if( request.session->done_status == Error::ok )
{
request.thread.dir_id = request.dir_table.back()->id;
request.thread.subject = request.PostVar("subject");
request.thread.closed = false;
request.session->done_status = db.AddThread(request.thread);
if( request.session->done_status == Error::ok )
{
PostFunEmacs();
if( request.session->done_status == Error::ok )
{
request.session->done = Done::added_thread;
RedirectTo(*request.dir_table.back());
}
}
}
}
void Content::FunCreateThread()
{
FunCreateThreadCheckAccess();
}