summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvelyn <evy_mcr@outlook.com>2015-09-20 13:53:53 -0500
committerEvelyn <evy_mcr@outlook.com>2015-09-20 13:53:53 -0500
commit9c350b60e87a58e4fcf748fe3c9bc1baa5c04655 (patch)
treec4fd007e20381daa16ce57ee4f4fcdc8fb8dca2e
parent3e8771097ab7392560fdf07a85c011c23098fd1e (diff)
adding ability to disable/enable users by admin
-rw-r--r--Gemfile1
-rw-r--r--Gemfile.lock8
-rw-r--r--app/assets/stylesheets/application.scss4
-rw-r--r--app/controllers/sessions_controller.rb9
-rw-r--r--app/controllers/users_controller.rb6
-rw-r--r--app/views/users/index.html.haml46
-rw-r--r--config/locales/en/users.en.yml9
-rw-r--r--config/locales/es.yml8
8 files changed, 87 insertions, 4 deletions
diff --git a/Gemfile b/Gemfile
index dd93a3c..cc7563a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -78,6 +78,7 @@ end
group :test, :development do
gem 'thin'
gem 'i18n-missing_translations'
+ gem 'pry'
end
group :production do
diff --git a/Gemfile.lock b/Gemfile.lock
index a185562..3331a6c 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -72,6 +72,7 @@ GEM
client_side_validations (~> 3.2.5)
simple_form (~> 2.1.0)
cliver (0.3.2)
+ coderay (1.1.0)
columnize (0.9.0)
couchrest (1.1.3)
mime-types (~> 1.15)
@@ -151,6 +152,7 @@ GEM
mime-types (~> 1.16)
treetop (~> 1.4.8)
metaclass (0.0.4)
+ method_source (0.8.2)
mime-types (1.25.1)
mini_portile (0.6.1)
minitest-stub-const (0.2)
@@ -168,6 +170,10 @@ GEM
multi_json (~> 1.0)
websocket-driver (>= 0.2.0)
polyglot (0.3.5)
+ pry (0.10.1)
+ coderay (~> 1.1.0)
+ method_source (~> 0.8.1)
+ slop (~> 3.4)
quiet_assets (1.0.3)
railties (>= 3.1, < 5.0)
rack (1.4.5)
@@ -220,6 +226,7 @@ GEM
rack (~> 1.4)
rack-protection (~> 1.4)
tilt (~> 1.3, >= 1.3.4)
+ slop (3.6.0)
sprockets (2.2.3)
hike (~> 1.2)
multi_json (~> 1.0)
@@ -285,6 +292,7 @@ DEPENDENCIES
mocha (~> 0.13.0)
phantomjs-binaries
poltergeist
+ pry
quiet_assets
rails (~> 3.2.21)
rails-i18n
diff --git a/app/assets/stylesheets/application.scss b/app/assets/stylesheets/application.scss
index 9cd3a55..bb40129 100644
--- a/app/assets/stylesheets/application.scss
+++ b/app/assets/stylesheets/application.scss
@@ -26,3 +26,7 @@
// import custom scss, content to be set in deployment.
//
@import "tail";
+
+.modal-footer form{
+ margin: 0;
+}
diff --git a/app/controllers/sessions_controller.rb b/app/controllers/sessions_controller.rb
index 66eba40..34d4f53 100644
--- a/app/controllers/sessions_controller.rb
+++ b/app/controllers/sessions_controller.rb
@@ -32,4 +32,13 @@ class SessionsController < ApplicationController
# throw :warden, response.finish
#end
+ Warden::Manager.after_set_user do |user, auth, opts|
+ scope = opts[:scope]
+ unless user.enabled?
+ auth.logout(scope)
+ throw(:warden, scope: scope, reason: "User not active")
+ end
+ end
+
+
end
diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb
index 3943afc..446b726 100644
--- a/app/controllers/users_controller.rb
+++ b/app/controllers/users_controller.rb
@@ -49,13 +49,15 @@ class UsersController < ApplicationController
def deactivate
@user.enabled = false
@user.save
- respond_with @user
+ flash[:notice] = I18n.t("actions.user_disabled_message", username: @user.username)
+ redirect_to :back
end
def enable
@user.enabled = true
@user.save
- respond_with @user
+ flash[:notice] = I18n.t("actions.user_enabled_message", username: @user.username)
+ redirect_to :back
end
def destroy
diff --git a/app/views/users/index.html.haml b/app/views/users/index.html.haml
index 3ed8835..268c7d3 100644
--- a/app/views/users/index.html.haml
+++ b/app/views/users/index.html.haml
@@ -1,4 +1,48 @@
- @show_navigation = false
= search :users
-= table @users, %w(username, created, updated)
+%table.table.table-striped.table-bordered
+ %thead
+ %tr
+ %th
+ = t(:username)
+ %th
+ = t(:created)
+ %th
+ = t(:updated)
+ %th
+ = t("actions.toggle_user")
+ %tbody
+ - @users.each do |user|
+ %tr
+ %td
+ = link_to user.username, user
+ %td
+ = user.created_at.strftime("%d %b, %Y, %H:%M")
+ %td
+ = user.updated_at.strftime("%d %b, %Y, %H:%M")
+ %td
+ - if user.enabled
+ %button.btn.btn-default{:"data-toggle" => "modal", :"data-target" => "#user-form-#{user.id}", :type => "button"}
+ = t("actions.disable_user")
+ .modal.fade.hide{:id => "user-form-#{user.id}"}
+ .modal-dialog
+ .modal-content
+ .modal-header
+ %button.close{:"data-dismiss" => "modal"} ×
+ = t("actions.confirm_user_deactivation", username: user.username)
+ .modal-footer
+ = form_tag deactivate_user_path(user) do
+ %input.btn.btn-default.btn-danger{:type => "submit", :value => "#{t("actions.disable_user")}"}
+ - else
+ %button.btn.btn-default{:"data-toggle" => "modal", :"data-target" => "#user-form-#{user.id}", :type => "button"}
+ = t("actions.enable_user")
+ .modal.fade.hide{:id => "user-form-#{user.id}"}
+ .modal-dialog
+ .modal-content
+ .modal-header
+ %button.close{:"data-dismiss" => "modal"} ×
+ = t("actions.confirm_user_activation", username: user.username)
+ .modal-footer
+ = form_tag enable_user_path(user) do
+ %input.btn.btn-default.btn-danger{:type => "submit", :value => "#{t("actions.enable_user")}"}
diff --git a/config/locales/en/users.en.yml b/config/locales/en/users.en.yml
index 89307dd..3cfaef6 100644
--- a/config/locales/en/users.en.yml
+++ b/config/locales/en/users.en.yml
@@ -55,6 +55,14 @@ en:
tickets: "Create and check support tickets."
email: "Modify email settings."
account: "Destroy your account."
+ actions:
+ toggle_user: "Toggle User"
+ enable_user: "Enable User"
+ disable_user: "Disable User"
+ confirm_user_deactivation: "Are you sure you want to deactive user with username '%{username}'?"
+ confirm_user_activation: "Are you sure you want to activate user with username '%{username}'?"
+ user_disabled_message: "User with username '%{username}' has been disabled."
+ user_enabled_message: "User with username '%{username}' has been enabled."
#
# rails
@@ -76,4 +84,3 @@ en:
placeholders:
user:
email_forward: "my_other_email@domain.net"
-
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 2a36b6e..1081e91 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -110,6 +110,14 @@ es:
user:
one: Usuario
other: '%{count} usuarios'
+ actions:
+ toggle_user: "Toggle User"
+ enable_user: "Enable User"
+ disable_user: "Disable User"
+ confirm_user_deactivation: "Are you sure you want to deactive user with username '%{username}'?"
+ confirm_user_activation: "Are you sure you want to activate user with username '%{username}'?"
+ user_disabled_message: "User with username '%{username}' has been disabled."
+ user_enabled_message: "User with username '%{username}' has been enabled."
create_new_customer: Crear un nuevo Cliente de Braintree
must_create_customer: Tiene que almacenar un cliente en Braintree antes de suscribirse a un plan
subscribe: Suscribirse