Alias the user creation_time column

This allows rails to set the created_at automatically, and so avoids
us from having to do so in a callback. It also hides the unusual
db column name from the rest of the app.
This commit is contained in:
Andy Allan 2021-12-22 14:48:07 +00:00
parent bf5f2890ac
commit 40e8482825
5 changed files with 9 additions and 12 deletions

View file

@ -114,7 +114,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
@ -308,7 +309,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)
@ -317,7 +318,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)
@ -327,10 +328,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)

View file

@ -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)

View file

@ -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?,

View file

@ -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 %>
</p>
<div class="richtext text-break"><%= user.description.to_html %></div>

View file

@ -120,7 +120,7 @@
<small>
<dl class="dl-inline">
<dt><%= t ".mapper since" %></dt>
<dd><%= l @user.creation_time.to_date, :format => :long %></dd>
<dd><%= l @user.created_at.to_date, :format => :long %></dd>
<% unless @user.terms_agreed %>
<dt><%= t ".ct status" %></dt>
<dd>