/* * 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/data.h" void Content::PostFunMkdir(bool add_to_dir_table) { 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 // dates (creation and modification) is set by the Item() constructor 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 ) { Item * pdir = data.dirs.AddDir(item); if( add_to_dir_table ) request.dir_table.push_back(pdir); 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; } }