From bd59e59d01c5e845c7f7d451feaa1488670f20de Mon Sep 17 00:00:00 2001
From: Felipe Artur <felipefac@gmail.com>
Date: Thu, 3 Mar 2016 16:52:38 -0300
Subject: [PATCH] Add visibility level icon and a couple of specs

---
 app/helpers/groups_helper.rb                  |  6 ++-
 app/views/shared/groups/_group.html.haml      |  3 ++
 ...01124843_add_visibility_level_to_groups.rb |  2 +-
 spec/controllers/groups_controller_spec.rb    | 38 +++++++++++++++++++
 4 files changed, 47 insertions(+), 2 deletions(-)

diff --git a/app/helpers/groups_helper.rb b/app/helpers/groups_helper.rb
index d918d8acd22..42e09149bd7 100644
--- a/app/helpers/groups_helper.rb
+++ b/app/helpers/groups_helper.rb
@@ -28,7 +28,7 @@ module GroupsHelper
       group = Group.find_by(path: group)
     end
 
-    if group && can?(current_user, :read_group, group) && group.avatar.present?
+    if group && group.avatar.present?
       group.avatar.url
     else
       'no_group_avatar.png'
@@ -43,4 +43,8 @@ module GroupsHelper
       full_title
     end
   end
+
+  def group_visibility_description(group)
+    "#{visibility_level_label(group.visibility_level)} - #{group_visibility_level_description(group.visibility_level)}"
+  end
 end
diff --git a/app/views/shared/groups/_group.html.haml b/app/views/shared/groups/_group.html.haml
index fb9a8db0889..82eeb2088c8 100644
--- a/app/views/shared/groups/_group.html.haml
+++ b/app/views/shared/groups/_group.html.haml
@@ -21,6 +21,9 @@
       = icon('users')
       = number_with_delimiter(group.users.count)
 
+    %span{title: group_visibility_description(group)}
+      = visibility_level_icon(group.visibility_level, fw: false)
+
   = image_tag group_icon(group), class: "avatar s40 hidden-xs"
   = link_to group, class: 'group-name title' do
     = group.name
diff --git a/db/migrate/20160301124843_add_visibility_level_to_groups.rb b/db/migrate/20160301124843_add_visibility_level_to_groups.rb
index 86dc07f4333..cef553981e7 100644
--- a/db/migrate/20160301124843_add_visibility_level_to_groups.rb
+++ b/db/migrate/20160301124843_add_visibility_level_to_groups.rb
@@ -1,6 +1,6 @@
 class AddVisibilityLevelToGroups < ActiveRecord::Migration
   def change
-    #All groups will be private when created
+    #All groups public by default
     add_column :namespaces, :visibility_level, :integer, null: false, default: 20
   end
 end
diff --git a/spec/controllers/groups_controller_spec.rb b/spec/controllers/groups_controller_spec.rb
index 938e97298b6..e7ead824d20 100644
--- a/spec/controllers/groups_controller_spec.rb
+++ b/spec/controllers/groups_controller_spec.rb
@@ -20,4 +20,42 @@ describe GroupsController do
       end
     end
   end
+
+  describe 'GET show' do
+    let(:group) { create(:group, visibility_level: 20) }
+
+    it 'checks if group can be read' do
+      expect(controller).to receive(:authorize_read_group!)
+      get :show, id: group.path
+    end
+  end
+
+  describe 'POST create' do
+    before { sign_in(create(:user)) }
+
+    it 'checks if group can be created' do
+      expect(controller).to receive(:authorize_create_group!)
+      post :create, { group: { name: "any params" } }
+    end
+  end
+
+  describe 'DELETE destroy' do
+    before { sign_in(create(:user)) }
+    let(:group) { create(:group, visibility_level: 20) }
+
+    it 'checks if group can be deleted' do
+      expect(controller).to receive(:authorize_admin_group!)
+      delete :destroy, id: group.path
+    end
+  end
+
+  describe 'PUT update' do
+    before { sign_in(create(:user)) }
+    let(:group) { create(:group, visibility_level: 20) }
+
+    it 'checks if group can be updated' do
+      expect(controller).to receive(:authorize_admin_group!)
+      put :update, id: group.path, group: { name: 'test' }
+    end
+  end
 end
-- 
GitLab