| 
									
										
										
										
											2017-04-29 18:28:16 -04:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module UserTrackingConcern | 
					
						
							|  |  |  |   extend ActiveSupport::Concern | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   UPDATE_SIGN_IN_HOURS = 24
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   included do | 
					
						
							| 
									
										
										
										
											2017-10-13 16:44:29 +02:00
										 |  |  |     before_action :set_user_activity | 
					
						
							| 
									
										
										
										
											2017-04-29 18:28:16 -04:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   private | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def set_user_activity | 
					
						
							| 
									
										
										
										
											2017-10-13 16:44:29 +02:00
										 |  |  |     return unless user_needs_sign_in_update? | 
					
						
							| 
									
										
										
										
											2017-04-29 18:28:16 -04:00
										 |  |  |     current_user.update_tracked_fields!(request) | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   def user_needs_sign_in_update? | 
					
						
							| 
									
										
										
										
											2017-10-13 16:44:29 +02:00
										 |  |  |     user_signed_in? && (current_user.current_sign_in_at.nil? || current_user.current_sign_in_at < UPDATE_SIGN_IN_HOURS.hours.ago) | 
					
						
							| 
									
										
										
										
											2017-04-29 18:28:16 -04:00
										 |  |  |   end | 
					
						
							|  |  |  | end |