]> git.openstreetmap.org Git - rails.git/commitdiff
Alias the user creation_time column
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 22 Dec 2021 14:48:07 +0000 (14:48 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 22 Dec 2021 14:48:07 +0000 (14:48 +0000)
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.

app/models/user.rb
app/views/api/users/_user.json.jbuilder
app/views/api/users/_user.xml.builder
app/views/users/_user.html.erb
app/views/users/show.html.erb

index 8b8f31676b6e37870dfb9542ec8bad4229805b26..8f02e35cf172fd82e40c58a9ab200f55e3680be9 100644 (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)
index 7659e4e110c5b40667cb681b21fb116f48295913..15f0685ac9e24b9131b75ab2389a73c04157e008 100644 (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)
index 7d6b177f2f6db76d6d8222dd9918fc5b6d6efa7b..1791c60ef96fb0cf78d876106ed07c2b836b7135 100644 (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?,
index f01f8d1edce3d26bbe959e614df08df18d37639e..e419aed1d43d2b22d7cde109f4fef91d45ab2391 100644 (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>
index b55e61f26d48a412e62a526c2dc61925f17a7264..95878402bde87eb4e415a6098ff523aec17f4178 100644 (file)
         <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>