Commit 82a434f
Changed files (3)
app
models
scim
spec
models
app/models/scim/user.rb
@@ -4,6 +4,7 @@ module SCIM
class User
ATTRIBUTES = {
userName: :email,
+ 'meta.lastModified' => :updated_at
}.with_indifferent_access
include ActiveModel::Model
attr_accessor :id, :schemas, :userName, :name, :locale, :timezone, :password
app/models/scim/visitor.rb
@@ -15,6 +15,10 @@ module Scim
User.where("#{attr} like ?", "#{tree[:value].to_s[1..-2]}%")
when 'ew'
User.where("#{attr} like ?", "%#{tree[:value].to_s[1..-2]}")
+ when 'gt'
+ value = tree[:value].to_s[1..-2]
+ value = DateTime.parse(value)
+ User.where("#{attr} > ?", value)
else
User.none
end
spec/models/user_spec.rb
@@ -41,7 +41,15 @@ RSpec.describe User do
end
specify do
- results = User.scim_filter_for(tree_for("userName ew \"#{random_user.email[-3..-1]}\""))
+ results = User.scim_filter_for(tree_for("userName ew \"#{random_user.email[-5..-1]}\""))
+ 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 gt \"#{Time.now.iso8601}\""))
expect(results).to match_array([random_user])
end