From 652b391d6f86e4916a93ef8328bd39a82e85f1e2 Mon Sep 17 00:00:00 2001 From: Syed Daanish Date: Wed, 25 Jun 2025 23:44:48 +0300 Subject: [PATCH] Fixes --- main.rb | 23 ++++++++++++++++++++--- players.rb | 2 +- session.rb | 11 +++++++++++ 3 files changed, 32 insertions(+), 4 deletions(-) diff --git a/main.rb b/main.rb index b5b5edf..e0dbd46 100644 --- a/main.rb +++ b/main.rb @@ -11,7 +11,7 @@ load "logman.rb" ALPHANUM = [*"0".."9", *"A".."Z", *"a".."z", "-", "_"].freeze -env_data = File.read(".env") +env_data = File.exist?(".env") ? File.read(".env") : "" ENV_HASH = {} env_data.each_line do |line| @@ -36,7 +36,7 @@ set :public_folder, "public" get "/" do session = Sessions.new request, response - Logman.log session["message"].inspect + Logman.log session.message send_file "index.html" end @@ -47,6 +47,8 @@ end post "/signup" do session = Sessions.new request, response + uid = session["user"] + session.logout(uid) if uid.nil? || $active_users[uid].nil? data = JSON.parse(request.body.read) if data["email"].nil? || data["pass"].nil? || data["username"].nil? status 400 @@ -64,7 +66,7 @@ end get "/verify/:code" do session = Sessions.new request, response - session["message"] = Players.verify(params[:code]) ? "Verified successfully!" : "Verification failed!" + session.message = Players.verify(params[:code]) ? "Verified successfully!" : "Verification failed!" redirect "/" end @@ -76,6 +78,10 @@ post "/login" do status 500 return { "message" => "Internal server error when signing the existing session out!" }.to_json end + if data["username"].nil? || data["pass"].nil? + status 400 + return { "message" => "Bad request made!" }.to_json + end login_status = session.login(data["username"], data["pass"]) status login_status[0] return { "message" => login_status[1] }.to_json @@ -96,6 +102,13 @@ post "/logout" do return { "message" => "Signed out successfully!" }.to_json end +get "/logout" do + session = Sessions.new request, response + uid = session["user"] + session.logout(uid) unless $active_users[uid].nil? + redirect "/" +end + post "/forgot_password" do data = JSON.parse(request.body.read) if data["email"].nil? @@ -141,3 +154,7 @@ delete "/rm_player" do return { "message" => "Couldn't delete!" }.to_json end end + +get "*" do + redirect "/" +end diff --git a/players.rb b/players.rb index c16991b..5dc3b59 100644 --- a/players.rb +++ b/players.rb @@ -29,7 +29,7 @@ module Players rescue ArgumentError => e [400, e.message] rescue Sequel::UniqueConstraintViolation - [400, "Account already exists with this username or username!"] + [400, "Account already exists with this email or username!"] end def self.verify(code) diff --git a/session.rb b/session.rb index f6d56ab..1c0d9fa 100644 --- a/session.rb +++ b/session.rb @@ -73,6 +73,17 @@ class Sessions "" end + def message=(val) + @response.set_cookie("message", + value: val, + path: "/", + expires: Time.now + 360 * 24 * 60 * 60) + end + + def message + @request.cookies["message"] + end + def all session = @request.cookies["session"] session = session.nil? ? "{}" : Zlib::Inflate.inflate(Base64.decode64(session))