diff options
-rw-r--r-- | database/sqlite/edb-sqlite.c | 18 | ||||
-rw-r--r-- | eurephiadm/eurephiadm.c | 2 |
2 files changed, 12 insertions, 8 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); } diff --git a/eurephiadm/eurephiadm.c b/eurephiadm/eurephiadm.c index 5a46db9..ae189c5 100644 --- a/eurephiadm/eurephiadm.c +++ b/eurephiadm/eurephiadm.c @@ -88,7 +88,7 @@ int cmd_Help(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int a int cmd_Logout(eurephiaCTX *ctx, eurephiaSESSION *sess, eurephiaVALUES *cfg, int argc, char **argv) { int rc = 0; - rc = eDBadminLogout(ctx, argv[1]); + rc = eDBadminLogout(ctx, argv[0]); fprintf(stdout, "%s\n", (rc == 1 ? "Logged out succesfully" : "Logout failed.")); return (rc == 0); } |