OSDN Git Service

NamespacesHelper
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 27 Nov 2012 15:48:25 +0000 (17:48 +0200)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Tue, 27 Nov 2012 15:48:25 +0000 (17:48 +0200)
app/helpers/application_helper.rb
app/helpers/namespaces_helper.rb [new file with mode: 0644]

index a284d8f..8f4d908 100644 (file)
@@ -74,28 +74,6 @@ module ApplicationHelper
     grouped_options_for_select(options, @ref || @project.default_branch)
   end
 
-  def namespaces_options(selected = :current_user, scope = :default)
-    groups = current_user.namespaces.select {|n| n.type == 'Group'}
-
-    users = if scope == :all
-              Namespace.root
-            else
-              current_user.namespaces.reject {|n| n.type == 'Group'}
-            end
-
-    options = [
-      ["Global", [['/', Namespace.global_id]] ],
-      ["Groups", groups.map {|g| [g.human_name, g.id]} ],
-      [ "Users", users.map {|u| [u.human_name, u.id]} ]
-    ]
-
-    if selected == :current_user && current_user.namespace
-      selected = current_user.namespace.id
-    end
-
-    grouped_options_for_select(options, selected)
-  end
-
   def search_autocomplete_source
     projects = current_user.projects.map{ |p| { label: p.name_with_namespace, url: project_path(p) } }
 
diff --git a/app/helpers/namespaces_helper.rb b/app/helpers/namespaces_helper.rb
new file mode 100644 (file)
index 0000000..fdf6725
--- /dev/null
@@ -0,0 +1,26 @@
+module NamespacesHelper
+  def namespaces_options(selected = :current_user, scope = :default)
+    groups = current_user.namespaces.select {|n| n.type == 'Group'}
+
+    users = if scope == :all
+              Namespace.root
+            else
+              current_user.namespaces.reject {|n| n.type == 'Group'}
+            end
+
+    global_opts = ["Global", [['/', Namespace.global_id]] ]
+    group_opts = ["Groups", groups.map {|g| [g.human_name, g.id]} ]
+    users_opts = [ "Users", users.map {|u| [u.human_name, u.id]} ]
+
+    options = []
+    options << global_opts if current_user.admin
+    options << group_opts
+    options << users_opts
+
+    if selected == :current_user && current_user.namespace
+      selected = current_user.namespace.id
+    end
+
+    grouped_options_for_select(options, selected)
+  end
+end