Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `README.md`: Upstream added some text, but our README is completely different. Kept our README unchanged.
This commit is contained in:
5
db/migrate/20210616214526_create_user_ips.rb
Normal file
5
db/migrate/20210616214526_create_user_ips.rb
Normal file
@@ -0,0 +1,5 @@
|
||||
class CreateUserIps < ActiveRecord::Migration[6.1]
|
||||
def change
|
||||
create_view :user_ips
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,12 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
class RemoveCurrentSignInIpFromUsers < ActiveRecord::Migration[5.2]
|
||||
disable_ddl_transaction!
|
||||
|
||||
def change
|
||||
safety_assured do
|
||||
remove_column :users, :current_sign_in_ip, :inet
|
||||
remove_column :users, :last_sign_in_ip, :inet
|
||||
end
|
||||
end
|
||||
end
|
||||
24
db/schema.rb
24
db/schema.rb
@@ -925,8 +925,6 @@ ActiveRecord::Schema.define(version: 2021_12_13_040746) do
|
||||
t.integer "sign_in_count", default: 0, null: false
|
||||
t.datetime "current_sign_in_at"
|
||||
t.datetime "last_sign_in_at"
|
||||
t.inet "current_sign_in_ip"
|
||||
t.inet "last_sign_in_ip"
|
||||
t.boolean "admin", default: false, null: false
|
||||
t.string "confirmation_token"
|
||||
t.datetime "confirmed_at"
|
||||
@@ -1122,6 +1120,28 @@ ActiveRecord::Schema.define(version: 2021_12_13_040746) do
|
||||
SQL
|
||||
add_index "instances", ["domain"], name: "index_instances_on_domain", unique: true
|
||||
|
||||
create_view "user_ips", sql_definition: <<-SQL
|
||||
SELECT t0.user_id,
|
||||
t0.ip,
|
||||
max(t0.used_at) AS used_at
|
||||
FROM ( SELECT users.id AS user_id,
|
||||
users.sign_up_ip AS ip,
|
||||
users.created_at AS used_at
|
||||
FROM users
|
||||
WHERE (users.sign_up_ip IS NOT NULL)
|
||||
UNION ALL
|
||||
SELECT session_activations.user_id,
|
||||
session_activations.ip,
|
||||
session_activations.updated_at
|
||||
FROM session_activations
|
||||
UNION ALL
|
||||
SELECT login_activities.user_id,
|
||||
login_activities.ip,
|
||||
login_activities.created_at
|
||||
FROM login_activities
|
||||
WHERE (login_activities.success = true)) t0
|
||||
GROUP BY t0.user_id, t0.ip;
|
||||
SQL
|
||||
create_view "account_summaries", materialized: true, sql_definition: <<-SQL
|
||||
SELECT accounts.id AS account_id,
|
||||
mode() WITHIN GROUP (ORDER BY t0.language) AS language,
|
||||
|
||||
26
db/views/user_ips_v01.sql
Normal file
26
db/views/user_ips_v01.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
SELECT
|
||||
user_id,
|
||||
ip,
|
||||
max(used_at) AS used_at
|
||||
FROM (
|
||||
SELECT
|
||||
id AS user_id,
|
||||
sign_up_ip AS ip,
|
||||
created_at AS used_at
|
||||
FROM users
|
||||
WHERE sign_up_ip IS NOT NULL
|
||||
UNION ALL
|
||||
SELECT
|
||||
user_id,
|
||||
ip,
|
||||
updated_at
|
||||
FROM session_activations
|
||||
UNION ALL
|
||||
SELECT
|
||||
user_id,
|
||||
ip,
|
||||
created_at
|
||||
FROM login_activities
|
||||
WHERE success = 't'
|
||||
) AS t0
|
||||
GROUP BY user_id, ip
|
||||
Reference in New Issue
Block a user