OSDN Git Service

You should not be able to remove a Group owner
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 22 Jun 2013 08:02:31 +0000 (11:02 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Sat, 22 Jun 2013 08:02:31 +0000 (11:02 +0300)
app/controllers/users_groups_controller.rb
app/views/users_groups/_users_group.html.haml
lib/tasks/migrate/migrate_groups.rake [new file with mode: 0644]

index 9181f16..c30034d 100644 (file)
@@ -18,7 +18,7 @@ class UsersGroupsController < ApplicationController
 
   def destroy
     @users_group = @group.users_groups.find(params[:id])
-    @users_group.destroy
+    @users_group.destroy unless @users_group.user == @group.owner
 
     respond_to do |format|
       format.html { redirect_to people_group_path(@group), notice: 'User was  successfully removed from group.' }
index c6dca5f..3a1e32d 100644 (file)
@@ -13,6 +13,6 @@
     - else
       = member.human_access
 
-    - if show_controls && user != current_user
+    - if show_controls && user != current_user && user != @group.owner
       = link_to group_users_group_path(@group, member), confirm: remove_user_from_group_message(@group, user), method: :delete, remote: true, class: "btn-tiny btn btn-remove", title: 'Remove user from group' do
         %i.icon-minus.icon-white
diff --git a/lib/tasks/migrate/migrate_groups.rake b/lib/tasks/migrate/migrate_groups.rake
new file mode 100644 (file)
index 0000000..153172d
--- /dev/null
@@ -0,0 +1,16 @@
+desc "GITLAB | Migrate Gropus to match v6.0"
+task migrate_groups: :environment do
+  puts "This will add group owners to group membership"
+  ask_to_continue
+
+  Group.find_each(batch_size: 20) do |group|
+    begin
+      group.send :add_owner
+      print '.'
+    rescue => ex
+      puts ex.message
+      print 'F'
+    end
+  end
+end
+