diff options
author | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 22:34:23 +0300 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2021-01-20 22:34:23 +0300 |
commit | 6438df3a1e0fb944485cebf07976160184697d72 (patch) | |
tree | 00b09bfd170e77ae9391b1a2f5a93ef6839f2597 /app/serializers/member_entity.rb | |
parent | 42bcd54d971da7ef2854b896a7b34f4ef8601067 (diff) |
Add latest changes from gitlab-org/gitlab@13-8-stable-eev13.8.0-rc42
Diffstat (limited to 'app/serializers/member_entity.rb')
-rw-r--r-- | app/serializers/member_entity.rb | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/app/serializers/member_entity.rb b/app/serializers/member_entity.rb new file mode 100644 index 00000000000..584ba4c62de --- /dev/null +++ b/app/serializers/member_entity.rb @@ -0,0 +1,54 @@ +# frozen_string_literal: true + +class MemberEntity < Grape::Entity + include RequestAwareEntity + include AvatarsHelper + + expose :id + expose :created_at + expose :expires_at do |member| + member.expires_at&.to_time + end + expose :requested_at + + expose :created_by, if: -> (member) { member.created_by.present? } do |member| + UserEntity.represent(member.created_by, only: [:name, :web_url]) + end + + expose :can_update do |member| + member.can_update? + end + + expose :can_remove do |member| + member.can_remove? + end + + expose :access_level do + expose :human_access, as: :string_value + expose :access_level, as: :integer_value + end + + expose :source do |member| + GroupEntity.represent(member.source, only: [:id, :full_name, :web_url]) + end + + expose :valid_level_roles, as: :valid_roles + + expose :user, if: -> (member) { member.user.present? }, using: MemberUserEntity + + expose :invite, if: -> (member) { member.invite? } do + expose :email do |member| + member.invite_email + end + + expose :avatar_url do |member| + avatar_icon_for_email(member.invite_email, Member::AVATAR_SIZE) + end + + expose :can_resend do |member| + member.can_resend_invite? + end + end +end + +MemberEntity.prepend_if_ee('EE::MemberEntity') |