Module: UpdateVisibilityLevel

Included in:
Groups::UpdateService, Projects::UpdateService
Defined in:
app/services/concerns/update_visibility_level.rb

Instance Method Summary collapse

Instance Method Details

#valid_visibility_level_change?(target, new_visibility) ⇒ Boolean

Returns:

  • (Boolean)

4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'app/services/concerns/update_visibility_level.rb', line 4

def valid_visibility_level_change?(target, new_visibility)
  # check that user is allowed to set specified visibility_level
  if new_visibility && new_visibility.to_i != target.visibility_level
    unless can?(current_user, :change_visibility_level, target) &&
        Gitlab::VisibilityLevel.allowed_for?(current_user, new_visibility)

      deny_visibility_level(target, new_visibility)
      return false
    end
  end

  true
end