X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/796d33df26fa2f591a405810ae4958a26cf060a4..1e7167aa6d0c20b8e7b54969577c53abe50461c5:/app/controllers/account_controller.rb?ds=inline diff --git a/app/controllers/account_controller.rb b/app/controllers/account_controller.rb index e8adcf0..4b7fea9 100644 --- a/app/controllers/account_controller.rb +++ b/app/controllers/account_controller.rb @@ -1,3 +1,10 @@ +# Selectricity: Voting Machinery for the Masses +# Copyright (C) 2007, 2008 Benjamin Mako Hill +# Copyright (C) 2007 Massachusetts Institute of Technology +# +# This program is free software. Please see the COPYING file for +# details. + class AccountController < ApplicationController layout 'main' @@ -14,6 +21,7 @@ class AccountController < ApplicationController #these methods provide basic functionality for the user login system #=================================================================== def login + return unless request.post? self.current_user = User.authenticate(params[:login], params[:password]) if logged_in? @@ -21,17 +29,21 @@ class AccountController < ApplicationController self.current_user.remember_me cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at } end - redirect_back_or_default(:controller => '/site', :action => 'index') + redirect_back_or_default :controller => 'front' flash[:notice] = "Logged in successfully" end end + + def forgot_password + raise "Not Implemented!" + end def signup @user = User.new(params[:user]) return unless request.post? @user.save! self.current_user = @user - redirect_back_or_default(:controller => '/site', :action => 'index') + redirect_back_or_default :controller => 'front' flash[:notice] = "Thanks for signing up!" rescue ActiveRecord::RecordInvalid render :action => 'signup' @@ -42,13 +54,32 @@ class AccountController < ApplicationController cookies.delete :auth_token reset_session flash[:notice] = "You have been logged out." - redirect_back_or_default(:controller => '/site', :action => 'index') + redirect_back_or_default :controller => 'front' end #====================================================================== - #The following methods are for slectricity specific uses + #The following methods are for selectricity specific uses def summary + #@user = User.find(params[:id]) + + #constrain the find command such that it only returns the user if it's the currently + #logged in user, otherwise, redirect to the front page + id = params[:id] + user_id = session[:user][:id] + @user = User.find(id, :conditions => ["id = ?", user_id]) + + rescue + redirect_to :controller =>'front' + + end + + def change_contact @user = User.find(params[:id]) + return unless request.post? + @user.email=params[:email] + @user.save! + flash[:notice] = "Email successfully updated" + render :action => 'summary' end