diff --git a/README.rdoc b/README.rdoc new file mode 100644 --- /dev/null +++ b/README.rdoc @@ -0,0 +1,3 @@ += redmine_default_group + +Description goes here diff --git a/app/views/settings/_default_group.erb b/app/views/settings/_default_group.erb new file mode 100644 --- /dev/null +++ b/app/views/settings/_default_group.erb @@ -0,0 +1,4 @@ +

+ <%=content_tag(:label, l(:label_group) + ":") %> + <%=text_field_tag "settings[group]", @settings["group"], :size=>25 %>
+

diff --git a/config/locales/en.yml b/config/locales/en.yml new file mode 100644 --- /dev/null +++ b/config/locales/en.yml @@ -0,0 +1,4 @@ +# English strings go here for Rails i18n +en: + # my_label: "My label" + label_group: "Default group name" diff --git a/config/routes.rb b/config/routes.rb new file mode 100644 --- /dev/null +++ b/config/routes.rb @@ -0,0 +1,2 @@ +# Plugin's routes +# See: http://guides.rubyonrails.org/routing.html diff --git a/init.rb b/init.rb new file mode 100644 --- /dev/null +++ b/init.rb @@ -0,0 +1,34 @@ +require 'redmine' +require 'redmine_default_group/patch' + + +Redmine::Plugin.register :redmine_default_group do + name 'Redmine Default Group plugin' + author 'Arthur Zalevsky' + description 'This plugin allows to set default group for new users.' + version '0.0.1' + url 'https://github.com/yourcelf/redmine_etherpad' + author_url 'https://github.com/yourcelf' + settings :partial => 'settings/default_group', + :default => { + 'group' => false, + } + + Rails.configuration.to_prepare do + # This tells the Redmine version's controller to include the module from the file above. + AccountController.send(:include, RedmineDefaultGroup::AccountControllerPatch) + end + +# settings = Setting.plugin_redmine_etherpad +# unless settings['host'] and settings['key'] +# raise "Please define etherpad parameters in configuration.yml." +# end + + # Set current user name. + if User.current + settings['userName'] = User.current.name + #elsif conf.fetch('loginRequired', true) + # return "TODO: embed read-only." + end + +end diff --git a/lib/redmine_default_group/patch.rb b/lib/redmine_default_group/patch.rb new file mode 100644 --- /dev/null +++ b/lib/redmine_default_group/patch.rb @@ -0,0 +1,17 @@ +module RedmineDefaultGroup + module AccountControllerPatch + def self.included(base) + base.class_eval do + # Insert overrides here, for example: + def register_automatically_with_default_group(user, &block) + register_automatically_without_default_group(user, &block) + @group = Group.find(:first, :conditions => ["LOWER(lastname) = ?", Setting.plugin_redmine_default_group['group'].downcase]) + @group.users << user + end + + alias_method_chain :register_automatically, :default_group # This tells Redmine to allow me to extend show by letting me call it via "show_without_plugin" above. + # I can outright override it by just calling it "def show", at which case the original controller's method will be overridden instead of extended. + end + end + end +end diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,2 @@ +# Load the Redmine helper +require File.expand_path(File.dirname(__FILE__) + '/../../../test/test_helper')