Files
winix/functions/subject.cpp
Tomasz Sowa 915cabdf97 changed: added Cur structure
we have there two pointers: 
 Request * request;
 Session * session;
these are the current request and the current session


the session GC was moved to SessionManager (was in SessionContainer)



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@708 e52654a7-88a9-db11-a3e9-0013d4bc506e
2011-01-23 14:15:30 +00:00

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( cur->session->puser && cur->session->puser->super_user )
return true;
bool access;
if( cur->request->is_item )
access = system->HasWriteAccess(cur->request->item);
else
access = system->HasWriteAccess(*cur->request->dir_tab.back());
if( !access )
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
return access;
}
void Subject::EditDirSubject()
{
Item & dir = *cur->request->dir_tab.back();
cur->request->PostVar(L"subject", dir.subject);
db->EditSubjectById(dir, dir.id);
system->RedirectToLastDir();
}
void Subject::EditFileSubject()
{
cur->request->PostVar(L"subject", cur->request->item.subject);
db->EditSubjectById(cur->request->item, cur->request->item.id);
system->RedirectTo(cur->request->item);
}
void Subject::MakePost()
{
if( !SubjectCheckAccess() )
return;
if( cur->request->is_item )
EditFileSubject();
else
EditDirSubject();
}
void Subject::MakeGet()
{
SubjectCheckAccess();
}
} // namespace