summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrandx <dmitriy.zaporozhets@gmail.com>2012-04-13 08:12:34 +0300
committerrandx <dmitriy.zaporozhets@gmail.com>2012-04-13 08:12:34 +0300
commit497ee5fbbc781c8a5ffb754de5f8f5a46304aa57 (patch)
treeecde2228a5f37d091171df2bd301d284f80fc868
parentfb6d4511a05112677e0279ed87a55d3f02e2d49c (diff)
downloadgitlab-ce-497ee5fbbc781c8a5ffb754de5f8f5a46304aa57.tar.gz
Ability to block user
-rw-r--r--app/controllers/admin/users_controller.rb5
-rw-r--r--app/controllers/application_controller.rb10
-rw-r--r--app/views/admin/projects/index.html.haml4
-rw-r--r--app/views/admin/users/_form.html.haml5
-rw-r--r--app/views/admin/users/index.html.haml6
-rw-r--r--app/views/admin/users/show.html.haml5
-rw-r--r--app/views/team_members/_show.html.haml2
-rw-r--r--db/migrate/20120413135904_add_blocked_field_to_user.rb5
-rw-r--r--db/schema.rb43
9 files changed, 60 insertions, 25 deletions
diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb
index d7089fad27e..5b194d89b9b 100644
--- a/app/controllers/admin/users_controller.rb
+++ b/app/controllers/admin/users_controller.rb
@@ -40,9 +40,11 @@ class Admin::UsersController < ApplicationController
def create
admin = params[:user].delete("admin")
+ blocked = params[:user].delete("blocked")
@admin_user = User.new(params[:user])
@admin_user.admin = (admin && admin.to_i > 0)
+ @admin_user.blocked = blocked
respond_to do |format|
if @admin_user.save
@@ -57,6 +59,8 @@ class Admin::UsersController < ApplicationController
def update
admin = params[:user].delete("admin")
+ blocked = params[:user].delete("blocked")
+
if params[:user][:password].blank?
params[:user].delete(:password)
params[:user].delete(:password_confirmation)
@@ -64,6 +68,7 @@ class Admin::UsersController < ApplicationController
@admin_user = User.find(params[:id])
@admin_user.admin = (admin && admin.to_i > 0)
+ @admin_user.blocked = blocked
respond_to do |format|
if @admin_user.update_attributes(params[:user])
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb
index ff00208cff1..5ae19a7bdf8 100644
--- a/app/controllers/application_controller.rb
+++ b/app/controllers/application_controller.rb
@@ -16,6 +16,16 @@ class ApplicationController < ActionController::Base
protected
+ def after_sign_in_path_for resource
+ if resource.is_a?(User) && resource.respond_to?(:blocked) && resource.blocked
+ sign_out resource
+ flash[:alert] = "Your account was blocked"
+ new_user_session_path
+ else
+ super
+ end
+ end
+
def layout_by_resource
if devise_controller?
"devise"
diff --git a/app/views/admin/projects/index.html.haml b/app/views/admin/projects/index.html.haml
index 079ae385ccc..046cffdcc04 100644
--- a/app/views/admin/projects/index.html.haml
+++ b/app/views/admin/projects/index.html.haml
@@ -1,8 +1,8 @@
%h3
Projects
= link_to 'New Project', new_admin_project_path, :class => "btn small right"
-%hr
-%table.zebra-striped
+%br
+%table.zebra-striped.table-bordered
%thead
%th Name
%th Path
diff --git a/app/views/admin/users/_form.html.haml b/app/views/admin/users/_form.html.haml
index bb54c184e78..2fd4f7107e2 100644
--- a/app/views/admin/users/_form.html.haml
+++ b/app/views/admin/users/_form.html.haml
@@ -32,10 +32,15 @@
.clearfix
= f.label :twitter
.input= f.text_field :twitter
+ %hr
.clearfix
= f.label :admin do
= f.check_box :admin
%span Administrator
+ .clearfix
+ = f.label :blocked do
+ = f.check_box :blocked
+ %span Blocked
.actions
= f.submit 'Save', :class => "btn primary"
- if @admin_user.new_record?
diff --git a/app/views/admin/users/index.html.haml b/app/views/admin/users/index.html.haml
index 19eb64782ae..a7003f81124 100644
--- a/app/views/admin/users/index.html.haml
+++ b/app/views/admin/users/index.html.haml
@@ -1,13 +1,14 @@
%h3
Users
= link_to 'New User', new_admin_user_path, :class => "btn small right"
-%hr
-%table.zebra-striped
+%br
+%table.zebra-striped.table-bordered
%thead
%th Admin
%th Name
%th Email
%th Projects
+ %th Blocked
%th
%th
@@ -17,6 +18,7 @@
%td= link_to user.name, [:admin, user]
%td= user.email
%td= user.users_projects.count
+ %td= check_box_tag "blocked", 1, user.blocked, :disabled => :disabled
%td= link_to 'Edit', edit_admin_user_path(user), :id => "edit_#{dom_id(user)}", :class => "btn small"
%td= link_to 'Destroy', [:admin, user], :confirm => 'Are you sure?', :method => :delete, :class => "btn small danger"
diff --git a/app/views/admin/users/show.html.haml b/app/views/admin/users/show.html.haml
index 21529ab6305..fd7f4dcd937 100644
--- a/app/views/admin/users/show.html.haml
+++ b/app/views/admin/users/show.html.haml
@@ -19,6 +19,11 @@
%tr
%td
%b
+ Blocked:
+ %td= check_box_tag "blocked", 1, @admin_user.blocked, :disabled => :disabled
+ %tr
+ %td
+ %b
Projects limit:
%td
= @admin_user.projects_limit
diff --git a/app/views/team_members/_show.html.haml b/app/views/team_members/_show.html.haml
index 4218a8a985c..ac648f7cb3e 100644
--- a/app/views/team_members/_show.html.haml
+++ b/app/views/team_members/_show.html.haml
@@ -13,3 +13,5 @@
= f.select :project_access, options_for_select(UsersProject.access_roles, member.project_access), {}, :class => "medium project-access-select", :disabled => !allow_admin
- if @project.owner == user
%span.label Project Owner
+ - if user.blocked
+ %span.label Blocked
diff --git a/db/migrate/20120413135904_add_blocked_field_to_user.rb b/db/migrate/20120413135904_add_blocked_field_to_user.rb
new file mode 100644
index 00000000000..050450bf034
--- /dev/null
+++ b/db/migrate/20120413135904_add_blocked_field_to_user.rb
@@ -0,0 +1,5 @@
+class AddBlockedFieldToUser < ActiveRecord::Migration
+ def change
+ add_column :users, :blocked, :boolean, :null => false, :default => false
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 906c5b0024c..2a33c7092df 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 20120408181910) do
+ActiveRecord::Schema.define(:version => 20120413135904) do
create_table "events", :force => true do |t|
t.string "target_type"
@@ -30,8 +30,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
t.integer "assignee_id"
t.integer "author_id"
t.integer "project_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.boolean "closed", :default => false, :null => false
t.integer "position", :default => 0
t.boolean "critical", :default => false, :null => false
@@ -44,8 +44,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
create_table "keys", :force => true do |t|
t.integer "user_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.text "key"
t.string "title"
t.string "identifier"
@@ -60,10 +60,10 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
t.integer "assignee_id"
t.string "title"
t.boolean "closed", :default => false, :null => false
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
- t.text "st_commits", :limit => 2147483647
- t.text "st_diffs", :limit => 2147483647
+ t.datetime "created_at"
+ t.datetime "updated_at"
+ t.text "st_commits", :limit => 4294967295
+ t.text "st_diffs", :limit => 4294967295
t.boolean "merged", :default => false, :null => false
end
@@ -84,8 +84,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
t.string "noteable_id"
t.string "noteable_type"
t.integer "author_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.integer "project_id"
t.string "attachment"
t.string "line_code"
@@ -98,8 +98,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
t.string "name"
t.string "path"
t.text "description"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.boolean "private_flag", :default => true, :null => false
t.string "code"
t.integer "owner_id"
@@ -122,8 +122,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
t.text "content"
t.integer "author_id", :null => false
t.integer "project_id", :null => false
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.string "file_name"
t.datetime "expires_at"
end
@@ -156,8 +156,8 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
t.datetime "last_sign_in_at"
t.string "current_sign_in_ip"
t.string "last_sign_in_ip"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.string "name"
t.boolean "admin", :default => false, :null => false
t.integer "projects_limit", :default => 10
@@ -168,6 +168,7 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
t.boolean "dark_scheme", :default => false, :null => false
t.integer "theme_id", :default => 1, :null => false
t.string "bio"
+ t.boolean "blocked", :default => false, :null => false
end
add_index "users", ["email"], :name => "index_users_on_email", :unique => true
@@ -176,16 +177,16 @@ ActiveRecord::Schema.define(:version => 20120408181910) do
create_table "users_projects", :force => true do |t|
t.integer "user_id", :null => false
t.integer "project_id", :null => false
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
t.integer "project_access", :default => 0, :null => false
end
create_table "web_hooks", :force => true do |t|
t.string "url"
t.integer "project_id"
- t.datetime "created_at", :null => false
- t.datetime "updated_at", :null => false
+ t.datetime "created_at"
+ t.datetime "updated_at"
end
create_table "wikis", :force => true do |t|