On 14 November 2017 at 19:37,  <[email protected]> wrote:
> This is an automated email from the ASF dual-hosted git repository.
>
> rubys pushed a commit to branch master
> in repository https://gitbox.apache.org/repos/asf/whimsy.git
>
>
> The following commit(s) were added to refs/heads/master by this push:
>      new fa27e72  Class to encapsulate the adding and removal of committers
> fa27e72 is described below
>
> commit fa27e722436b7650b1c67bf8289729de750537e4
> Author: Sam Ruby <[email protected]>
> AuthorDate: Tue Nov 14 14:36:42 2017 -0500
>
>     Class to encapsulate the adding and removal of committers
> ---
>  lib/whimsy/asf/ldap.rb | 44 ++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 44 insertions(+)
>
> diff --git a/lib/whimsy/asf/ldap.rb b/lib/whimsy/asf/ldap.rb
> index 2121ce5..6027c76 100644
> --- a/lib/whimsy/asf/ldap.rb
> +++ b/lib/whimsy/asf/ldap.rb
> @@ -505,6 +505,50 @@ module ASF
>      end
>    end
>
> +  # Manage committers: list, add, and remove people not only from the list
> +  # of people, but from the list of committers.
> +  class Committer < Base
> +    @base = 'ou=role,ou=groups,dc=apache,dc=org'
> +
> +    # get a list of committers
> +    def self.list()
> +      ASF.search_one(base, 'cn=committers', 'member').flatten.
> +        map {|uid| Person.find uid[/uid=(.*?),/,1]}
> +    end
> +
> +    # add a new committer to LDAP.  Attrs must include uid, cn, and mail
> +    def self.add(attrs)
> +      # add person to LDAP
> +      person = ASF::Person.add(attrs)
> +
> +      # add person to 'new' committers list
> +      ASF::LDAP.modify("cn=committers,#@base",
> +        [ASF::Base.mod_add('member', [person.dn])])
> +
> +      # add person to 'legacy' committers list
> +      ASF::Group['committers'].add(person)
> +
> +      # return new person
> +      person
> +    end
> +
> +    # remove a committer from LDAP
> +    def self.remove(person)
> +      # if person is a string, find the person object
> +      person = ASF::Person[person] if person.instance_of? String
> +
> +      # remove person to 'legacy' committers list, ignoring exceptions
> +      ASF::Group['committers'].add(person) rescue nil

Comment does not agree with code; it's not clear which is correct.

> +
> +      # remove person from 'new' committers list, ignoring exceptions
> +      ASF::LDAP.modify("cn=committers,#@base",
> +        [ASF::Base.mod_delete('member', [person.dn])]) rescue nil
> +
> +      # remove person from LDAP
> +      ASF::Person.remove(person.id)
> +    end
> +  end
> +
>    class Person < Base
>      @base = 'ou=people,dc=apache,dc=org'
>
>
> --
> To stop receiving notification emails like this one, please contact
> ['"[email protected]" <[email protected]>'].

Reply via email to