From ea83d9108eabb8deaf3148434dd33b4f829f2f20 Mon Sep 17 00:00:00 2001 From: Akash Agrawall Date: Wed, 18 Feb 2015 17:10:21 +0530 Subject: [PATCH] Added unlock feature + fixed locked feature --- app/controllers/admin/users_controller.rb | 6 ++++++ app/models/user.rb | 8 +++++++- app/views/admins/_user_entry.haml | 6 ++++-- config/locales/diaspora/en.yml | 2 ++ config/routes.rb | 2 ++ 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index b9c38903324..040b9747e0e 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -13,6 +13,12 @@ def lock_account redirect_to user_search_path, notice: t("admins.user_search.account_locking_scheduled", name: u.username) end + def unlock_account + u = User.find(close_account_params) + u.unlock_account! + redirect_to user_search_path, notice: t("admins.user_search.account_unlocking_scheduled", name: u.username) + end + private def close_account_params diff --git a/app/models/user.rb b/app/models/user.rb index 67b1f0a1e74..de89af01b71 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -457,7 +457,13 @@ def close_account! end def lock_account! - self.save(:locked_at => Time.now) + self.locked_at = Time.now + self.save + end + + def unlock_account! + self.locked_at = nil + self.save end def clear_account! diff --git a/app/views/admins/_user_entry.haml b/app/views/admins/_user_entry.haml index c11f28ed470..931dc13119e 100644 --- a/app/views/admins/_user_entry.haml +++ b/app/views/admins/_user_entry.haml @@ -25,8 +25,10 @@ %li= link_to t('admins.user_search.close_account'), admin_close_account_path(user), method: :post, data: { confirm: t('admins.user_search.are_you_sure') }, class: 'btn btn-danger btn-mini' - unless user.locked_at - %li= link_to t('admins.user_search.lock_account'), admin_close_account_path(user), method: :post, data: { confirm: t('admins.user_search.are_you_sure_lock_account') }, class: 'btn btn-danger btn-mini' - + %li= link_to t('admins.user_search.lock_account'), admin_lock_account_path(user), method: :post, data: { confirm: t('admins.user_search.are_you_sure_lock_account') }, class: 'btn btn-danger btn-mini' + - if user.locked_at + %li= link_to t('admins.user_search.unlock_account'), admin_unlock_account_path(user), method: :post, data: { confirm: t('admins.user_search.are_you_sure_unlock_account') }, class: 'btn btn-danger btn-mini' + %div.row %div.span5 %dl.dl-horizontal diff --git a/config/locales/diaspora/en.yml b/config/locales/diaspora/en.yml index daa4d715136..680bd7b1dde 100644 --- a/config/locales/diaspora/en.yml +++ b/config/locales/diaspora/en.yml @@ -115,8 +115,10 @@ en: close_account: "close account" are_you_sure: "Are you sure you want to close this account?" are_you_sure_lock_account: "Are you sure you want to lock this account?" + are_you_sure_unlock_account: "Are you sure you want to unlock this account?" account_closing_scheduled: "The account of %{name} is scheduled to be closed. It will be processed in a few moments..." account_locking_scheduled: "The account of %{name} is scheduled to be locked. It will be processed in a few moments..." + account_unlocking_scheduled: "The account of %{name} is scheduled to be unlocked. It will be processed in a few moments..." email_to: "Email to Invite" under_13: "Show users that are under 13 (COPPA)" users: diff --git a/config/routes.rb b/config/routes.rb index 519a731f4ad..11a136b74d6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -139,6 +139,8 @@ namespace :admin do post 'users/:id/close_account' => 'users#close_account', :as => 'close_account' + post 'users/:id/lock_account' => 'users#lock_account', :as => 'lock_account' + post 'users/:id/unlock_account' => 'users#unlock_account', :as => 'unlock_account' end resource :profile, :only => [:edit, :update]