diff --git a/app/models/group.rb b/app/models/group.rb index fd0f583..d49dab0 100644 --- a/app/models/group.rb +++ b/app/models/group.rb @@ -78,6 +78,10 @@ class Group < Principal super(attr_name, *args) end + def self.find_by_name(name) + where("lastname = ? AND type = 'Group'", name).first if !name.nil? + end + private # Removes references that are not handled by associations diff --git a/app/models/mail_handler.rb b/app/models/mail_handler.rb index c2c4f18..3850562 100644 --- a/app/models/mail_handler.rb +++ b/app/models/mail_handler.rb @@ -97,6 +97,14 @@ class MailHandler < ActionMailer::Base if logger && logger.info logger.info "MailHandler: [#{@user.login}] account created" end + group = Group.find_by_name(@@handler_options[:default_group]) + if group + group.users << @user + if logger && logger.info + logger.info "MailHandler: [#{@user.login}] added to group [#{group.name}]" + end + end + Mailer.account_information(@user, @user.password).deliver else if logger && logger.error diff --git a/extra/mail_handler/rdm-mailhandler.rb b/extra/mail_handler/rdm-mailhandler.rb index d04dd41..cafc813 100755 --- a/extra/mail_handler/rdm-mailhandler.rb +++ b/extra/mail_handler/rdm-mailhandler.rb @@ -25,7 +25,7 @@ end class RedmineMailHandler VERSION = '0.2.1' - attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :no_permission_check, :url, :key, :no_check_certificate + attr_accessor :verbose, :issue_attributes, :allow_override, :unknown_user, :default_group, :no_permission_check, :url, :key, :no_check_certificate def initialize self.issue_attributes = {} @@ -45,6 +45,7 @@ class RedmineMailHandler "* ignore: email is ignored (default)", "* accept: accept as anonymous user", "* create: create a user account") {|v| self.unknown_user = v} + opts.on("--default-group GROUP", "add created user to this group (none by default)") { |v| self.default_group = v} opts.on("--no-permission-check", "disable permission checking when receiving", "the email") {self.no_permission_check = '1'} opts.on("--key-file FILE", "path to a file that contains the Redmine", @@ -95,6 +96,7 @@ class RedmineMailHandler data = { 'key' => key, 'email' => email, 'allow_override' => allow_override, 'unknown_user' => unknown_user, + 'default_group' => default_group, 'no_permission_check' => no_permission_check} issue_attributes.each { |attr, value| data["issue[#{attr}]"] = value }