Project

General

Profile

Download (1.97 KB) Statistics
| Branch: | Tag: | Revision:
class UsersController < ApplicationController

filter_parameter_logging :password
before_filter :require_login, :except => [:login, :logout]

def index
@search = User.search(params[:search])
@users = @search.paginate(:page => params[:page], :include => [:auth_source], :per_page => 10, :order => "firstname")
end

def new
@user = User.new
end

def create
@user = User.new(params[:user])
if @user.save
flash[:foreman_notice] = "Successfully created user."
redirect_to users_url
else
render :action => 'new'
end
end

def edit
@user = User.find(params[:id])
end

def update
@user = User.find(params[:id])
if @user.update_attributes(params[:user])
flash[:foreman_notice] = "Successfully updated user."
redirect_to users_url
else
render :action => 'edit'
end
end

def destroy
@user = User.find(params[:id])
if @user.destroy
flash[:foreman_notice] = "Successfully destroyed user."
else
flash[:foreman_error] = @user.errors.full_messages.join("<br>")
end
redirect_to users_url
end

def login
session[:user] = nil
if request.post?
user = User.try_to_login(params[:login]['login'].downcase, params[:login]['password'])
if user.nil?
#failed to authenticate, and/or to generate the account on the fly
flash[:foreman_error] = "Incorrect username or password"
redirect_to login_users_path
else
#valid user
session[:user] = user.id
uri = session[:original_uri]
session[:original_uri] = nil
redirect_to (uri || {:controller => 'hosts'})
end
end
end
# Called from the logout link
# Clears the rails session and redirects to the login action
def logout
session[:user] = @user = nil
if flash[:foreman_notice] or flash[:foreman_error]
flash.keep
else
flash[:foreman_notice] = "Logged out - See you soon"
end
redirect_to login_users_path
end

end
(28-28/28)