##// END OF EJS Templates
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums....
Anonymous users can now be allowed to create, edit, comment issues, comment news and post messages in the forums. These permissions need to be explicitly given to the Anonymous role (Admin -> Roles & Permissions -> Anonymous). git-svn-id: http://redmine.rubyforge.org/svn/trunk@919 e93f8b46-1217-0410-a6f0-8f06a7374b81

File last commit:

r868:7535c211d5e6
r906:987a5aa22114
Show More
load_default_data.rake
168 lines | 8.3 KiB | text/x-ruby | RubyLexer
/ lib / tasks / load_default_data.rake
desc 'Load Redmine default configuration data'
namespace :redmine do
task :load_default_data => :environment do
include GLoc
set_language_if_valid('en')
puts
while true
print "Select language: "
print GLoc.valid_languages.sort {|x,y| x.to_s <=> y.to_s }.join(", ")
print " [#{GLoc.current_language}] "
lang = STDIN.gets.chomp!
break if lang.empty?
break if set_language_if_valid(lang)
puts "Unknown language!"
end
puts "===================================="
begin
# check that no data already exists
if Role.find(:first, :conditions => {:builtin => 0})
raise "Some roles are already defined."
end
if Tracker.find(:first)
raise "Some trackers are already defined."
end
if IssueStatus.find(:first)
raise "Some statuses are already defined."
end
if Enumeration.find(:first)
raise "Some enumerations are already defined."
end
puts "Loading default configuration data for language: #{current_language}"
# roles
manager = Role.create :name => l(:default_role_manager),
:position => 1
manager.permissions = manager.setable_permissions.collect {|p| p.name}
manager.save
developper = Role.create :name => l(:default_role_developper),
:position => 2,
:permissions => [:manage_versions,
:manage_categories,
:add_issues,
:edit_issues,
:manage_issue_relations,
:add_issue_notes,
:change_issue_status,
:save_queries,
:view_gantt,
:view_calendar,
:log_time,
:view_time_entries,
:comment_news,
:view_documents,
:view_wiki_pages,
:edit_wiki_pages,
:delete_wiki_pages,
:add_messages,
:view_files,
:manage_files,
:browse_repository,
:view_changesets]
reporter = Role.create :name => l(:default_role_reporter),
:position => 3,
:permissions => [:add_issues,
:add_issue_notes,
:change_issue_status,
:save_queries,
:view_gantt,
:view_calendar,
:log_time,
:view_time_entries,
:comment_news,
:view_documents,
:view_wiki_pages,
:add_messages,
:view_files,
:browse_repository,
:view_changesets]
Role.non_member.update_attribute :permissions, [:add_issues,
:add_issue_notes,
:change_issue_status,
:save_queries,
:view_gantt,
:view_calendar,
:view_time_entries,
:comment_news,
:view_documents,
:view_wiki_pages,
:add_messages,
:view_files,
:browse_repository,
:view_changesets]
Role.anonymous.update_attribute :permissions, [:view_gantt,
:view_calendar,
:view_time_entries,
:view_documents,
:view_wiki_pages,
:view_files,
:browse_repository,
:view_changesets]
# trackers
Tracker.create(:name => l(:default_tracker_bug), :is_in_chlog => true, :is_in_roadmap => false, :position => 1)
Tracker.create(:name => l(:default_tracker_feature), :is_in_chlog => true, :is_in_roadmap => true, :position => 2)
Tracker.create(:name => l(:default_tracker_support), :is_in_chlog => false, :is_in_roadmap => false, :position => 3)
# issue statuses
new = IssueStatus.create(:name => l(:default_issue_status_new), :is_closed => false, :is_default => true, :position => 1)
assigned = IssueStatus.create(:name => l(:default_issue_status_assigned), :is_closed => false, :is_default => false, :position => 2)
resolved = IssueStatus.create(:name => l(:default_issue_status_resolved), :is_closed => false, :is_default => false, :position => 3)
feedback = IssueStatus.create(:name => l(:default_issue_status_feedback), :is_closed => false, :is_default => false, :position => 4)
closed = IssueStatus.create(:name => l(:default_issue_status_closed), :is_closed => true, :is_default => false, :position => 5)
rejected = IssueStatus.create(:name => l(:default_issue_status_rejected), :is_closed => true, :is_default => false, :position => 6)
# workflow
Tracker.find(:all).each { |t|
IssueStatus.find(:all).each { |os|
IssueStatus.find(:all).each { |ns|
Workflow.create(:tracker_id => t.id, :role_id => manager.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns
}
}
}
Tracker.find(:all).each { |t|
[new, assigned, resolved, feedback].each { |os|
[assigned, resolved, feedback, closed].each { |ns|
Workflow.create(:tracker_id => t.id, :role_id => developper.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns
}
}
}
Tracker.find(:all).each { |t|
[new, assigned, resolved, feedback].each { |os|
[closed].each { |ns|
Workflow.create(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => os.id, :new_status_id => ns.id) unless os == ns
}
}
Workflow.create(:tracker_id => t.id, :role_id => reporter.id, :old_status_id => resolved.id, :new_status_id => feedback.id)
}
# enumerations
Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_user), :position => 1)
Enumeration.create(:opt => "DCAT", :name => l(:default_doc_category_tech), :position => 2)
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_low), :position => 1)
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_normal), :position => 2, :is_default => true)
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_high), :position => 3)
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_urgent), :position => 4)
Enumeration.create(:opt => "IPRI", :name => l(:default_priority_immediate), :position => 5)
Enumeration.create(:opt => "ACTI", :name => l(:default_activity_design), :position => 1)
Enumeration.create(:opt => "ACTI", :name => l(:default_activity_development), :position => 2)
rescue => error
puts "Error: " + error
puts "Default configuration data can't be loaded."
end
end
end