+# Selectricity: Voting Machinery for the Masses
+# Copyright (C) 2007, 2008 Benjamin Mako Hill <mako@atdot.cc>
+# Copyright (C) 2007 Massachusetts Institute of Technology
+#
+# This program is free software. Please see the COPYING file for
+# details.
+
class AccountController < ApplicationController
- layout 'hc'
+ layout 'main'
# Be sure to include AuthenticationSystem in Application Controller instead
include AuthenticatedSystem
def index
redirect_to(:action => 'signup') unless logged_in? || User.count > 0
end
-
+
+ #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?
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'
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 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
+
+
end
+
+