some improvement in templates
(now we have O(1) time for selecting the right html template) added: winix function: template for selecting a template for an item (file or dir) git-svn-id: svn://ttmath.org/publicrep/winix/trunk@636 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
+39
-21
@@ -70,7 +70,7 @@ ckeditor.o: privchanger.h chown.h cp.h createthread.h createticket.h
|
||||
ckeditor.o: default.h download.h editticket.h emacs.h last.h login.h logout.h
|
||||
ckeditor.o: ls.h mkdir.h mv.h node.h priv.h reload.h rm.h run.h subject.h
|
||||
ckeditor.o: funthread.h ../core/thread.h funticket.h ../core/ticket.h
|
||||
ckeditor.o: tinymce.h uname.h upload.h uptime.h who.h
|
||||
ckeditor.o: template.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
cp.o: cp.h functionbase.h ../core/item.h ../core/db.h ../core/item.h
|
||||
cp.o: ../core/user.h ../core/group.h ../core/thread.h ../core/error.h
|
||||
cp.o: ../core/log.h ../core/dircontainer.h ../core/ugcontainer.h
|
||||
@@ -87,8 +87,8 @@ cp.o: ../core/system.h ../core/misc.h functions.h functionparser.h adduser.h
|
||||
cp.o: cat.h chmod.h privchanger.h chown.h ckeditor.h createthread.h
|
||||
cp.o: createticket.h default.h download.h editticket.h emacs.h last.h login.h
|
||||
cp.o: logout.h ls.h mkdir.h mv.h node.h priv.h reload.h rm.h run.h subject.h
|
||||
cp.o: funthread.h ../core/thread.h funticket.h ../core/ticket.h tinymce.h
|
||||
cp.o: uname.h upload.h uptime.h who.h
|
||||
cp.o: funthread.h ../core/thread.h funticket.h ../core/ticket.h template.h
|
||||
cp.o: tinymce.h uname.h upload.h uptime.h who.h
|
||||
createthread.o: createthread.h functionbase.h ../core/item.h ../core/db.h
|
||||
createthread.o: ../core/item.h ../core/user.h ../core/group.h
|
||||
createthread.o: ../core/thread.h ../core/error.h ../core/log.h
|
||||
@@ -108,7 +108,8 @@ createthread.o: privchanger.h chown.h ckeditor.h cp.h createticket.h
|
||||
createthread.o: default.h download.h editticket.h emacs.h last.h login.h
|
||||
createthread.o: logout.h ls.h mkdir.h mv.h node.h priv.h reload.h rm.h run.h
|
||||
createthread.o: subject.h funthread.h ../core/thread.h funticket.h
|
||||
createthread.o: ../core/ticket.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
createthread.o: ../core/ticket.h template.h tinymce.h uname.h upload.h
|
||||
createthread.o: uptime.h who.h
|
||||
createticket.o: createticket.h functionbase.h ../core/item.h ../core/db.h
|
||||
createticket.o: ../core/item.h ../core/user.h ../core/group.h
|
||||
createticket.o: ../core/thread.h ../core/error.h ../core/log.h
|
||||
@@ -128,7 +129,8 @@ createticket.o: adduser.h cat.h chmod.h privchanger.h chown.h ckeditor.h cp.h
|
||||
createticket.o: createthread.h default.h download.h editticket.h emacs.h
|
||||
createticket.o: last.h login.h logout.h ls.h mkdir.h mv.h node.h priv.h
|
||||
createticket.o: reload.h rm.h run.h subject.h funthread.h ../core/thread.h
|
||||
createticket.o: funticket.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
createticket.o: funticket.h template.h tinymce.h uname.h upload.h uptime.h
|
||||
createticket.o: who.h
|
||||
default.o: default.h functionbase.h ../core/item.h ../core/db.h
|
||||
default.o: ../core/item.h ../core/user.h ../core/group.h ../core/thread.h
|
||||
default.o: ../core/error.h ../core/log.h ../core/dircontainer.h
|
||||
@@ -173,8 +175,8 @@ editticket.o: privchanger.h chown.h ckeditor.h cp.h createthread.h
|
||||
editticket.o: createticket.h default.h download.h emacs.h last.h login.h
|
||||
editticket.o: logout.h ls.h mkdir.h mv.h node.h priv.h reload.h rm.h run.h
|
||||
editticket.o: subject.h funthread.h ../core/thread.h funticket.h
|
||||
editticket.o: ../core/ticket.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
editticket.o: readticket.h
|
||||
editticket.o: ../core/ticket.h template.h tinymce.h uname.h upload.h uptime.h
|
||||
editticket.o: who.h readticket.h
|
||||
emacs.o: emacs.h functionbase.h ../core/item.h ../core/db.h ../core/item.h
|
||||
emacs.o: ../core/user.h ../core/group.h ../core/thread.h ../core/error.h
|
||||
emacs.o: ../core/log.h ../core/dircontainer.h ../core/ugcontainer.h
|
||||
@@ -196,7 +198,7 @@ emacs.o: cat.h chmod.h privchanger.h chown.h ckeditor.h cp.h createthread.h
|
||||
emacs.o: createticket.h default.h download.h editticket.h last.h login.h
|
||||
emacs.o: logout.h ls.h mkdir.h mv.h node.h priv.h reload.h rm.h run.h
|
||||
emacs.o: subject.h funthread.h ../core/thread.h funticket.h ../core/ticket.h
|
||||
emacs.o: tinymce.h uname.h upload.h uptime.h who.h
|
||||
emacs.o: template.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
functionbase.o: functionbase.h ../core/item.h ../core/db.h ../core/item.h
|
||||
functionbase.o: ../core/user.h ../core/group.h ../core/thread.h
|
||||
functionbase.o: ../core/error.h ../core/log.h ../core/dircontainer.h
|
||||
@@ -216,7 +218,8 @@ functionbase.o: chown.h ckeditor.h cp.h createthread.h createticket.h
|
||||
functionbase.o: default.h download.h editticket.h emacs.h last.h login.h
|
||||
functionbase.o: logout.h ls.h mkdir.h mv.h node.h priv.h reload.h rm.h run.h
|
||||
functionbase.o: subject.h funthread.h ../core/thread.h funticket.h
|
||||
functionbase.o: ../core/ticket.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
functionbase.o: ../core/ticket.h template.h tinymce.h uname.h upload.h
|
||||
functionbase.o: uptime.h who.h
|
||||
functionparser.o: functionparser.h ../core/request.h ../core/requesttypes.h
|
||||
functionparser.o: ../core/session.h ../core/item.h ../core/error.h
|
||||
functionparser.o: ../core/log.h ../core/user.h ../core/plugindata.h
|
||||
@@ -237,7 +240,8 @@ functionparser.o: chown.h ckeditor.h cp.h createthread.h createticket.h
|
||||
functionparser.o: default.h download.h editticket.h emacs.h last.h login.h
|
||||
functionparser.o: logout.h ls.h mkdir.h mv.h node.h priv.h reload.h rm.h
|
||||
functionparser.o: run.h subject.h funthread.h ../core/thread.h funticket.h
|
||||
functionparser.o: ../core/ticket.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
functionparser.o: ../core/ticket.h template.h tinymce.h uname.h upload.h
|
||||
functionparser.o: uptime.h who.h
|
||||
functions.o: functions.h functionbase.h ../core/item.h ../core/db.h
|
||||
functions.o: ../core/item.h ../core/user.h ../core/group.h ../core/thread.h
|
||||
functions.o: ../core/error.h ../core/log.h ../core/dircontainer.h
|
||||
@@ -256,8 +260,8 @@ functions.o: ckeditor.h cp.h createthread.h createticket.h default.h
|
||||
functions.o: download.h editticket.h emacs.h last.h login.h logout.h ls.h
|
||||
functions.o: mkdir.h mv.h node.h priv.h reload.h rm.h run.h subject.h
|
||||
functions.o: funthread.h ../core/thread.h funticket.h ../core/ticket.h
|
||||
functions.o: tinymce.h uname.h upload.h uptime.h who.h ../core/log.h
|
||||
functions.o: ../core/misc.h ../templates/templates.h
|
||||
functions.o: template.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
functions.o: ../core/log.h ../core/misc.h ../templates/templates.h
|
||||
functions.o: ../templates/patterncacher.h ../core/item.h ../templates/misc.h
|
||||
functions.o: ../templates/ckeditorgetparser.h ../core/httpsimpleparser.h
|
||||
functions.o: ../core/log.h ../templates/indexpatterns.h
|
||||
@@ -359,7 +363,7 @@ mkdir.o: chmod.h privchanger.h chown.h ckeditor.h cp.h createthread.h
|
||||
mkdir.o: createticket.h default.h download.h editticket.h emacs.h last.h
|
||||
mkdir.o: login.h logout.h ls.h mv.h node.h priv.h reload.h rm.h run.h
|
||||
mkdir.o: subject.h funthread.h ../core/thread.h funticket.h ../core/ticket.h
|
||||
mkdir.o: tinymce.h uname.h upload.h uptime.h who.h
|
||||
mkdir.o: template.h tinymce.h uname.h upload.h uptime.h who.h
|
||||
mv.o: mv.h functionbase.h ../core/item.h ../core/db.h ../core/item.h
|
||||
mv.o: ../core/user.h ../core/group.h ../core/thread.h ../core/error.h
|
||||
mv.o: ../core/log.h ../core/dircontainer.h ../core/ugcontainer.h
|
||||
@@ -376,8 +380,8 @@ mv.o: ../core/system.h functions.h functionparser.h adduser.h cat.h chmod.h
|
||||
mv.o: privchanger.h chown.h ckeditor.h cp.h createthread.h createticket.h
|
||||
mv.o: default.h download.h editticket.h emacs.h last.h login.h logout.h ls.h
|
||||
mv.o: mkdir.h node.h priv.h reload.h rm.h run.h subject.h funthread.h
|
||||
mv.o: ../core/thread.h funticket.h ../core/ticket.h tinymce.h uname.h
|
||||
mv.o: upload.h uptime.h who.h
|
||||
mv.o: ../core/thread.h funticket.h ../core/ticket.h template.h tinymce.h
|
||||
mv.o: uname.h upload.h uptime.h who.h
|
||||
node.o: node.h functionbase.h ../core/item.h ../core/db.h ../core/item.h
|
||||
node.o: ../core/user.h ../core/group.h ../core/thread.h ../core/error.h
|
||||
node.o: ../core/log.h ../core/dircontainer.h ../core/ugcontainer.h
|
||||
@@ -458,8 +462,8 @@ rm.o: ../functions/functions.h functionparser.h adduser.h cat.h chmod.h
|
||||
rm.o: privchanger.h chown.h ckeditor.h cp.h createthread.h createticket.h
|
||||
rm.o: default.h download.h editticket.h emacs.h last.h login.h logout.h ls.h
|
||||
rm.o: mkdir.h mv.h node.h priv.h reload.h run.h subject.h funthread.h
|
||||
rm.o: ../core/thread.h funticket.h ../core/ticket.h tinymce.h uname.h
|
||||
rm.o: upload.h uptime.h who.h ../templates/templates.h
|
||||
rm.o: ../core/thread.h funticket.h ../core/ticket.h template.h tinymce.h
|
||||
rm.o: uname.h upload.h uptime.h who.h ../templates/templates.h
|
||||
rm.o: ../templates/patterncacher.h ../core/item.h ../templates/misc.h
|
||||
rm.o: ../templates/ckeditorgetparser.h ../core/httpsimpleparser.h
|
||||
rm.o: ../core/log.h ../templates/indexpatterns.h ../core/sessionmanager.h
|
||||
@@ -489,6 +493,20 @@ subject.o: ../core/groups.h ../core/loadavg.h ../core/notify.h
|
||||
subject.o: ../templatesnotify/templatesnotify.h ../../ezc/src/ezc.h
|
||||
subject.o: ../core/mount.h ../core/locale.h ../templates/misc.h
|
||||
subject.o: ../templates/localefilter.h ../core/locale.h ../core/system.h
|
||||
template.o: template.h functionbase.h ../core/item.h ../core/db.h
|
||||
template.o: ../core/item.h ../core/user.h ../core/group.h ../core/thread.h
|
||||
template.o: ../core/error.h ../core/log.h ../core/dircontainer.h
|
||||
template.o: ../core/ugcontainer.h ../core/ticket.h ../core/request.h
|
||||
template.o: ../core/requesttypes.h ../core/session.h ../core/plugindata.h
|
||||
template.o: ../core/rebus.h ../core/config.h ../core/confparser.h
|
||||
template.o: ../core/htmlfilter.h ../core/config.h ../core/system.h
|
||||
template.o: ../core/dirs.h ../core/db.h ../core/request.h ../core/mounts.h
|
||||
template.o: ../core/mount.h ../core/users.h ../core/lastcontainer.h
|
||||
template.o: ../core/groups.h ../core/loadavg.h ../core/notify.h
|
||||
template.o: ../templatesnotify/templatesnotify.h ../../ezc/src/ezc.h
|
||||
template.o: ../core/mount.h ../core/locale.h ../templates/misc.h
|
||||
template.o: ../templates/localefilter.h ../core/locale.h ../core/system.h
|
||||
template.o: ../core/misc.h
|
||||
tinymce.o: tinymce.h functionbase.h ../core/item.h ../core/db.h
|
||||
tinymce.o: ../core/item.h ../core/user.h ../core/group.h ../core/thread.h
|
||||
tinymce.o: ../core/error.h ../core/log.h ../core/dircontainer.h
|
||||
@@ -506,8 +524,8 @@ tinymce.o: functions.h functionparser.h adduser.h cat.h chmod.h privchanger.h
|
||||
tinymce.o: chown.h ckeditor.h cp.h createthread.h createticket.h default.h
|
||||
tinymce.o: download.h editticket.h emacs.h last.h login.h logout.h ls.h
|
||||
tinymce.o: mkdir.h mv.h node.h priv.h reload.h rm.h run.h subject.h
|
||||
tinymce.o: funthread.h ../core/thread.h funticket.h ../core/ticket.h uname.h
|
||||
tinymce.o: upload.h uptime.h who.h
|
||||
tinymce.o: funthread.h ../core/thread.h funticket.h ../core/ticket.h
|
||||
tinymce.o: template.h uname.h upload.h uptime.h who.h
|
||||
uname.o: uname.h functionbase.h ../core/item.h ../core/db.h ../core/item.h
|
||||
uname.o: ../core/user.h ../core/group.h ../core/thread.h ../core/error.h
|
||||
uname.o: ../core/log.h ../core/dircontainer.h ../core/ugcontainer.h
|
||||
@@ -538,8 +556,8 @@ upload.o: functionparser.h adduser.h cat.h chmod.h privchanger.h chown.h
|
||||
upload.o: ckeditor.h cp.h createthread.h createticket.h default.h download.h
|
||||
upload.o: editticket.h emacs.h last.h login.h logout.h ls.h mkdir.h mv.h
|
||||
upload.o: node.h priv.h reload.h rm.h run.h subject.h funthread.h
|
||||
upload.o: ../core/thread.h funticket.h ../core/ticket.h tinymce.h uname.h
|
||||
upload.o: uptime.h who.h
|
||||
upload.o: ../core/thread.h funticket.h ../core/ticket.h template.h tinymce.h
|
||||
upload.o: uname.h uptime.h who.h
|
||||
uptime.o: uptime.h functionbase.h ../core/item.h ../core/db.h ../core/item.h
|
||||
uptime.o: ../core/user.h ../core/group.h ../core/thread.h ../core/error.h
|
||||
uptime.o: ../core/log.h ../core/dircontainer.h ../core/ugcontainer.h
|
||||
|
||||
@@ -1 +1 @@
|
||||
o = adduser.o cat.o chmod.o chown.o ckeditor.o cp.o createthread.o createticket.o default.o download.o editticket.o emacs.o functionbase.o functionparser.o functions.o funthread.o funticket.o last.o login.o logout.o ls.o mkdir.o mv.o node.o priv.o privchanger.o readticket.o reload.o rm.o run.o subject.o tinymce.o uname.o upload.o uptime.o who.o
|
||||
o = adduser.o cat.o chmod.o chown.o ckeditor.o cp.o createthread.o createticket.o default.o download.o editticket.o emacs.o functionbase.o functionparser.o functions.o funthread.o funticket.o last.o login.o logout.o ls.o mkdir.o mv.o node.o priv.o privchanger.o readticket.o reload.o rm.o run.o subject.o template.o tinymce.o uname.o upload.o uptime.o who.o
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
FunctionBase::FunctionBase()
|
||||
{
|
||||
id = -1;
|
||||
|
||||
fun.user_id = -1;
|
||||
fun.group_id = -1;
|
||||
fun.privileges = 0755;
|
||||
|
||||
@@ -30,6 +30,11 @@ class FunctionBase
|
||||
{
|
||||
public:
|
||||
|
||||
// function id
|
||||
// it is set automatically when you add the function to functions list
|
||||
// is used to load a template (in templates)
|
||||
long id;
|
||||
|
||||
FunctionBase();
|
||||
|
||||
// user, group, permissions, url (function name)
|
||||
|
||||
+27
-3
@@ -37,16 +37,37 @@ void Functions::SetSystem(System * psystem)
|
||||
system = psystem;
|
||||
}
|
||||
|
||||
|
||||
void Functions::SetTemplates(Templates * ptemplates)
|
||||
{
|
||||
templates = ptemplates;
|
||||
}
|
||||
|
||||
|
||||
void Functions::SetNotify(Notify * pnotify)
|
||||
{
|
||||
notify = pnotify;
|
||||
}
|
||||
|
||||
|
||||
size_t Functions::FunctionsSize()
|
||||
{
|
||||
return table.size();
|
||||
}
|
||||
|
||||
|
||||
Functions::Iterator Functions::Begin()
|
||||
{
|
||||
return table.begin();
|
||||
}
|
||||
|
||||
|
||||
Functions::Iterator Functions::End()
|
||||
{
|
||||
return table.end();
|
||||
}
|
||||
|
||||
|
||||
FunctionBase * Functions::Find(const std::string & function_name)
|
||||
{
|
||||
Table::iterator i = table.find(function_name);
|
||||
@@ -129,8 +150,9 @@ void Functions::Add(FunctionBase * fun)
|
||||
return;
|
||||
}
|
||||
|
||||
table[fun->fun.url] = fun;
|
||||
fun->id = table.size();
|
||||
SetObjects(fun);
|
||||
table[fun->fun.url] = fun;
|
||||
}
|
||||
|
||||
|
||||
@@ -145,6 +167,8 @@ void Functions::Add(FunctionBase & fun)
|
||||
|
||||
void Functions::Create()
|
||||
{
|
||||
Add(fun_template);
|
||||
|
||||
Add(fun_adduser);
|
||||
Add(fun_cat);
|
||||
Add(fun_chmod);
|
||||
@@ -281,7 +305,7 @@ void Functions::MakeGet()
|
||||
return;
|
||||
}
|
||||
|
||||
if( !request->function->HasAccess() )
|
||||
if( !system->HasReadExecAccess(request->function->fun) || !request->function->HasAccess() )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
@@ -310,7 +334,7 @@ void Functions::MakePost()
|
||||
return;
|
||||
}
|
||||
|
||||
if( !request->function->HasAccess() )
|
||||
if( !system->HasReadExecAccess(request->function->fun) || !request->function->HasAccess() )
|
||||
{
|
||||
request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
return;
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
#include "subject.h"
|
||||
#include "funthread.h"
|
||||
#include "funticket.h"
|
||||
#include "template.h"
|
||||
#include "tinymce.h"
|
||||
#include "uname.h"
|
||||
#include "upload.h"
|
||||
@@ -80,16 +81,22 @@ public:
|
||||
Fun::Subject fun_subject;
|
||||
Fun::FunThread fun_thread;
|
||||
Fun::FunTicket fun_ticket;
|
||||
Fun::Template fun_template;
|
||||
Fun::Tinymce fun_tinymce;
|
||||
Fun::Uname fun_uname;
|
||||
Fun::Upload fun_upload;
|
||||
Fun::Uptime fun_uptime;
|
||||
Fun::Who fun_who;
|
||||
|
||||
|
||||
typedef std::map<std::string, FunctionBase*> Table;
|
||||
typedef Table::iterator Iterator;
|
||||
|
||||
void Create();
|
||||
void Parse();
|
||||
size_t FunctionsSize();
|
||||
|
||||
Iterator Begin();
|
||||
Iterator End();
|
||||
|
||||
void MakeGet();
|
||||
void MakePost();
|
||||
@@ -133,7 +140,6 @@ private:
|
||||
|
||||
bool ReadItemUrlSubject(Item & item, Item::Type item_type);
|
||||
|
||||
typedef std::map<std::string, FunctionBase*> Table;
|
||||
Table table;
|
||||
|
||||
FunctionParser function_parser;
|
||||
|
||||
Executable
+70
@@ -0,0 +1,70 @@
|
||||
/*
|
||||
* This file is a part of Winix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2010, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "template.h"
|
||||
#include "core/misc.h"
|
||||
|
||||
|
||||
|
||||
namespace Fun
|
||||
{
|
||||
|
||||
Template::Template()
|
||||
{
|
||||
fun.url = "template";
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
bool Template::HasAccess()
|
||||
{
|
||||
if( config->template_only_root_use_template_fun )
|
||||
{
|
||||
// only root is allowed to change the template
|
||||
return (request->session->puser && request->session->puser->super_user);
|
||||
}
|
||||
|
||||
|
||||
if( request->is_item )
|
||||
return system->HasWriteAccess(request->item);
|
||||
else
|
||||
return system->HasWriteAccess(*request->dir_tab.back());
|
||||
}
|
||||
|
||||
|
||||
void Template::EditTemplate(Item & item)
|
||||
{
|
||||
html_file = request->PostVar("template");
|
||||
TrimWhite(html_file);
|
||||
request->status = db->EditTemplateItemById(item.id, html_file);
|
||||
|
||||
if( request->status == WINIX_ERR_OK )
|
||||
item.html_template = html_file;
|
||||
}
|
||||
|
||||
|
||||
void Template::MakePost()
|
||||
{
|
||||
if( request->is_item )
|
||||
{
|
||||
EditTemplate(request->item);
|
||||
}
|
||||
else
|
||||
{
|
||||
EditTemplate(*request->dir_tab.back());
|
||||
}
|
||||
|
||||
system->RedirectToLastItem();
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace
|
||||
Executable
+38
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* This file is a part of Winix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2010, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef headerfilecmslucontenttemplate
|
||||
#define headerfilecmslucontenttemplate
|
||||
|
||||
#include "functionbase.h"
|
||||
|
||||
|
||||
|
||||
namespace Fun
|
||||
{
|
||||
|
||||
|
||||
class Template : public FunctionBase
|
||||
{
|
||||
public:
|
||||
|
||||
Template();
|
||||
bool HasAccess();
|
||||
void MakePost();
|
||||
|
||||
private:
|
||||
|
||||
std::string html_file;
|
||||
void EditTemplate(Item & item);
|
||||
};
|
||||
|
||||
|
||||
} // namespace
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user