diff options
author | jessib <jessib@leap.se> | 2013-07-08 11:30:35 -0700 |
---|---|---|
committer | jessib <jessib@leap.se> | 2013-07-08 11:30:35 -0700 |
commit | fc3c5994df61de04b8b17b495a638efc0d760126 (patch) | |
tree | 644aa93dfd0a6da2ed9b20ba688712fb9082f425 /users/app/controllers/email_settings_controller.rb | |
parent | cfb9e1d4c2e954222b77c4dd11e06ae3a0092be5 (diff) | |
parent | 3113f8b814417a896ad5340fda88927733f8ab22 (diff) |
Merge branch 'master' into feature/disable_account
Conflicts:
users/app/controllers/users_controller.rb
users/app/helpers/users_helper.rb
users/app/views/users/edit.html.haml
users/app/views/users/show.html.haml
users/config/locales/en.yml
Diffstat (limited to 'users/app/controllers/email_settings_controller.rb')
-rw-r--r-- | users/app/controllers/email_settings_controller.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/users/app/controllers/email_settings_controller.rb b/users/app/controllers/email_settings_controller.rb new file mode 100644 index 0000000..f7d85be --- /dev/null +++ b/users/app/controllers/email_settings_controller.rb @@ -0,0 +1,41 @@ +class EmailSettingsController < UsersBaseController + + before_filter :authorize + before_filter :fetch_user + + def edit + @email_alias = LocalEmail.new + end + + def update + @user.attributes = cleanup_params(params[:user]) + if @user.changed? + if @user.save + flash[:notice] = t(:changes_saved) + redirect + else + if @user.email_aliases.last && !@user.email_aliases.last.valid? + # display bad alias in text field: + @email_alias = @user.email_aliases.pop + end + render 'email_settings/edit' + end + else + redirect + end + end + + private + + def redirect + redirect_to edit_user_email_settings_url(@user) + end + + def cleanup_params(user) + if !user['email_forward'].nil? && user['email_forward'].empty? + user.delete('email_forward') # don't allow "" as an email forward + end + user + end + +end |