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