mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
Trim WebHookUserSerializer.
This commit is contained in:
@@ -339,22 +339,36 @@ class UserSerializer < BasicUserSerializer
|
|||||||
User.system_avatar_template(object.username)
|
User.system_avatar_template(object.username)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def include_gravatar_avatar_upload_id?
|
||||||
|
object.user_avatar&.gravatar_upload_id
|
||||||
|
end
|
||||||
|
|
||||||
def gravatar_avatar_upload_id
|
def gravatar_avatar_upload_id
|
||||||
object.user_avatar.try(:gravatar_upload_id)
|
object.user_avatar.gravatar_upload_id
|
||||||
|
end
|
||||||
|
|
||||||
|
def include_gravatar_avatar_template?
|
||||||
|
include_gravatar_avatar_upload_id?
|
||||||
end
|
end
|
||||||
|
|
||||||
def gravatar_avatar_template
|
def gravatar_avatar_template
|
||||||
return unless gravatar_upload_id = object.user_avatar.try(:gravatar_upload_id)
|
User.avatar_template(object.username, object.user_avatar.gravatar_upload_id)
|
||||||
User.avatar_template(object.username, gravatar_upload_id)
|
end
|
||||||
|
|
||||||
|
def include_custom_avatar_upload_id?
|
||||||
|
object.user_avatar&.custom_upload_id
|
||||||
end
|
end
|
||||||
|
|
||||||
def custom_avatar_upload_id
|
def custom_avatar_upload_id
|
||||||
object.user_avatar.try(:custom_upload_id)
|
object.user_avatar.custom_upload_id
|
||||||
|
end
|
||||||
|
|
||||||
|
def include_custom_avatar_template?
|
||||||
|
include_custom_avatar_upload_id?
|
||||||
end
|
end
|
||||||
|
|
||||||
def custom_avatar_template
|
def custom_avatar_template
|
||||||
return unless custom_upload_id = object.user_avatar.try(:custom_upload_id)
|
User.avatar_template(object.username, object.user_avatar.custom_upload_id)
|
||||||
User.avatar_template(object.username, custom_upload_id)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def has_title_badges
|
def has_title_badges
|
||||||
|
|||||||
@@ -5,6 +5,31 @@ class WebHookUserSerializer < UserSerializer
|
|||||||
def staff_attributes(*attrs)
|
def staff_attributes(*attrs)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
%i{
|
||||||
|
can_edit
|
||||||
|
can_edit_username
|
||||||
|
can_edit_email
|
||||||
|
can_edit_name
|
||||||
|
can_send_private_messages
|
||||||
|
can_send_private_message_to_user
|
||||||
|
uploaded_avatar_id
|
||||||
|
has_title_badges
|
||||||
|
bio_cooked
|
||||||
|
custom_fields
|
||||||
|
can_be_deleted
|
||||||
|
can_delete_all_posts
|
||||||
|
system_avatar_upload_id
|
||||||
|
gravatar_avatar_upload_id
|
||||||
|
custom_avatar_upload_id
|
||||||
|
can_change_bio
|
||||||
|
user_api_keys
|
||||||
|
group_users
|
||||||
|
}.each do |attr|
|
||||||
|
define_method("include_#{attr}?") do
|
||||||
|
false
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def include_email?
|
def include_email?
|
||||||
scope.is_admin?
|
scope.is_admin?
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -18,4 +18,21 @@ RSpec.describe WebHookUserSerializer do
|
|||||||
expect(payload[:email]).to eq(user.email)
|
expect(payload[:email]).to eq(user.email)
|
||||||
expect(payload[:external_id]).to eq('12345')
|
expect(payload[:external_id]).to eq('12345')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should only include the required keys' do
|
||||||
|
count = serializer.as_json.keys.count
|
||||||
|
difference = count - 42
|
||||||
|
|
||||||
|
expect(difference).to eq(0), lambda {
|
||||||
|
message = ""
|
||||||
|
|
||||||
|
if difference < 0
|
||||||
|
message << "#{difference * -1} key(s) have been removed from this serializer."
|
||||||
|
else
|
||||||
|
message << "#{difference} key(s) have been added to this serializer."
|
||||||
|
end
|
||||||
|
|
||||||
|
message << "\nPlease verify if those key(s) are required as part of the web hook's payload."
|
||||||
|
}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user