mirror of
https://github.com/iv-org/invidious.git
synced 2026-08-17 05:20:51 -05:00
Merge 93065c4bfd97be4e39acb4914d42db7abe1754bc into d10f2a48021f1768f2d6ff3bd1b9f3de4e0b2d22
This commit is contained in:
commit
5bb8810d90
@ -7,7 +7,7 @@ module Invidious::Database::SessionIDs
|
|||||||
# Insert
|
# Insert
|
||||||
# -------------------
|
# -------------------
|
||||||
|
|
||||||
def insert(sid : String, email : String, handle_conflicts : Bool = false)
|
def insert(sid : String, email : String, handle_conflicts : Bool = false, *, conn : DB::Database | DB::Connection | DB::Transaction = PG_DB)
|
||||||
request = <<-SQL
|
request = <<-SQL
|
||||||
INSERT INTO session_ids
|
INSERT INTO session_ids
|
||||||
VALUES ($1, $2, now())
|
VALUES ($1, $2, now())
|
||||||
@ -15,38 +15,38 @@ module Invidious::Database::SessionIDs
|
|||||||
|
|
||||||
request += " ON CONFLICT (id) DO NOTHING" if handle_conflicts
|
request += " ON CONFLICT (id) DO NOTHING" if handle_conflicts
|
||||||
|
|
||||||
PG_DB.exec(request, sid, email)
|
conn.exec(request, sid, email)
|
||||||
end
|
end
|
||||||
|
|
||||||
# -------------------
|
# -------------------
|
||||||
# Delete
|
# Delete
|
||||||
# -------------------
|
# -------------------
|
||||||
|
|
||||||
def delete(*, sid : String)
|
def delete(*, sid : String, conn : DB::Database | DB::Connection | DB::Transaction = PG_DB)
|
||||||
request = <<-SQL
|
request = <<-SQL
|
||||||
DELETE FROM session_ids *
|
DELETE FROM session_ids *
|
||||||
WHERE id = $1
|
WHERE id = $1
|
||||||
SQL
|
SQL
|
||||||
|
|
||||||
PG_DB.exec(request, sid)
|
conn.exec(request, sid)
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete(*, email : String)
|
def delete(*, email : String, conn : DB::Database | DB::Connection | DB::Transaction = PG_DB)
|
||||||
request = <<-SQL
|
request = <<-SQL
|
||||||
DELETE FROM session_ids *
|
DELETE FROM session_ids *
|
||||||
WHERE email = $1
|
WHERE email = $1
|
||||||
SQL
|
SQL
|
||||||
|
|
||||||
PG_DB.exec(request, email)
|
conn.exec(request, email)
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete(*, sid : String, email : String)
|
def delete(*, sid : String, email : String, conn : DB::Database | DB::Connection | DB::Transaction = PG_DB)
|
||||||
request = <<-SQL
|
request = <<-SQL
|
||||||
DELETE FROM session_ids *
|
DELETE FROM session_ids *
|
||||||
WHERE id = $1 AND email = $2
|
WHERE id = $1 AND email = $2
|
||||||
SQL
|
SQL
|
||||||
|
|
||||||
PG_DB.exec(request, sid, email)
|
conn.exec(request, sid, email)
|
||||||
end
|
end
|
||||||
|
|
||||||
# -------------------
|
# -------------------
|
||||||
|
|||||||
@ -7,7 +7,7 @@ module Invidious::Database::Users
|
|||||||
# Insert / delete
|
# Insert / delete
|
||||||
# -------------------
|
# -------------------
|
||||||
|
|
||||||
def insert(user : User, update_on_conflict : Bool = false)
|
def insert(user : User, update_on_conflict : Bool = false, *, conn : DB::Database | DB::Connection | DB::Transaction = PG_DB)
|
||||||
user_array = user.to_a
|
user_array = user.to_a
|
||||||
user_array[4] = user_array[4].to_json # User preferences
|
user_array[4] = user_array[4].to_json # User preferences
|
||||||
|
|
||||||
@ -23,16 +23,16 @@ module Invidious::Database::Users
|
|||||||
SQL
|
SQL
|
||||||
end
|
end
|
||||||
|
|
||||||
PG_DB.exec(request, args: user_array)
|
conn.exec(request, args: user_array)
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete(user : User)
|
def delete(user : User, *, conn : DB::Database | DB::Connection | DB::Transaction = PG_DB)
|
||||||
request = <<-SQL
|
request = <<-SQL
|
||||||
DELETE FROM users *
|
DELETE FROM users *
|
||||||
WHERE email = $1
|
WHERE email = $1
|
||||||
SQL
|
SQL
|
||||||
|
|
||||||
PG_DB.exec(request, user.email)
|
conn.exec(request, user.email)
|
||||||
end
|
end
|
||||||
|
|
||||||
# -------------------
|
# -------------------
|
||||||
|
|||||||
@ -124,9 +124,11 @@ module Invidious::Routes::Account
|
|||||||
end
|
end
|
||||||
|
|
||||||
view_name = "subscriptions_#{sha256(user.email)}"
|
view_name = "subscriptions_#{sha256(user.email)}"
|
||||||
Invidious::Database::Users.delete(user)
|
PG_DB.transaction do |tx|
|
||||||
Invidious::Database::SessionIDs.delete(email: user.email)
|
Invidious::Database::Users.delete(user, conn: tx.connection)
|
||||||
PG_DB.exec("DROP MATERIALIZED VIEW #{view_name}")
|
Invidious::Database::SessionIDs.delete(email: user.email, conn: tx.connection)
|
||||||
|
tx.connection.exec("DROP MATERIALIZED VIEW #{view_name}")
|
||||||
|
end
|
||||||
|
|
||||||
env.request.cookies.each do |cookie|
|
env.request.cookies.each do |cookie|
|
||||||
cookie.expires = Time.utc(1990, 1, 1)
|
cookie.expires = Time.utc(1990, 1, 1)
|
||||||
|
|||||||
@ -122,11 +122,13 @@ module Invidious::Routes::Login
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Invidious::Database::Users.insert(user)
|
PG_DB.transaction do |tx|
|
||||||
Invidious::Database::SessionIDs.insert(sid, email)
|
Invidious::Database::Users.insert(user, conn: tx.connection)
|
||||||
|
Invidious::Database::SessionIDs.insert(sid, email, conn: tx.connection)
|
||||||
|
|
||||||
view_name = "subscriptions_#{sha256(user.email)}"
|
view_name = "subscriptions_#{sha256(user.email)}"
|
||||||
PG_DB.exec("CREATE MATERIALIZED VIEW #{view_name} AS #{MATERIALIZED_VIEW_SQL.call(user.email)}")
|
tx.connection.exec("CREATE MATERIALIZED VIEW #{view_name} AS #{MATERIALIZED_VIEW_SQL.call(user.email)}")
|
||||||
|
end
|
||||||
|
|
||||||
if alt = CONFIG.alternative_domains.index(host)
|
if alt = CONFIG.alternative_domains.index(host)
|
||||||
env.response.cookies["SID"] = Invidious::User::Cookies.sid(CONFIG.alternative_domains[alt], sid)
|
env.response.cookies["SID"] = Invidious::User::Cookies.sid(CONFIG.alternative_domains[alt], sid)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user