diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index b29eeecb011..7a110aa180c 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -76,6 +76,7 @@ //= require table_sortable //= require investment_report_alert //= require send_newsletter_alert +//= require managers var initialize_modules = function() { App.Comments.initialize(); @@ -119,6 +120,7 @@ var initialize_modules = function() { App.TableSortable.initialize(); App.InvestmentReportAlert.initialize(); App.SendNewsletterAlert.initialize(); + App.Managers.initialize(); }; $(function(){ diff --git a/app/assets/javascripts/managers.js.coffee b/app/assets/javascripts/managers.js.coffee new file mode 100644 index 00000000000..7d4d702a13a --- /dev/null +++ b/app/assets/javascripts/managers.js.coffee @@ -0,0 +1,25 @@ +App.Managers = + + generatePassword: -> + chars = 'aAbcdeEfghiJkmnpqrstuUvwxyz23456789' + pass = '' + x = 0 + while x < 12 + i = Math.floor(Math.random() * chars.length) + pass += chars.charAt(i) + x++ + return pass + + togglePassword: (type) -> + $('#user_password').prop 'type', type + + initialize: -> + $(".generate-random-value").on "click", (event) -> + password = App.Managers.generatePassword() + $('#user_password').val(password) + + $(".show-password").on "click", (event) -> + if $("#user_password").is("input[type='password']") + App.Managers.togglePassword('text') + else + App.Managers.togglePassword('password') diff --git a/app/assets/stylesheets/admin.scss b/app/assets/stylesheets/admin.scss index 827ba0c8b48..5538a2c5968 100644 --- a/app/assets/stylesheets/admin.scss +++ b/app/assets/stylesheets/admin.scss @@ -278,6 +278,10 @@ $sidebar-active: #f4fcd0; cursor: pointer; } +.no-margin-bottom { + margin-bottom: 0 !important; +} + // 02. Sidebar // ----------- diff --git a/app/controllers/management/account_controller.rb b/app/controllers/management/account_controller.rb index 64e0ddf4d1f..fc99b25cc3d 100644 --- a/app/controllers/management/account_controller.rb +++ b/app/controllers/management/account_controller.rb @@ -5,6 +5,26 @@ class Management::AccountController < Management::BaseController def show end + def edit + end + + def print_password + end + + def reset_password + managed_user.send_reset_password_instructions + redirect_to management_account_path, notice: t("management.account.edit.password.reset_email_send") + end + + def change_password + if managed_user.reset_password(params[:user][:password], params[:user][:password]) + session[:new_password] = params[:user][:password] + redirect_to print_password_management_account_path + else + render :edit_password_manually + end + end + private def only_verified_users diff --git a/app/controllers/management/base_controller.rb b/app/controllers/management/base_controller.rb index c7610eba96b..be6dd66c021 100644 --- a/app/controllers/management/base_controller.rb +++ b/app/controllers/management/base_controller.rb @@ -44,4 +44,8 @@ def set_locale def current_budget Budget.current end + + def clear_password + session[:new_password] = nil + end end diff --git a/app/controllers/management/document_verifications_controller.rb b/app/controllers/management/document_verifications_controller.rb index f59c00c8fce..1b3abc398d7 100644 --- a/app/controllers/management/document_verifications_controller.rb +++ b/app/controllers/management/document_verifications_controller.rb @@ -40,6 +40,7 @@ def document_verification_params def set_document session[:document_type] = params[:document_verification][:document_type] session[:document_number] = params[:document_verification][:document_number] + clear_password end def clean_document_number diff --git a/app/controllers/management/users_controller.rb b/app/controllers/management/users_controller.rb index d46360d89ac..1c8c6ed5313 100644 --- a/app/controllers/management/users_controller.rb +++ b/app/controllers/management/users_controller.rb @@ -44,6 +44,7 @@ def user_params def destroy_session session[:document_type] = nil session[:document_number] = nil + clear_password end def user_without_email diff --git a/app/views/management/_menu.html.erb b/app/views/management/_menu.html.erb index b01bbaf0c46..75e832a24d9 100644 --- a/app/views/management/_menu.html.erb +++ b/app/views/management/_menu.html.erb @@ -1,5 +1,5 @@
-