/* * 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(); }