diff --git a/content/mkdir.cpp b/content/mkdir.cpp new file mode 100755 index 0000000..83d5e26 --- /dev/null +++ b/content/mkdir.cpp @@ -0,0 +1,76 @@ +/* + * This file is a part of CMSLU -- Content Management System like Unix + * and is not publicly distributed + * + * Copyright (c) 2008, Tomasz Sowa + * All rights reserved. + * + */ + +#include "content.h" + + + +void Content::PostFunMkdir() +{ + if( !request.HasWriteAccess(*request.dir_table.back()) ) + { + request.status = Error::permision_denied; + return; + } + + Item item; + request.session->done = Done::added_dir; + + try + { + item.type = Item::dir; + item.url = request.PostVar("url"); + item.parent_id = request.dir_table.back()->id; + item.user_id = request.session->puser ? request.session->puser->id : -1; + item.group_id = -1; + item.privileges = 0755; // !! tymczasowo, bedzie uzyte umask + item.default_item = -1; // !! tymczasowo, bedzie formularz z wprowadzeniem + + PrepareUrl(item); + + request.session->done_status = db.AddItem(item); + + } + catch(const Error & e) + { + request.session->done_status = e; + } + + + if( request.session->done_status == Error::ok ) + { + data.dirs.AddDir(item); + + request.session->item = item; + request.session->done_timer = 2; + RedirectTo(item); + } + else + { + log << log1 << "Content: PostFunMkdir: Error: " << request.session->done_status << logend; + } +} + + + + +void Content::FunMkdir() +{ + if( !request.HasWriteAccess(*request.dir_table.back()) ) + { + request.status = Error::permision_denied; + return; + } + +} + + + + +