123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- class DashboardController < ApplicationController
- before_action :require_login!
- def home
- @upcoming = current_person
- .participants
- .joins(:activity)
- .where('activities.start >= ?', DateTime.now)
- .order('activities.start ASC')
- .paginate(page: params[:upage], per_page: 10)
- @user_organized = @upcoming
- .where(is_organizer: true)
- .limit(3)
- @need_response = @upcoming
- .where(attending: nil)
- .paginate(page: params[:nrpage], per_page: 5)
- end
- def set_settings_params!
- @person = current_person
- @send_attendance_reminder = @person.send_attendance_reminder
- @active_sessions = Session.where(user: current_user).where(active: true).where('expires > ?', Time.now).count
- end
- def settings
- set_settings_params!
- end
- def update_email_settings
- p = current_person
- p.send_attendance_reminder = params[:send_attendance_reminder]
- p.save
- flash_message(:success, t('settings.saved'))
- redirect_to root_path
- end
- def logout_all_sessions
- u = current_user
- u.logout_all_sessions!
- log_out
- redirect_to login_path
- end
- def update_password
- u = current_user
- current = params[:current_password]
- new = params[:new_password]
- confirm = params[:new_password_confirm]
- if !u.authenticate(current)
- flash_message(:danger, t('authentication.invalid_pass'))
- redirect_to settings_path
- return
- end
- if new.blank?
- flash_message(:danger, t('authentication.password_blank'))
- redirect_to settings_path
- return
- end
- if new != confirm
- flash_message(:danger, t('authentication.password_repeat_mismatch'))
- redirect_to settings_path
- return
- end
- u.password = new
- u.password_confirmation = confirm
- if u.save
- flash_message(:success, t('authentication.password_changed'))
- u.logout_all_sessions!
- log_out
- redirect_to login_path
- return
- else
- flash_message(:danger, t(:somethingbroke))
- Rails.logger.error('Password change failure')
- redirect_to settings_path
- end
- end
- end
|