Mercurial > hg > soundsoftware-site
diff app/controllers/auth_sources_controller.rb @ 1298:4f746d8966dd redmine_2.3_integration
Merge from redmine-2.3 branch to create new branch redmine-2.3-integration
author | Chris Cannam |
---|---|
date | Fri, 14 Jun 2013 09:28:30 +0100 |
parents | 622f24f53b42 |
children | e248c7af89ec |
line wrap: on
line diff
--- a/app/controllers/auth_sources_controller.rb Fri Jun 14 09:07:32 2013 +0100 +++ b/app/controllers/auth_sources_controller.rb Fri Jun 14 09:28:30 2013 +0100 @@ -1,5 +1,5 @@ # Redmine - project management software -# Copyright (C) 2006-2012 Jean-Philippe Lang +# Copyright (C) 2006-2013 Jean-Philippe Lang # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License @@ -20,57 +20,77 @@ menu_item :ldap_authentication before_filter :require_admin + before_filter :find_auth_source, :only => [:edit, :update, :test_connection, :destroy] def index - @auth_source_pages, @auth_sources = paginate AuthSource, :per_page => 10 + @auth_source_pages, @auth_sources = paginate AuthSource, :per_page => 25 end def new klass_name = params[:type] || 'AuthSourceLdap' @auth_source = AuthSource.new_subclass_instance(klass_name, params[:auth_source]) + render_404 unless @auth_source end def create @auth_source = AuthSource.new_subclass_instance(params[:type], params[:auth_source]) if @auth_source.save flash[:notice] = l(:notice_successful_create) - redirect_to :action => 'index' + redirect_to auth_sources_path else render :action => 'new' end end def edit - @auth_source = AuthSource.find(params[:id]) end def update - @auth_source = AuthSource.find(params[:id]) if @auth_source.update_attributes(params[:auth_source]) flash[:notice] = l(:notice_successful_update) - redirect_to :action => 'index' + redirect_to auth_sources_path else render :action => 'edit' end end def test_connection - @auth_source = AuthSource.find(params[:id]) begin @auth_source.test_connection flash[:notice] = l(:notice_successful_connection) rescue Exception => e flash[:error] = l(:error_unable_to_connect, e.message) end - redirect_to :action => 'index' + redirect_to auth_sources_path end def destroy - @auth_source = AuthSource.find(params[:id]) - unless @auth_source.users.find(:first) + unless @auth_source.users.exists? @auth_source.destroy flash[:notice] = l(:notice_successful_delete) end - redirect_to :action => 'index' + redirect_to auth_sources_path + end + + def autocomplete_for_new_user + results = AuthSource.search(params[:term]) + + render :json => results.map {|result| { + 'value' => result[:login], + 'label' => "#{result[:login]} (#{result[:firstname]} #{result[:lastname]})", + 'login' => result[:login].to_s, + 'firstname' => result[:firstname].to_s, + 'lastname' => result[:lastname].to_s, + 'mail' => result[:mail].to_s, + 'auth_source_id' => result[:auth_source_id].to_s + }} + end + + private + + def find_auth_source + @auth_source = AuthSource.find(params[:id]) + rescue ActiveRecord::RecordNotFound + render_404 end end