added: SessionContainer special container used by SessionManager
sessions are indexed by id and time (last used time) changed: old sessions are deleted parameter: session_max_iddle in the config file added: function 'who' git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@483 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
o = templates.o sys.o item.o doc.o user.o dir.o done.o priv.o patterncacher.o
|
||||
o = templates.o sys.o item.o doc.o user.o dir.o done.o priv.o patterncacher.o who.o
|
||||
|
||||
|
||||
all: templates.a
|
||||
|
@@ -91,3 +91,18 @@ user.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h
|
||||
user.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h
|
||||
user.o: ../core/users.h ../core/groups.h ../core/log.h patterncacher.h
|
||||
user.o: ../app/templates.h
|
||||
who.o: templates.h ../../ezc/src/ezc.h ../core/data.h ../core/misc.h
|
||||
who.o: ../core/log.h ../core/item.h ../core/error.h ../core/dirs.h
|
||||
who.o: ../core/db.h ../core/dircontainer.h ../core/user.h ../core/group.h
|
||||
who.o: ../core/ugcontainer.h ../core/users.h ../core/groups.h
|
||||
who.o: ../core/functions.h ../core/function.h ../core/functioncodeparser.h
|
||||
who.o: ../core/request.h ../core/requesttypes.h ../core/session.h
|
||||
who.o: ../core/done.h ../core/getparser.h ../core/httpsimpleparser.h
|
||||
who.o: ../core/postparser.h ../core/cookieparser.h ../core/item.h
|
||||
who.o: ../core/db.h ../core/error.h ../core/user.h ../core/group.h
|
||||
who.o: ../core/users.h ../core/groups.h ../core/log.h patterncacher.h
|
||||
who.o: ../app/templates.h ../core/sessioncontainer.h
|
||||
who.o: ../core/requestcontroller.h ../core/data.h ../core/request.h
|
||||
who.o: ../content/content.h ../templates/templates.h ../core/misc.h
|
||||
who.o: ../core/function.h ../core/functionparser.h ../app/content.h
|
||||
who.o: ../core/sessionmanager.h ../core/sessioncontainer.h
|
||||
|
@@ -22,6 +22,7 @@ Ezc::Pattern pat_fun_mkdir;
|
||||
Ezc::Pattern pat_fun_default;
|
||||
Ezc::Pattern pat_fun_priv;
|
||||
Ezc::Pattern pat_fun_rm;
|
||||
Ezc::Pattern pat_fun_who;
|
||||
Ezc::Pattern pat_err_item_required;
|
||||
Ezc::Pattern pat_err_404;
|
||||
Ezc::Pattern pat_err_per_denied;
|
||||
@@ -96,6 +97,10 @@ Ezc::Pattern * p = 0;
|
||||
p = pattern_cacher.GetPattern(request.item);
|
||||
break;
|
||||
|
||||
case FUN_WHO:
|
||||
p = &pat_fun_who;
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@@ -278,6 +283,16 @@ void Templates::CreateFunctions()
|
||||
functions.Insert("content", content);
|
||||
|
||||
|
||||
/*
|
||||
who
|
||||
*/
|
||||
functions.Insert("who_tab", who_tab);
|
||||
functions.Insert("who_tab_lp", who_tab_lp);
|
||||
functions.Insert("who_tab_user", who_tab_user);
|
||||
functions.Insert("who_tab_time", who_tab_time);
|
||||
functions.Insert("who_tab_last_time", who_tab_last_time);
|
||||
|
||||
|
||||
// !! tymczasowa
|
||||
functions.Insert("is_group_tv", is_group_tv);
|
||||
|
||||
@@ -331,6 +346,9 @@ void Templates::Read()
|
||||
pat_err_others.Directory(data.templates);
|
||||
pat_err_others.ParseFile("err_others.html");
|
||||
|
||||
pat_fun_who.Directory(data.templates);
|
||||
pat_fun_who.ParseFile("who.html");
|
||||
|
||||
CreateFunctions();
|
||||
|
||||
#ifdef APPTEMPLATES
|
||||
|
@@ -11,6 +11,8 @@
|
||||
#define headerfiletemplates
|
||||
|
||||
#include <iomanip>
|
||||
#include <set>
|
||||
|
||||
|
||||
#include "../../ezc/src/ezc.h"
|
||||
#include "../core/data.h"
|
||||
@@ -152,6 +154,16 @@ namespace TemplatesFunctions
|
||||
void done_loggedout(Info & i);
|
||||
|
||||
|
||||
/*
|
||||
who
|
||||
*/
|
||||
void who_tab(Info & i);
|
||||
void who_tab_lp(Info & i);
|
||||
void who_tab_user(Info & i);
|
||||
void who_tab_time(Info & i);
|
||||
void who_tab_last_time(Info & i);
|
||||
|
||||
|
||||
|
||||
} // namespace TemplatesFunctions
|
||||
|
||||
|
102
templates/who.cpp
Executable file
102
templates/who.cpp
Executable file
@@ -0,0 +1,102 @@
|
||||
/*
|
||||
* This file is a part of CMSLU -- Content Management System like Unix
|
||||
* and is not publicly distributed
|
||||
*
|
||||
* Copyright (c) 2008, Tomasz Sowa
|
||||
* All rights reserved.
|
||||
*
|
||||
*/
|
||||
|
||||
#include "templates.h"
|
||||
#include "../core/sessioncontainer.h"
|
||||
#include "../core/requestcontroller.h"
|
||||
#include "../core/misc.h"
|
||||
|
||||
|
||||
namespace TemplatesFunctions
|
||||
{
|
||||
|
||||
static size_t who_reqid = 0;
|
||||
|
||||
SessionContainer::Iterator who_iterator;
|
||||
size_t who_lp;
|
||||
|
||||
|
||||
bool who_init()
|
||||
{
|
||||
if( who_reqid != request.id )
|
||||
{
|
||||
who_reqid = request.id;
|
||||
who_iterator = req_controller.SessionBegin();
|
||||
who_lp = 1;
|
||||
}
|
||||
|
||||
return who_iterator != req_controller.SessionEnd();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void who_tab(Info & i)
|
||||
{
|
||||
who_init();
|
||||
|
||||
if( i.iter != 0 && who_iterator != req_controller.SessionEnd() )
|
||||
{
|
||||
++who_iterator;
|
||||
++who_lp;
|
||||
}
|
||||
|
||||
i.result = who_iterator != req_controller.SessionEnd();
|
||||
}
|
||||
|
||||
|
||||
void who_tab_lp(Info & i)
|
||||
{
|
||||
if( !who_init() )
|
||||
return;
|
||||
|
||||
i.out << who_lp;
|
||||
}
|
||||
|
||||
|
||||
void who_tab_user(Info & i)
|
||||
{
|
||||
if( !who_init() )
|
||||
return;
|
||||
|
||||
if( who_iterator->puser )
|
||||
i.out << who_iterator->puser->name;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void who_tab_time(Info & i)
|
||||
{
|
||||
if( !who_init() )
|
||||
return;
|
||||
|
||||
i.out << DateToStr( who_iterator->tm_time.tm_mon + 1,
|
||||
who_iterator->tm_time.tm_mday,
|
||||
who_iterator->tm_time.tm_hour,
|
||||
who_iterator->tm_time.tm_min,
|
||||
who_iterator->tm_time.tm_sec );
|
||||
}
|
||||
|
||||
|
||||
void who_tab_last_time(Info & i)
|
||||
{
|
||||
if( !who_init() )
|
||||
return;
|
||||
|
||||
i.out << DateToStr( who_iterator->tm_last_time.tm_mon + 1,
|
||||
who_iterator->tm_last_time.tm_mday,
|
||||
who_iterator->tm_last_time.tm_hour,
|
||||
who_iterator->tm_last_time.tm_min,
|
||||
who_iterator->tm_last_time.tm_sec );
|
||||
}
|
||||
|
||||
|
||||
} // namespace TemplatesFunctions
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user