summaryrefslogtreecommitdiff
path: root/app/helpers/namespaces_helper.rb
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-08-08 15:05:58 +0200
committerJames Lopez <james@jameslopez.es>2016-09-20 10:14:39 +0200
commit0c65112da79e177da3574458c3bb5befc349fd30 (patch)
treef3715fa7342143d1fd7bd53278c3ecf279e87c49 /app/helpers/namespaces_helper.rb
parent95b9421ad3b2678da6e0af0131eafd52cdd0b2a5 (diff)
downloadgitlab-ce-0c65112da79e177da3574458c3bb5befc349fd30.tar.gz
modify github import JS and controller so we can now specify a namespace and/or name for a project.
- Fixed and added specs. - Added different namespace options depending on user privilages - Updated docs.
Diffstat (limited to 'app/helpers/namespaces_helper.rb')
-rw-r--r--app/helpers/namespaces_helper.rb14
1 files changed, 13 insertions, 1 deletions
diff --git a/app/helpers/namespaces_helper.rb b/app/helpers/namespaces_helper.rb
index 94c6b548ecd..af06833ef91 100644
--- a/app/helpers/namespaces_helper.rb
+++ b/app/helpers/namespaces_helper.rb
@@ -1,6 +1,9 @@
module NamespacesHelper
- def namespaces_options(selected = :current_user, display_path: false)
+ def namespaces_options(selected = :current_user, extra_groups = [], display_path: false)
groups = current_user.owned_groups + current_user.masters_groups
+
+ groups += process_extra_groups(extra_groups) if extra_groups.any?
+
users = [current_user.namespace]
data_attr_group = { 'data-options-parent' => 'groups' }
@@ -25,6 +28,15 @@ module NamespacesHelper
grouped_options_for_select(options, selected)
end
+ def process_extra_groups(extra_groups)
+ # Remove duplicate groups - we either keep the ones that exist for the user
+ # (already in groups) or ignore those that do not belong to the user.
+ duplicated_groups = extra_groups.map { |name| Namespace.where(name: name).map(&:name) }
+ extra_groups = extra_groups - duplicated_groups.flatten
+
+ extra_groups.map { |name| Group.new(name: name) }
+ end
+
def namespace_icon(namespace, size = 40)
if namespace.kind_of?(Group)
group_icon(namespace)