/* * This file is a part of Winix * 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" #include "../core/notify.h" bool Content::FunMkdirCheckAccess() { if( request.is_item || !request.CanUseMkdir(*request.dir_table.back()) ) { request.status = WINIX_ERR_PERMISSION_DENIED; return false; } return true; } void Content::Mkdir(Item & item, bool add_to_dir_table) { request.session->done_status = db.AddItem(item); if( request.session->done_status == WINIX_ERR_OK ) { Item * pdir = data.dirs.AddDir(item); if( add_to_dir_table ) request.dir_table.push_back(pdir); } } void Content::PostFunMkdir(bool add_to_dir_table, int privileges) { if( !FunMkdirCheckAccess() ) return; ReadItem(request.item, Item::dir); request.item.privileges = privileges; request.session->done = Done::added_dir; Mkdir(request.item, add_to_dir_table); if( request.session->done_status == WINIX_ERR_OK ) { request.notify_code |= WINIX_NOTIFY_DIR_ADD; RedirectTo(request.item); } else { log << log1 << "Content: PostFunMkdir: Error: " << request.session->done_status << logend; } } void Content::FunMkdir() { FunMkdirCheckAccess(); }