aboutsummaryrefslogtreecommitdiffstats
path: root/app/models/user.rb
diff options
context:
space:
mode:
authorSeb Bacon <seb.bacon@gmail.com>2012-02-09 13:21:56 +0000
committerSeb Bacon <seb.bacon@gmail.com>2012-02-09 13:21:56 +0000
commit308707f1512fc43c570023ee786463d37e43f1fb (patch)
treeea7ebdaaf9988a8adfa91b8ff2b496a92a6624f9 /app/models/user.rb
parentb1a683778e817005751ac08654d17366d4cda624 (diff)
parent46646f8e659dc3c567495424088eb66e6ef2feee (diff)
Merge branch 'release/0.5.1'
Conflicts: README.md
Diffstat (limited to 'app/models/user.rb')
-rw-r--r--app/models/user.rb23
1 files changed, 22 insertions, 1 deletions
diff --git a/app/models/user.rb b/app/models/user.rb
index 8c4b35fe6..59a84b7aa 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -61,7 +61,8 @@ class User < ActiveRecord::Base
:values => [
[ :created_at_numeric, 1, "created_at", :number ] # for sorting
],
- :terms => [ [ :variety, 'V', "variety" ] ]
+ :terms => [ [ :variety, 'V', "variety" ] ],
+ :if => :indexed_by_search?
def created_at_numeric
# format it here as no datetime support in Xapian's value ranges
return self.created_at.strftime("%Y%m%d%H%M%S")
@@ -264,6 +265,12 @@ class User < ActiveRecord::Base
def User.view_hidden_requests?(user)
!user.nil? && user.admin_level == 'super'
end
+
+ # Should the user be kept logged into their own account
+ # if they follow a /c/ redirect link belonging to another user?
+ def User.stay_logged_in_on_redirect?(user)
+ !user.nil? && user.admin_level == 'super'
+ end
# Does the user get "(admin)" links on each page on the main site?
def admin_page_links?
@@ -288,6 +295,16 @@ class User < ActiveRecord::Base
return (recent_requests >= daily_limit)
end
+ def next_request_permitted_at
+ return nil if self.no_limit
+
+ daily_limit = MySociety::Config.get("MAX_REQUESTS_PER_USER_PER_DAY")
+ n_most_recent_requests = InfoRequest.all(:conditions => ["user_id = ? and created_at > now() - '1 day'::interval", self.id], :order => "created_at DESC", :limit => daily_limit)
+ return nil if n_most_recent_requests.size < daily_limit
+
+ nth_most_recent_request = n_most_recent_requests[-1]
+ return nth_most_recent_request.created_at + 1.day
+ end
def can_make_followup?
self.ban_text.empty?
end
@@ -378,6 +395,10 @@ class User < ActiveRecord::Base
def should_be_emailed?
return (self.email_confirmed && self.email_bounced_at.nil?)
end
+
+ def indexed_by_search?
+ return self.email_confirmed
+ end
## Private instance methods
private