+
+ # These attributes are not the defaults, but in most tests we want
+ # a 'normal' user who can log in without being redirected etc.
+ status "active"
+ terms_seen true
+ data_public true
+
+ trait :with_home_location do
+ home_lat { rand(-90.0...90.0) }
+ home_lon { rand(-180.0...180.0) }
+ end
+
+ trait :pending do
+ status "pending"
+ end
+
+ trait :active do
+ status "active"
+ end
+
+ trait :confirmed do
+ status "confirmed"
+ end
+
+ trait :suspended do
+ status "suspended"
+ end
+
+ trait :deleted do
+ status "deleted"
+ end
+
+ factory :moderator_user do
+ after(:create) do |user, _evaluator|
+ create(:user_role, :role => "moderator", :user => user)
+ end
+ end
+
+ factory :administrator_user do
+ after(:create) do |user, _evaluator|
+ create(:user_role, :role => "administrator", :user => user)
+ end
+ end
+
+ factory :super_user do
+ after(:create) do |user, _evaluator|
+ UserRole::ALL_ROLES.each do |role|
+ create(:user_role, :role => role, :user => user)
+ end
+ end
+ end