# File lib/puppet/provider/user/directoryservice.rb, line 55
55:   def groups=(groups)
56:     # case groups
57:     # when Fixnum
58:     #     groups = [groups.to_s]
59:     # when String
60:     #     groups = groups.split(/\s*,\s*/)
61:     # else
62:     #     raise Puppet::DevError, "got invalid groups value #{groups.class} of type #{groups}"
63:     # end
64:     # # Get just the groups we need to modify
65:     # diff = groups - (@is || [])
66:     #
67:     # data = {}
68:     # open("| #{command(:nireport)} / /groups name users") do |file|
69:     #     file.each do |line|
70:     #         name, members = line.split(/\s+/)
71:     #
72:     #         if members.nil? or members =~ /NoValue/
73:     #             data[name] = []
74:     #         else
75:     #             # Add each diff group's current members
76:     #             data[name] = members.split(/,/)
77:     #         end
78:     #     end
79:     # end
80:     #
81:     # user = @resource[:name]
82:     # data.each do |name, members|
83:     #     if members.include? user and groups.include? name
84:     #         # I'm in the group and should be
85:     #         next
86:     #     elsif members.include? user
87:     #         # I'm in the group and shouldn't be
88:     #         setuserlist(name, members - [user])
89:     #     elsif groups.include? name
90:     #         # I'm not in the group and should be
91:     #         setuserlist(name, members + [user])
92:     #     else
93:     #         # I'm not in the group and shouldn't be
94:     #         next
95:     #     end
96:     # end
97:   end