winix/functions/subject.cpp

89 lines
1.2 KiB
C++
Executable File

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