Class: GroupBuiltin

Inherits:
Group show all
Defined in:
app/models/group_builtin.rb

Overview

Redmine - project management software Copyright (C) 2006-2020 Jean-Philippe Lang

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Direct Known Subclasses

GroupAnonymous, GroupNonMember

Constant Summary

Constants inherited from Principal

Principal::STATUS_ACTIVE, Principal::STATUS_ANONYMOUS, Principal::STATUS_LOCKED, Principal::STATUS_REGISTERED

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Group

anonymous, #builtin_type, #givable?, human_attribute_name, #name, #name=, non_member, #to_s, #user_removed

Methods included from Redmine::SafeAttributes

#delete_unsafe_attributes, included, #safe_attribute?, #safe_attribute_names, #safe_attributes=

Methods inherited from Principal

#<=>, detect_by_keyword, fields_for_order_statement, #mail, #mail=, #member_of?, #name, #nullify_projects_default_assigned_to, #project_ids, #reload, #visible?

Class Method Details

.create_instanceObject


45
46
47
48
49
50
51
52
# File 'app/models/group_builtin.rb', line 45

def create_instance
  raise 'The builtin group already exists.' if exists?
  instance = unscoped.new
  instance.lastname = name
  instance.save :validate => false
  raise 'Unable to create builtin group.' if instance.new_record?
  instance
end

.load_instanceObject


40
41
42
43
# File 'app/models/group_builtin.rb', line 40

def load_instance
  return nil if self == GroupBuiltin
  instance = unscoped.order('id').first || create_instance
end

Instance Method Details

#builtin?Boolean

Returns:

  • (Boolean)

27
28
29
# File 'app/models/group_builtin.rb', line 27

def builtin?
  true
end

#destroyObject


31
32
33
# File 'app/models/group_builtin.rb', line 31

def destroy
  false
end

#user_added(user) ⇒ Object


35
36
37
# File 'app/models/group_builtin.rb', line 35

def user_added(user)
  raise 'Cannot add users to a builtin group'
end

#validate_uniquenessObject


23
24
25
# File 'app/models/group_builtin.rb', line 23

def validate_uniqueness
  errors.add :base, 'The builtin group already exists.' if self.class.exists?
end