Class: MacAdmin::Group

Inherits:
DSLocalRecord show all
Defined in:
lib/macadmin/dslocal/group.rb

Overview

Group

  • creates and manages Mac OS X User Groups

  • params: :name, :realname, :gid

Direct Known Subclasses

ComputerGroup

Constant Summary collapse

MIN_GID =
501

Constants inherited from DSLocalRecord

DSLocalRecord::DSLOCAL_ROOT

Constants included from Common

Common::MAC_OS_X_PRODUCT_VERSION

Instance Attribute Summary

Attributes inherited from DSLocalRecord

#composite, #data, #file, #node, #real, #record

Instance Method Summary collapse

Methods inherited from DSLocalRecord

#[], #[]=, #create, #destroy, #diff, #eql?, #exists?, init_with_file

Methods included from MCX

#has_mcx?, #mcx_delete, #mcx_export, #mcx_import, #pretty_mcx

Methods included from Common

#get_primary_mac_address, #load_plist, #restart_directoryservice

Constructor Details

#initialize(args) ⇒ Group

Returns a new instance of Group.



10
11
12
13
14
# File 'lib/macadmin/dslocal/group.rb', line 10

def initialize(args)
  @member_class = User  unless defined? @member_class
  @group_class  = Group unless defined? @group_class
  super args
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class MacAdmin::DSLocalRecord

Instance Method Details

#add_groupmember(member) ⇒ Object

Add a member to the object’s groupmembers array

  • single param: the name of a group (String)



47
48
49
50
51
52
# File 'lib/macadmin/dslocal/group.rb', line 47

def add_groupmember(member)
  group = @group_class.new :name => member, :node => self.node
  raise unless group.exists?
  self[:groupmembers] << group.generateduid.first 
  self[:groupmembers].uniq!
end

#add_user(member) ⇒ Object

Add a member to the object’s users array

  • single param: the name of a user (String)



24
25
26
27
28
29
# File 'lib/macadmin/dslocal/group.rb', line 24

def add_user(member)
  user = @member_class.new :name => member, :node => self.node
  raise unless user.exists?
  self[:users] << member
  self[:users].uniq!
end

#has_groupmember?(member) ⇒ Boolean

Examine the object’s groupmembers array for “member”

  • single param: the name of a group (String)

Returns:

  • (Boolean)


39
40
41
42
43
# File 'lib/macadmin/dslocal/group.rb', line 39

def has_groupmember?(member)
  group = @group_class.new :name => member, :node => self.node
  return false unless group.exists?
  self[:groupmembers].member? group.generateduid.first
end

#has_user?(member) ⇒ Boolean

Examine the object’s users array for “member”

  • single param: the name of a user (String)

Returns:

  • (Boolean)


18
19
20
# File 'lib/macadmin/dslocal/group.rb', line 18

def has_user?(member)
  self[:users].member? member
end

#rm_groupmember(member) ⇒ Object

Remove a member from the object’s groupmembers array

  • single param: the name of a group (String)



56
57
58
59
60
# File 'lib/macadmin/dslocal/group.rb', line 56

def rm_groupmember(member)
  group = @group_class.new :name => member, :node => self.node
  return nil unless group.exists?
  self[:groupmembers].delete group.generateduid.first
end

#rm_user(member) ⇒ Object

Remove a member from the object’s users array

  • single param: the name of a user (String)



33
34
35
# File 'lib/macadmin/dslocal/group.rb', line 33

def rm_user(member)
  self[:users].delete member
end