debian-mirror-gitlab/app/helpers/visibility_level_helper.rb

100 lines
3.1 KiB
Ruby
Raw Normal View History

2014-09-02 18:07:02 +05:30
module VisibilityLevelHelper
def visibility_level_color(level)
case level
when Gitlab::VisibilityLevel::PRIVATE
'vs-private'
when Gitlab::VisibilityLevel::INTERNAL
'vs-internal'
when Gitlab::VisibilityLevel::PUBLIC
'vs-public'
end
end
2015-09-11 14:41:01 +05:30
# Return the description for the +level+ argument.
#
2015-12-23 02:04:40 +05:30
# +level+ One of the Gitlab::VisibilityLevel constants
# +form_model+ Either a model object (Project, Snippet, etc.) or the name of
# a Project or Snippet class.
2015-09-11 14:41:01 +05:30
def visibility_level_description(level, form_model)
2015-12-23 02:04:40 +05:30
case form_model
when Project
2015-09-11 14:41:01 +05:30
project_visibility_level_description(level)
2016-06-02 11:05:42 +05:30
when Group
group_visibility_level_description(level)
2015-12-23 02:04:40 +05:30
when Snippet
snippet_visibility_level_description(level, form_model)
2015-09-11 14:41:01 +05:30
end
end
def project_visibility_level_description(level)
2015-12-23 02:04:40 +05:30
case level
when Gitlab::VisibilityLevel::PRIVATE
"Project access must be granted explicitly to each user."
when Gitlab::VisibilityLevel::INTERNAL
"The project can be cloned by any logged in user."
when Gitlab::VisibilityLevel::PUBLIC
"The project can be cloned without any authentication."
2015-04-26 12:48:37 +05:30
end
end
2016-06-02 11:05:42 +05:30
def group_visibility_level_description(level)
case level
when Gitlab::VisibilityLevel::PRIVATE
"The group and its projects can only be viewed by members."
when Gitlab::VisibilityLevel::INTERNAL
"The group and any internal projects can be viewed by any logged in user."
when Gitlab::VisibilityLevel::PUBLIC
"The group and any public projects can be viewed without any authentication."
end
end
2015-12-23 02:04:40 +05:30
def snippet_visibility_level_description(level, snippet = nil)
2014-09-02 18:07:02 +05:30
case level
when Gitlab::VisibilityLevel::PRIVATE
2015-12-23 02:04:40 +05:30
if snippet.is_a? ProjectSnippet
"The snippet is visible only to project members."
else
"The snippet is visible only to me."
end
2014-09-02 18:07:02 +05:30
when Gitlab::VisibilityLevel::INTERNAL
2015-12-23 02:04:40 +05:30
"The snippet is visible to any logged in user."
2014-09-02 18:07:02 +05:30
when Gitlab::VisibilityLevel::PUBLIC
2015-12-23 02:04:40 +05:30
"The snippet can be accessed without any authentication."
2014-09-02 18:07:02 +05:30
end
end
2016-06-02 11:05:42 +05:30
def visibility_icon_description(form_model)
case form_model
when Project
project_visibility_icon_description(form_model.visibility_level)
when Group
group_visibility_icon_description(form_model.visibility_level)
end
end
def group_visibility_icon_description(level)
"#{visibility_level_label(level)} - #{group_visibility_level_description(level)}"
end
def project_visibility_icon_description(level)
"#{visibility_level_label(level)} - #{project_visibility_level_description(level)}"
end
2014-09-02 18:07:02 +05:30
def visibility_level_label(level)
Project.visibility_levels.key(level)
end
2015-04-26 12:48:37 +05:30
def restricted_visibility_levels(show_all = false)
2017-08-17 22:00:37 +05:30
return [] if current_user.admin? && !show_all
2015-04-26 12:48:37 +05:30
current_application_settings.restricted_visibility_levels || []
2014-09-02 18:07:02 +05:30
end
2015-09-11 14:41:01 +05:30
2017-08-17 22:00:37 +05:30
delegate :default_project_visibility,
:default_group_visibility,
to: :current_application_settings
2016-06-02 11:05:42 +05:30
2015-09-11 14:41:01 +05:30
def skip_level?(form_model, level)
2016-06-02 11:05:42 +05:30
form_model.is_a?(Project) && !form_model.visibility_level_allowed?(level)
2015-09-11 14:41:01 +05:30
end
2014-09-02 18:07:02 +05:30
end