added: forum

added: mount params can have arguments (in parentheses)
added: mount params: withheader, withinfo, restrictcreatethread, only_root_can_remove,
       can_use_emacs_on(level), can_use_mkdir_on(level), 
added: table Item has 'subject' column now
removed: column 'subject' from table Content




git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@505 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2009-06-05 20:29:06 +00:00
parent 3d001e7458
commit 1eb42446f8
38 changed files with 1357 additions and 369 deletions

View File

@@ -15,18 +15,9 @@
#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 )
if( !request.CanCreateThread() )
{
request.status = Error::permision_denied;
return false;
@@ -42,28 +33,35 @@ void Content::PostFunCreateThread()
if( !FunCreateThreadCheckAccess() )
return;
request.post_table.insert( std::make_pair(std::string("url"), std::string()) ); // !! tymczasowo, zrobic aby mkdir i emacs nie rzucaly wyjatkiem gdy nie ma url zdefiniowanego
PostFunMkdir(true);
request.thread.parent_id = request.dir_table.back()->id;
PostFunMkdir(true, 0777); // !! tymczasowo 777 aby wszyscy mogli wysylac posty
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);
PostFunEmacs();
if( request.session->done_status == Error::ok )
{
request.thread.dir_id = request.dir_table.back()->id;
request.thread.closed = false;
request.thread.items = 1;
request.thread.last_item = request.item; // set by PostFunEmacs()
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());
}
request.session->done = Done::added_thread;
RedirectTo(*request.dir_table.back());
}
}
}
@@ -75,6 +73,8 @@ void Content::PostFunCreateThread()
void Content::FunCreateThread()
{
FunCreateThreadCheckAccess();
TemplatesFunctions::thread_show_edit_subject_var = true; // !! tymczasowe rozwiazanie
}