[#4177] Added a project module for contracts and a stubbed permission.

This commit is contained in:
Eric Davis
2010-06-17 14:34:15 -07:00
parent 4ce7595111
commit 7892c577c8
4 changed files with 67 additions and 0 deletions
+10
View File
@@ -2,4 +2,14 @@ class ContractsController < InheritedResources::Base
unloadable
respond_to :html
before_filter :find_project
before_filter :authorize
private
def find_project
@project = Project.find(params[:project_id])
end
end
+4
View File
@@ -10,6 +10,10 @@ Redmine::Plugin.register :redmine_contracts do
requires_redmine :version_or_higher => '0.9.0'
requires_redmine_plugin :redmine_rate, :version_or_higher => '0.1.0'
project_module :contracts do
permission :manage_budget, {}, :require => :member
end
end
require 'dispatcher'
@@ -0,0 +1,37 @@
require 'test_helper'
class DisabledContractsModuleTest < ActionController::IntegrationTest
def setup
@user = User.generate!(:login => 'existing', :password => 'existing', :password_confirmation => 'existing', :admin => true)
login_as
end
context "on a project with the Contracts module disabled" do
setup do
@project = Project.generate!
@project.enabled_modules.find_by_name('contracts').destroy
@project.reload
assert !@project.module_enabled?(:contracts), "Contracts enabled on project"
end
should "block access to list" do
visit '/'
assert_response :success
click_link 'Projects'
assert_response :success
click_link @project.name
assert_response :success
assert_select "#main-menu" do
assert_select 'a', :text => /contracts/i, :count => 0
end
visit "/projects/#{@project.identifier}/contracts"
assert_response :forbidden
assert_template 'common/403'
end
end
end
+16
View File
@@ -9,3 +9,19 @@ require "webrat"
Webrat.configure do |config|
config.mode = :rails
end
module IntegrationTestHelper
def login_as(user="existing", password="existing")
visit "/login"
fill_in 'Login', :with => user
fill_in 'Password', :with => password
click_button 'login'
assert_response :success
assert User.current.logged?
end
end
class ActionController::IntegrationTest
include IntegrationTestHelper
end