Refactor AuthSourcesController to support non-LDAP sources. #1131
git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3744 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
a1f73c8b20
commit
715c9d16ef
|
@ -22,29 +22,31 @@ class AuthSourcesController < ApplicationController
|
||||||
|
|
||||||
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
# GETs should be safe (see http://www.w3.org/2001/tag/doc/whenToUseGet.html)
|
||||||
verify :method => :post, :only => [ :destroy, :create, :update ],
|
verify :method => :post, :only => [ :destroy, :create, :update ],
|
||||||
:redirect_to => { :action => :list }
|
:redirect_to => { :template => :index }
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@auth_source_pages, @auth_sources = paginate :auth_sources, :per_page => 10
|
@auth_source_pages, @auth_sources = paginate auth_source_class.name.tableize, :per_page => 10
|
||||||
render :action => "index", :layout => false if request.xhr?
|
render "auth_sources/index"
|
||||||
end
|
end
|
||||||
|
|
||||||
def new
|
def new
|
||||||
@auth_source = AuthSourceLdap.new
|
@auth_source = auth_source_class.new
|
||||||
|
render 'auth_sources/new'
|
||||||
end
|
end
|
||||||
|
|
||||||
def create
|
def create
|
||||||
@auth_source = AuthSourceLdap.new(params[:auth_source])
|
@auth_source = auth_source_class.new(params[:auth_source])
|
||||||
if @auth_source.save
|
if @auth_source.save
|
||||||
flash[:notice] = l(:notice_successful_create)
|
flash[:notice] = l(:notice_successful_create)
|
||||||
redirect_to :action => 'index'
|
redirect_to :action => 'index'
|
||||||
else
|
else
|
||||||
render :action => 'new'
|
render 'auth_sources/new'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def edit
|
def edit
|
||||||
@auth_source = AuthSource.find(params[:id])
|
@auth_source = AuthSource.find(params[:id])
|
||||||
|
render 'auth_sources/edit'
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
|
@ -53,7 +55,7 @@ class AuthSourcesController < ApplicationController
|
||||||
flash[:notice] = l(:notice_successful_update)
|
flash[:notice] = l(:notice_successful_update)
|
||||||
redirect_to :action => 'index'
|
redirect_to :action => 'index'
|
||||||
else
|
else
|
||||||
render :action => 'edit'
|
render 'auth_sources/edit'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -76,4 +78,10 @@ class AuthSourcesController < ApplicationController
|
||||||
end
|
end
|
||||||
redirect_to :action => 'index'
|
redirect_to :action => 'index'
|
||||||
end
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def auth_source_class
|
||||||
|
AuthSource
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
# redMine - project management software
|
||||||
|
# Copyright (C) 2006 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
|
||||||
|
# as published by the Free Software Foundation; either version 2
|
||||||
|
# of the License, or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
|
class LdapAuthSourcesController < AuthSourcesController
|
||||||
|
|
||||||
|
protected
|
||||||
|
|
||||||
|
def auth_source_class
|
||||||
|
AuthSourceLdap
|
||||||
|
end
|
||||||
|
end
|
|
@ -3,6 +3,7 @@
|
||||||
<li><%= link_to l(:label_project_plural), {:controller => 'admin', :action => 'projects'}, :class => 'projects' %></li>
|
<li><%= link_to l(:label_project_plural), {:controller => 'admin', :action => 'projects'}, :class => 'projects' %></li>
|
||||||
<li><%= link_to l(:label_user_plural), {:controller => 'users'}, :class => 'users' %></li>
|
<li><%= link_to l(:label_user_plural), {:controller => 'users'}, :class => 'users' %></li>
|
||||||
<li><%= link_to l(:label_group_plural), {:controller => 'groups'}, :class => 'groups' %></li>
|
<li><%= link_to l(:label_group_plural), {:controller => 'groups'}, :class => 'groups' %></li>
|
||||||
|
<li><%= link_to l(:label_ldap_authentication), :controller => 'ldap_auth_sources', :action => 'index' %></li>
|
||||||
<li><%= link_to l(:label_role_and_permissions), {:controller => 'roles'}, :class => 'roles' %></li>
|
<li><%= link_to l(:label_role_and_permissions), {:controller => 'roles'}, :class => 'roles' %></li>
|
||||||
<li><%= link_to l(:label_tracker_plural), {:controller => 'trackers'}, :class => 'trackers' %></li>
|
<li><%= link_to l(:label_tracker_plural), {:controller => 'trackers'}, :class => 'trackers' %></li>
|
||||||
<li><%= link_to l(:label_issue_status_plural), {:controller => 'issue_statuses'}, :class => 'issue_statuses' %></li>
|
<li><%= link_to l(:label_issue_status_plural), {:controller => 'issue_statuses'}, :class => 'issue_statuses' %></li>
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
<%= error_messages_for 'auth_source' %>
|
||||||
|
|
||||||
|
<div class="box">
|
||||||
|
<!--[form:auth_source]-->
|
||||||
|
<p><label for="auth_source_name"><%=l(:field_name)%> <span class="required">*</span></label>
|
||||||
|
<%= text_field 'auth_source', 'name' %></p>
|
||||||
|
|
||||||
|
<p><label for="auth_source_onthefly_register"><%=l(:field_onthefly)%></label>
|
||||||
|
<%= check_box 'auth_source', 'onthefly_register' %></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!--[eoform:auth_source]-->
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div style="float:right;">
|
<div style="float:right;">
|
||||||
<%= link_to l(:label_ldap_authentication), :controller => 'auth_sources', :action => 'index' %>
|
<%= link_to l(:label_ldap_authentication), :controller => 'ldap_auth_sources', :action => 'index' %>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<%= submit_tag l(:button_save) %>
|
<%= submit_tag l(:button_save) %>
|
||||||
|
|
|
@ -0,0 +1,83 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class AuthSourcesControllerTest < ActionController::TestCase
|
||||||
|
fixtures :all
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@request.session[:user_id] = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
context "get :index" do
|
||||||
|
setup do
|
||||||
|
get :index
|
||||||
|
end
|
||||||
|
|
||||||
|
should_assign_to :auth_sources
|
||||||
|
should_assign_to :auth_source_pages
|
||||||
|
should_respond_with :success
|
||||||
|
should_render_template :index
|
||||||
|
end
|
||||||
|
|
||||||
|
context "get :new" do
|
||||||
|
setup do
|
||||||
|
get :new
|
||||||
|
end
|
||||||
|
|
||||||
|
should_assign_to :auth_source
|
||||||
|
should_respond_with :success
|
||||||
|
should_render_template :new
|
||||||
|
|
||||||
|
should "initilize a new AuthSource" do
|
||||||
|
assert_equal AuthSource, assigns(:auth_source).class
|
||||||
|
assert assigns(:auth_source).new_record?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context "post :create" do
|
||||||
|
setup do
|
||||||
|
post :create, :auth_source => {:name => 'Test'}
|
||||||
|
end
|
||||||
|
|
||||||
|
should_respond_with :redirect
|
||||||
|
should_redirect_to("index") {{:action => 'index'}}
|
||||||
|
should_set_the_flash_to /success/i
|
||||||
|
end
|
||||||
|
|
||||||
|
context "get :edit" do
|
||||||
|
setup do
|
||||||
|
@auth_source = AuthSource.generate!(:name => 'TestEdit')
|
||||||
|
get :edit, :id => @auth_source.id
|
||||||
|
end
|
||||||
|
|
||||||
|
should_assign_to(:auth_source) {@auth_source}
|
||||||
|
should_respond_with :success
|
||||||
|
should_render_template :edit
|
||||||
|
end
|
||||||
|
|
||||||
|
context "post :update" do
|
||||||
|
setup do
|
||||||
|
@auth_source = AuthSource.generate!(:name => 'TestEdit')
|
||||||
|
post :update, :id => @auth_source.id, :auth_source => {:name => 'TestUpdate'}
|
||||||
|
end
|
||||||
|
|
||||||
|
should_respond_with :redirect
|
||||||
|
should_redirect_to("index") {{:action => 'index'}}
|
||||||
|
should_set_the_flash_to /update/i
|
||||||
|
end
|
||||||
|
|
||||||
|
context "post :destroy" do
|
||||||
|
context "without users" do
|
||||||
|
setup do
|
||||||
|
@auth_source = AuthSource.generate!(:name => 'TestEdit')
|
||||||
|
post :destroy, :id => @auth_source.id
|
||||||
|
end
|
||||||
|
|
||||||
|
should_respond_with :redirect
|
||||||
|
should_redirect_to("index") {{:action => 'index'}}
|
||||||
|
should_set_the_flash_to /deletion/i
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
should "be tested with users"
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,24 @@
|
||||||
|
require 'test_helper'
|
||||||
|
|
||||||
|
class LdapAuthSourcesControllerTest < ActionController::TestCase
|
||||||
|
fixtures :all
|
||||||
|
|
||||||
|
def setup
|
||||||
|
@request.session[:user_id] = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
context "get :new" do
|
||||||
|
setup do
|
||||||
|
get :new
|
||||||
|
end
|
||||||
|
|
||||||
|
should_assign_to :auth_source
|
||||||
|
should_respond_with :success
|
||||||
|
should_render_template :new
|
||||||
|
|
||||||
|
should "initilize a new AuthSource" do
|
||||||
|
assert_equal AuthSourceLdap, assigns(:auth_source).class
|
||||||
|
assert assigns(:auth_source).new_record?
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in New Issue