module OpenProject::AutoProject::Patches::UserPatch::InstanceMethods

Public Instance Methods

build_user_project() click to toggle source
# File lib/open_project/auto_project/patches/user_patch.rb, line 31
def build_user_project
  return unless @was_activated

  user_project = Project.create :identifier => user_project_identifier, :name => name, :is_public => false
  memberships.create :project => user_project, :roles => [user_project_role]
end
remember_if_activated() click to toggle source
# File lib/open_project/auto_project/patches/user_patch.rb, line 19
def remember_if_activated
  @was_activated = false
  # Return unless user was registered, is now active
  # Or the user is created and activated immediately
  return unless ((self.status_change == [User::STATUSES[:registered], User::STATUSES[:active]] ) ||
    (self.new_record? && self.status == User::STATUSES[:active]))

  # Or the project exists already
  return if Project.find_by_identifier user_project_identifier
  @was_activated = true
end

Private Instance Methods

user_project_identifier() click to toggle source
# File lib/open_project/auto_project/patches/user_patch.rb, line 40
def user_project_identifier
  login.gsub /[@.]/, '_'
end
user_project_role() click to toggle source
# File lib/open_project/auto_project/patches/user_patch.rb, line 44
def user_project_role
  # Assign project role id by precedence:
  # 1. Setting override within AP plugin
  # 2. Default Project assigned role
  # 3. First assignable role
  id = Setting.plugin_openproject_auto_project[:user_project_role_id] ||
    Setting.new_project_user_role_id.to_i

  Role.givable.find_by_id(id) || Role.givable.first
end