Class: Entitlements::Plugins::PosixGroup

Inherits:
Entitlements::Plugins show all
Includes:
Contracts::Core
Defined in:
lib/entitlements/plugins/posix_group.rb

Constant Summary collapse

C =
::Contracts

Class Method Summary collapse

Methods inherited from Entitlements::Plugins

loaded?

Class Method Details

.gid_number(group) ⇒ Object

Raises:

  • (ArgumentError)


35
36
37
38
39
40
41
42
43
# File 'lib/entitlements/plugins/posix_group.rb', line 35

def self.gid_number(group)
  unless group..key?("gid_number")
    raise ArgumentError, "POSIX Group #{group.dn} has no metadata setting for gid_number!"
  end

  result = group.["gid_number"].to_i
  return result if result >= 1 && result < 65536
  raise ArgumentError, "POSIX Group #{group.dn} has GID #{result} out of 1-65535 range!"
end

.override_hash(group, _plugin_config, ldap) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/entitlements/plugins/posix_group.rb', line 17

def self.override_hash(group, _plugin_config, ldap)
  members = group.member_strings.map { |ms| ldap.person_dn_format.gsub("%KEY%", ms) }

  {
    "objectClass"  => "PosixGroup",
    "memberUid"    => members,
    "gidNumber"    => gid_number(group).to_s,
    "uniqueMember" => nil,
    "owner"        => nil
  }
end