summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--database/sqlite/edb-sqlite.c18
-rw-r--r--eurephiadm/eurephiadm.c2
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);
}