has_many :client_applications
has_many :oauth_tokens, -> { order(:authorized_at => :desc).preload(:client_application) }, :class_name => "OauthToken"
+ has_many :oauth2_applications, :class_name => Doorkeeper.config.application_model.name, :foreign_key => :owner_id
+ has_many :access_grants, :class_name => Doorkeeper.config.access_grant_model.name, :foreign_key => :resource_owner_id
+ has_many :access_tokens, :class_name => Doorkeeper.config.access_token_model.name, :foreign_key => :resource_owner_id
+
has_many :blocks, :class_name => "UserBlock"
has_many :blocks_created, :class_name => "UserBlock", :foreign_key => :creator_id
has_many :blocks_revoked, :class_name => "UserBlock", :foreign_key => :revoker_id
digest.hexdigest
end
+ def max_messages_per_hour
+ account_age_in_seconds = Time.now.utc - creation_time
+ 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)
+ max_messages = account_age_in_hours.ceil + recent_messages - active_reports * 10
+ max_messages.clamp(0, Settings.max_messages_per_hour)
+ end
+
+ def max_friends_per_hour
+ account_age_in_seconds = Time.now.utc - creation_time
+ 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)
+ max_friends = account_age_in_hours.ceil + recent_friends - active_reports * 10
+ max_friends.clamp(0, Settings.max_friends_per_hour)
+ end
+
private
def set_defaults