From: Tom Hughes
Date: Wed, 22 Dec 2021 15:36:25 +0000 (+0000)
Subject: Merge remote-tracking branch 'upstream/pull/3404'
X-Git-Tag: live~2401
X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/0ca2e10b1d42fc08ca024364be06955af71ed932?hp=99a64ba8c16d5d8b5baaac4e4d9d994d17103b3e
Merge remote-tracking branch 'upstream/pull/3404'
---
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 4f05ece74..f7a82c08c 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -208,9 +208,9 @@ class UsersController < ApplicationController
end
##
- # delete a user, marking them as deleted and removing personal data
+ # destroy a user, marking them as deleted and removing personal data
def destroy
- @user.delete
+ @user.destroy
redirect_to user_path(:display_name => params[:display_name])
end
diff --git a/app/models/user.rb b/app/models/user.rb
index abd001f06..8c75b4ef4 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -113,7 +113,8 @@ class User < ApplicationRecord
validates_email_format_of :email, :if => proc { |u| u.email_changed? }
validates_email_format_of :new_email, :allow_blank => true, :if => proc { |u| u.new_email_changed? }
- after_initialize :set_defaults
+ alias_attribute :created_at, :creation_time
+
before_save :encrypt_password
before_save :update_tile
after_save :spam_check
@@ -240,8 +241,8 @@ class User < ApplicationRecord
end
##
- # delete a user - leave the account but purge most personal data
- def delete
+ # destroy a user - leave the account but purge most personal data
+ def destroy
avatar.purge_later
self.display_name = "user_#{id}"
@@ -307,7 +308,7 @@ class User < ApplicationRecord
end
def max_messages_per_hour
- account_age_in_seconds = Time.now.utc - creation_time
+ account_age_in_seconds = Time.now.utc - created_at
account_age_in_hours = account_age_in_seconds / 3600
recent_messages = messages.where("sent_on >= ?", Time.now.utc - 3600).count
active_reports = issues.with_status(:open).sum(:reports_count)
@@ -316,7 +317,7 @@ class User < ApplicationRecord
end
def max_friends_per_hour
- account_age_in_seconds = Time.now.utc - creation_time
+ account_age_in_seconds = Time.now.utc - created_at
account_age_in_hours = account_age_in_seconds / 3600
recent_friends = Friendship.where(:befriendee => self).where("created_at >= ?", Time.now.utc - 3600).count
active_reports = issues.with_status(:open).sum(:reports_count)
@@ -326,10 +327,6 @@ class User < ApplicationRecord
private
- def set_defaults
- self.creation_time = Time.now.getutc unless attribute_present?(:creation_time)
- end
-
def encrypt_password
if pass_crypt_confirmation
self.pass_crypt, self.pass_salt = PasswordHash.create(pass_crypt)
diff --git a/app/views/api/users/_user.json.jbuilder b/app/views/api/users/_user.json.jbuilder
index 7659e4e11..15f0685ac 100644
--- a/app/views/api/users/_user.json.jbuilder
+++ b/app/views/api/users/_user.json.jbuilder
@@ -1,7 +1,7 @@
json.user do
json.id user.id
json.display_name user.display_name
- json.account_created user.creation_time.xmlschema
+ json.account_created user.created_at.xmlschema
json.description user.description if user.description
if current_user && current_user == user && can?(:details, User)
diff --git a/app/views/api/users/_user.xml.builder b/app/views/api/users/_user.xml.builder
index 7d6b177f2..1791c60ef 100644
--- a/app/views/api/users/_user.xml.builder
+++ b/app/views/api/users/_user.xml.builder
@@ -1,6 +1,6 @@
xml.tag! "user", :id => user.id,
:display_name => user.display_name,
- :account_created => user.creation_time.xmlschema do
+ :account_created => user.created_at.xmlschema do
xml.tag! "description", user.description if user.description
if current_user && current_user == user && can?(:details, User)
xml.tag! "contributor-terms", :agreed => user.terms_agreed.present?,
diff --git a/app/views/users/_user.html.erb b/app/views/users/_user.html.erb
index f01f8d1ed..e419aed1d 100644
--- a/app/views/users/_user.html.erb
+++ b/app/views/users/_user.html.erb
@@ -8,11 +8,11 @@
<%= t "users.index.summary_html",
:name => link_to(user.display_name, user_path(user)),
:ip_address => link_to(user.creation_ip, :ip => user.creation_ip),
- :date => l(user.creation_time, :format => :friendly) %>
+ :date => l(user.created_at, :format => :friendly) %>
<% else %>
<%= t "users.index.summary_no_ip_html",
:name => link_to(user.display_name, user_path(user)),
- :date => l(user.creation_time, :format => :friendly) %>
+ :date => l(user.created_at, :format => :friendly) %>
<% end %>
<%= user.description.to_html %>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index b55e61f26..95878402b 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -120,7 +120,7 @@
- <%= t ".mapper since" %>
- - <%= l @user.creation_time.to_date, :format => :long %>
+ - <%= l @user.created_at.to_date, :format => :long %>
<% unless @user.terms_agreed %>
- <%= t ".ct status" %>
-
diff --git a/test/controllers/browse_controller_test.rb b/test/controllers/browse_controller_test.rb
index 135e49d3f..d9f4401bf 100644
--- a/test/controllers/browse_controller_test.rb
+++ b/test/controllers/browse_controller_test.rb
@@ -161,7 +161,7 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
assert_select "div.note-comments ul li", :count => 2
assert_select "div.details", /Resolved by #{user.display_name}/
- user.delete
+ user.destroy
reset!
diff --git a/test/models/user_test.rb b/test/models/user_test.rb
index c34b4b81f..76f520091 100644
--- a/test/models/user_test.rb
+++ b/test/models/user_test.rb
@@ -256,9 +256,9 @@ class UserTest < ActiveSupport::TestCase
assert create(:moderator_user).has_role?("moderator")
end
- def test_delete
+ def test_destroy
user = create(:user, :with_home_location, :description => "foo")
- user.delete
+ user.destroy
assert_equal "user_#{user.id}", user.display_name
assert user.description.blank?
assert_nil user.home_lat