Class: Chef::Group
- Inherits:
-
Object
- Object
- Chef::Group
- Defined in:
- lib/chef/group.rb
Direct Known Subclasses
Instance Method Summary collapse
- #actor_delete_would_leave_admins_empty? ⇒ Boolean
- #add_user_to_group(groupname, username) ⇒ Object
- #group(groupname) ⇒ Object
- #remove_user_from_group(groupname, username) ⇒ Object
- #user_member_of_group?(username, groupname) ⇒ Boolean
Instance Method Details
#actor_delete_would_leave_admins_empty? ⇒ Boolean
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/chef/group.rb', line 58 def actor_delete_would_leave_admins_empty? admins = group("admins") if admins["groups"].empty? # exclude 'pivotal' but don't mutate the group since we're caching it if admins["actors"].include? "pivotal" admins["actors"].length <= 2 else admins["actors"].length <= 1 end else # We don't check recursively. If the admins group contains a group, # and the user is the only member of that group, # we'll still turn up a 'safe to delete'. false end end |
#add_user_to_group(groupname, username) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/chef/group.rb', line 33 def add_user_to_group(groupname, username) group = group(groupname) body_hash = { groupname: "#{groupname}", actors: { "users" => group["actors"].concat([username]), "groups" => group["groups"], }, } chef_rest.put_rest "organizations/#{name}/groups/#{groupname}", body_hash end |
#group(groupname) ⇒ Object
23 24 25 26 |
# File 'lib/chef/group.rb', line 23 def group(groupname) @group ||= {} @group[groupname] ||= chef_rest.get_rest "organizations/#{name}/groups/#{groupname}" end |
#remove_user_from_group(groupname, username) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/chef/group.rb', line 45 def remove_user_from_group(groupname, username) group = group(groupname) group["actors"].delete(username) body_hash = { groupname: "#{groupname}", actors: { "users" => group["actors"], "groups" => group["groups"], }, } chef_rest.put_rest "organizations/#{name}/groups/#{groupname}", body_hash end |
#user_member_of_group?(username, groupname) ⇒ Boolean
28 29 30 31 |
# File 'lib/chef/group.rb', line 28 def user_member_of_group?(username, groupname) group = group(groupname) group["actors"].include? username end |