Commit 37a4cf2
Changed files (2)
app
models
scim
spec
models
app/models/scim/visitor.rb
@@ -19,10 +19,18 @@ module Scim
value = tree[:value].to_s[1..-2]
value = DateTime.parse(value)
User.where("#{attr} > ?", value)
+ when 'ge'
+ value = tree[:value].to_s[1..-2]
+ value = DateTime.parse(value)
+ User.where("#{attr} >= ?", value)
when 'lt'
value = tree[:value].to_s[1..-2]
value = DateTime.parse(value)
User.where("#{attr} < ?", value)
+ when 'le'
+ value = tree[:value].to_s[1..-2]
+ value = DateTime.parse(value)
+ User.where("#{attr} <= ?", value)
else
User.none
end
spec/models/user_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe User do
end
specify do
- results = User.scim_filter_for(tree_for("userName co \"#{random_user.email[1..3]}\""))
+ results = User.scim_filter_for(tree_for("userName co \"#{random_user.email[1..-2]}\""))
expect(results).to match_array([random_user])
end
@@ -53,6 +53,14 @@ RSpec.describe User do
expect(results).to match_array([random_user])
end
+ specify do
+ freeze_time
+ random_user.update!(updated_at: 10.minutes.from_now)
+
+ results = User.scim_filter_for(tree_for("meta.lastModified ge \"#{random_user.updated_at.iso8601}\""))
+ expect(results).to match_array([random_user])
+ end
+
specify do
freeze_time
random_user.update!(updated_at: 10.minutes.from_now)
@@ -61,6 +69,14 @@ RSpec.describe User do
expect(results).to match_array(users - [random_user])
end
+ specify do
+ freeze_time
+ random_user.update!(updated_at: 10.minutes.ago)
+
+ results = User.scim_filter_for(tree_for("meta.lastModified le \"#{random_user.updated_at.iso8601}\""))
+ expect(results).to match_array([random_user])
+ end
+
specify do
first_user = users.sample
second_user = users.sample