diff options
-rw-r--r-- | Gemfile | 1 | ||||
-rw-r--r-- | Gemfile.lock | 8 | ||||
-rw-r--r-- | app/assets/stylesheets/application.scss | 4 | ||||
-rw-r--r-- | app/controllers/sessions_controller.rb | 9 | ||||
-rw-r--r-- | app/controllers/users_controller.rb | 6 | ||||
-rw-r--r-- | app/views/users/index.html.haml | 46 | ||||
-rw-r--r-- | config/locales/en/users.en.yml | 9 | ||||
-rw-r--r-- | config/locales/es.yml | 8 |
8 files changed, 87 insertions, 4 deletions
@@ -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 |