fixed: in DbBase: removed:

DbBase::AssertQuery(const std::wstring & q)
       there was a recurrence calling (the method called itself)
       we don't need a method which get a wstring as an argument
added: DbBase::AssertQuery(const char * q, ExecStatusType t)
       DbBase::AssertQuery(const DbTextStream & query, ExecStatusType t)
       (AssertQuery with a second argument -- the same as to AssertResult)
       we don't have to use AssertQuery and AssertResult
       only one AssertQuery now
added: to plugins: two messages:
       // preparing a current user to logout
       // send from 'logout' winix function
       // !! IMPROVE ME this message can be sent when winix is making the shutdown
       // (for sessions which are not mark as 'remember me')
       // and when the SessionManager deletes a session (from the special thread)
       #define WINIX_PREPARE_USER_LOGGED_OUT          30610

       // a user has been logged out
       // send from 'logout' winix function
       // in l1 you have the old user_id
       // !! IMPROVE ME this message can be sent when winix is making the shutdown
       // (for sessions which are not mark as 'remember me')
       // and when the SessionManager deletes a session (from the special thread)
       #define WINIX_USER_LOGGED_OUT                          30620



git-svn-id: svn://ttmath.org/publicrep/winix/trunk@804 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
Tomasz Sowa 2012-02-12 14:52:52 +00:00
parent f6db85fcdb
commit f381f24402
5 changed files with 57 additions and 10 deletions

View File

@ -161,6 +161,21 @@
// from the session file
#define WINIX_USER_LOGGED 30600
// preparing a current user to logout
// send from 'logout' winix function
// !! IMPROVE ME this message can be sent when winix is making the shutdown
// (for sessions which are not mark as 'remember me')
// and when the SessionManager deletes a session (from the special thread)
#define WINIX_PREPARE_USER_LOGGED_OUT 30610
// a user has been logged out
// send from 'logout' winix function
// in l1 you have the old user_id
// !! IMPROVE ME this message can be sent when winix is making the shutdown
// (for sessions which are not mark as 'remember me')
// and when the SessionManager deletes a session (from the special thread)
#define WINIX_USER_LOGGED_OUT 30620
// here you add your own html templates
// call TemplatesFunctions::patterns.Add(L"file_name.html")

View File

@ -88,10 +88,6 @@ return r;
}
PGresult * DbBase::AssertQuery(const std::wstring & q)
{
return AssertQuery(q.c_str());
}
PGresult * DbBase::AssertQuery(const DbTextStream & query)
@ -100,6 +96,23 @@ PGresult * DbBase::AssertQuery(const DbTextStream & query)
}
PGresult * DbBase::AssertQuery(const char * q, ExecStatusType t)
{
PGresult * r = AssertQuery(q);
AssertResult(r, t);
return r;
}
PGresult * DbBase::AssertQuery(const DbTextStream & query, ExecStatusType t)
{
return AssertQuery(query.CStr(), t);
}
void DbBase::AssertResult(PGresult * r, ExecStatusType t)
{
if( PQresultStatus(r) != t )

View File

@ -32,8 +32,9 @@ public:
void LogQueries(bool log_q);
PGresult * AssertQuery(const char * query);
PGresult * AssertQuery(const std::wstring & query);
PGresult * AssertQuery(const DbTextStream & query);
PGresult * AssertQuery(const char * q, ExecStatusType t);
PGresult * AssertQuery(const DbTextStream & query, ExecStatusType t);
void AssertResult(PGresult * r, ExecStatusType t);
static int AssertColumn(PGresult * r, const char * column_name);

View File

@ -2,13 +2,13 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2008-2010, Tomasz Sowa
* Copyright (c) 2008-2012, Tomasz Sowa
* All rights reserved.
*
*/
#include "logout.h"
#include "core/plugin.h"
@ -22,11 +22,26 @@ Logout::Logout()
}
void Logout::LogoutCurrentUser()
{
if( cur->session && cur->session->puser )
{
long user_id = cur->session->puser->id;
plugin.Call(WINIX_PREPARE_USER_LOGGED_OUT);
system->users.LogoutCurrentUser();
plugin.Call(WINIX_USER_LOGGED_OUT, user_id);
}
}
void Logout::MakeGet()
{
system->users.LogoutCurrentUser();
system->RedirectToLastItem();
if( cur->session->puser )
{
LogoutCurrentUser();
system->RedirectToLastItem();
}
}

View File

@ -2,7 +2,7 @@
* This file is a part of Winix
* and is not publicly distributed
*
* Copyright (c) 2010, Tomasz Sowa
* Copyright (c) 2010-2012, Tomasz Sowa
* All rights reserved.
*
*/
@ -23,7 +23,10 @@ class Logout : public FunctionBase
public:
Logout();
void MakeGet();
void LogoutCurrentUser();
private: