/* * This file is a part of Winix * and is not publicly distributed * * Copyright (c) 2008-2010, Tomasz Sowa * All rights reserved. * */ #include "content.h" #include "../core/request.h" #include "../core/db.h" #include "../core/log.h" bool Content::SubjectCheckAccess() { // super user can always if( request.session->puser && request.session->puser->super_user ) return true; bool access; if( request.is_item ) access = request.HasWriteAccess(request.item); else access = request.HasWriteAccess(*request.dir_table.back()); if( !access ) request.status = WINIX_ERR_PERMISSION_DENIED; return access; } void Content::EditDirSubject() { Item & dir = *request.dir_table.back(); request.PostVar("subject", dir.subject); db.EditSubjectById(dir, dir.id); RedirectToLastDir(); } void Content::EditFileSubject() { request.PostVar("subject", request.item.subject); db.EditSubjectById(request.item, request.item.id); RedirectTo(request.item); } void Content::PostFunSubject() { if( !SubjectCheckAccess() ) return; if( request.is_item ) EditFileSubject(); else EditDirSubject(); } void Content::FunSubject() { SubjectCheckAccess(); }