Skip to content

Commit 57c8d2a

Browse files
committed
fix: Update serialization filter to include lastLoginAt visibility check for non-admin users
1 parent 364a547 commit 57c8d2a

1 file changed

Lines changed: 13 additions & 1 deletion

File tree

  • lib/ontologies_linked_data/models/users

lib/ontologies_linked_data/models/users/user.rb

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class User < LinkedData::Models::Base
4343
embed_values :role => [:role]
4444
serialize_default :username, :email, :role, :apikey
4545
serialize_never :passwordHash, :show_apikey, :resetToken, :resetTokenExpireTime
46-
serialize_filter lambda {|inst| show_apikey?(inst)}
46+
serialize_filter lambda {|inst| filter_attributes(inst)}
4747

4848
link_to LinkedData::Hypermedia::Link.new("createdOntologies", lambda {|s| "users/#{s.id.split('/').last}/ontologies"}, nil)
4949

@@ -63,6 +63,18 @@ def self.show_apikey?(inst)
6363
end
6464
end
6565

66+
def self.show_lastLoginAt?
67+
unless Thread.current[:remote_user]&.admin?
68+
return attributes - [:lastLoginAt]
69+
end
70+
end
71+
72+
def self.filter_attributes(inst)
73+
attrs = show_apikey?(inst)
74+
attrs = show_lastLoginAt?
75+
attrs
76+
end
77+
6678
def embedded_doc
6779
"#{self.firstName} #{self.lastName} #{self.username}"
6880
end

0 commit comments

Comments
 (0)