Sprankelprachtig aan/afmeldsysteem

dashboard_controller.rb 2.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. class DashboardController < ApplicationController
  2. before_action :require_login!
  3. def home
  4. @upcoming = current_person
  5. .participants
  6. .joins(:activity)
  7. .where('activities.start >= ?', DateTime.now)
  8. .order('activities.start ASC')
  9. .paginate(page: params[:upage], per_page: 10)
  10. @user_organized = @upcoming
  11. .where(is_organizer: true)
  12. .limit(3)
  13. @need_response = @upcoming
  14. .where(attending: nil)
  15. .paginate(page: params[:nrpage], per_page: 5)
  16. end
  17. def set_settings_params!
  18. @person = current_person
  19. @send_attendance_reminder = @person.send_attendance_reminder
  20. @active_sessions = Session.where(user: current_user).where(active: true).where('expires > ?', Time.now).count
  21. end
  22. def settings
  23. set_settings_params!
  24. end
  25. def update_email_settings
  26. p = current_person
  27. p.send_attendance_reminder = params[:send_attendance_reminder]
  28. p.save
  29. flash_message(:success, t('settings.saved'))
  30. redirect_to root_path
  31. end
  32. def logout_all_sessions
  33. u = current_user
  34. u.logout_all_sessions!
  35. log_out
  36. redirect_to login_path
  37. end
  38. def update_password
  39. u = current_user
  40. current = params[:current_password]
  41. new = params[:new_password]
  42. confirm = params[:new_password_confirm]
  43. if !u.authenticate(current)
  44. flash_message(:danger, t('authentication.invalid_pass'))
  45. redirect_to settings_path
  46. return
  47. end
  48. if new.blank?
  49. flash_message(:danger, t('authentication.password_blank'))
  50. redirect_to settings_path
  51. return
  52. end
  53. if new != confirm
  54. flash_message(:danger, t('authentication.password_repeat_mismatch'))
  55. redirect_to settings_path
  56. return
  57. end
  58. u.password = new
  59. u.password_confirmation = confirm
  60. if u.save
  61. flash_message(:success, t('authentication.password_changed'))
  62. u.logout_all_sessions!
  63. log_out
  64. redirect_to login_path
  65. return
  66. else
  67. flash_message(:danger, t(:somethingbroke))
  68. Rails.logger.error('Password change failure')
  69. redirect_to settings_path
  70. end
  71. end
  72. end