X-Git-Url: https://nos-oignons.net/gitweb/gestion-adh.git/blobdiff_plain/4a99ae87e0f7fdd07d8820a724fbed1d8b2b5f36..76f86b5fd3f52363a3ce219310062270ee4eb52a:/lib/nos_oignons/mailman.rb diff --git a/lib/nos_oignons/mailman.rb b/lib/nos_oignons/mailman.rb index 501b542..352b968 100644 --- a/lib/nos_oignons/mailman.rb +++ b/lib/nos_oignons/mailman.rb @@ -1,4 +1,20 @@ #-*- coding: utf-8 -*- +# +# Système de gestion des adhésions de Nos oignons +# Copyright © 2013-2014 Nos oignons +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . require 'shellwords' @@ -6,7 +22,7 @@ module NosOignons module Mailman class << self def list_members(list) - `list_members #{Shellwords.escape(list)}`.split + `sudo -u list list_members #{Shellwords.escape(list)}`.strip.split end def add_member(list, email) @@ -14,8 +30,23 @@ module NosOignons end def add_members(list, emails) - # XXX IO.popen - `add_members #{Shellwords.escape(list)}`.split + IO.popen(['sudo', '-u', 'list', 'add_members', '-r', '-', list], 'w') do |io| + emails.each do |email| + io.puts email + end + end + end + + def remove_member(list, email) + remove_members(list, [email]) + end + + def remove_members(list, emails) + IO.popen(['sudo', '-u', 'list', 'remove_members', '-f', '-', list], 'w') do |io| + emails.each do |email| + io.puts email + end + end end end end