summaryrefslogtreecommitdiffstats
path: root/database/sqlite
diff options
context:
space:
mode:
authorDavid Sommerseth <dazo@users.sourceforge.net>2008-12-03 00:37:20 +0100
committerDavid Sommerseth <dazo@users.sourceforge.net>2008-12-03 00:37:20 +0100
commit7adbf78d854b4d119ba2463d4936b882d8d8faa9 (patch)
tree5230bd0df15f32e4475a3d565568c45e5b955373 /database/sqlite
parent9e6621369a9c5fe71fcb4330d9388e8adf89c8aa (diff)
downloadeurephia-7adbf78d854b4d119ba2463d4936b882d8d8faa9.tar.gz
eurephia-7adbf78d854b4d119ba2463d4936b882d8d8faa9.tar.xz
eurephia-7adbf78d854b4d119ba2463d4936b882d8d8faa9.zip
BUGFIX: Logout works properly again and improved logout status change
- cmd_Logout(...) used the wrong argv[] index for sessionkey. - Improved eDBadminValidateSession(...) to set status to '5' on sessions which are getting logged out due to missing privileges
Diffstat (limited to 'database/sqlite')
-rw-r--r--database/sqlite/edb-sqlite.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/database/sqlite/edb-sqlite.c b/database/sqlite/edb-sqlite.c
index 05e16f7..fb76369 100644
--- a/database/sqlite/edb-sqlite.c
+++ b/database/sqlite/edb-sqlite.c
@@ -1074,7 +1074,7 @@ int eDBadminValidateSession(eurephiaCTX *ctx, const char *sesskey, const char *r
" AND access = '%q'",
expire_time, sesskey, req_access);
- if( (res == NULL) || (sqlite_get_numtuples(res) != 1) ) {
+ if( (res == NULL) ) {
eurephia_log(ctx, LOG_FATAL, 0, "Could not validate session");
return 0;
}
@@ -1084,7 +1084,7 @@ int eDBadminValidateSession(eurephiaCTX *ctx, const char *sesskey, const char *r
sqlite_free_results(res);
// If still valid, update last_action
- if( valid ) {
+ if( valid && access ) {
res = sqlite_query(ctx,
"UPDATE eurephia_adminlog"
" SET last_action = CURRENT_TIMESTAMP, status = 2"
@@ -1094,15 +1094,14 @@ int eDBadminValidateSession(eurephiaCTX *ctx, const char *sesskey, const char *r
}
sqlite_free_results(res);
- if( !access ) {
- eurephia_log(ctx, LOG_WARNING, 0, "Your user account is lacking privileges");
- }
} else {
// If not valid, register session as auto-logged out
+
res = sqlite_query(ctx,
"UPDATE eurephia_adminlog"
- " SET logout = CURRENT_TIMESTAMP, status = 4"
- " WHERE sessionkey = '%q'", sesskey);
+ " SET logout = CURRENT_TIMESTAMP, status = %i"
+ " WHERE sessionkey = '%q'",
+ (access ? 4 : 5), sesskey);
if( res == NULL ) {
eurephia_log(ctx, LOG_ERROR, 0, "Could not register old session as logged out");
}
@@ -1117,6 +1116,11 @@ int eDBadminValidateSession(eurephiaCTX *ctx, const char *sesskey, const char *r
return 0;
}
sqlite_free_results(res);
+
+ if( !access ) {
+ eurephia_log(ctx, LOG_WARNING, 0, "Your user account is lacking privileges");
+ }
+
}
return (valid && access);
}