# 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 %s of type %s" % [groups.class, 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