Welcome to mirror list, hosted at ThFree Co, Russian Federation.

group_callouts_helper.rb « users « helpers « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: b66c7f9f8218ce19e6f65e1f7be47f1b20f2626d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# frozen_string_literal: true

module Users
  module GroupCalloutsHelper
    INVITE_MEMBERS_BANNER = 'invite_members_banner'

    def show_invite_banner?(group)
      Ability.allowed?(current_user, :admin_group, group) &&
        !just_created? &&
        !user_dismissed_for_group(INVITE_MEMBERS_BANNER, group) &&
        !multiple_members?(group)
    end

    private

    def user_dismissed_for_group(feature_name, group, ignore_dismissal_earlier_than = nil)
      return false unless current_user

      current_user.dismissed_callout_for_group?(feature_name: feature_name,
                                                group: group,
                                                ignore_dismissal_earlier_than: ignore_dismissal_earlier_than)
    end

    def just_created?
      flash[:notice]&.include?('successfully created')
    end

    def multiple_members?(group)
      group.member_count > 1 || group.members_with_parents.count > 1
    end
  end
end