> On Jan 8, 2018, at 8:34 PM, Craig Russell <apache....@gmail.com> wrote:
> 
>> 
>> On Jan 8, 2018, at 7:32 PM, Sam Ruby <ru...@intertwingly.net> wrote:
>> 
>> On Mon, Jan 8, 2018 at 7:07 PM, Craig Russell <apache....@gmail.com> wrote:
>>> /Users/clr/apache/git/whimsy/lib/whimsy/asf/ldap.rb:260:in `modify': Object 
>>> class violation (LDAP::ResultError)
>>> 
>>> And error reporting is not great. I guess more checking is needed but 
>>> Object class violation is not very informative.
>> 
>> Oh, and AGREED!
>> 
>> LDAP sucks.  You want to add zero members: Object class violation.
>> You want to add somebody who is already a member: Object class
>> violation.  You want to remove somebody who is not a member: Object
>> class violation.
>> 
>> That's why the action that caused the error is logged.  In this case:
>> 
>> LDAP_MOD_DELETE
>> {"member"=>[]}>
>> cn=pmc-chairs,ou=groups,ou=services,dc=apache,dc=org
>> 
>> Here you are deleting nobody.  That apparently is not allowed.
> 
> Seems like there is some error checking that could be done in the ldap.rb 
> code.
> 
> Here is the remove code from lib/whimsy/asf/ldap.rb :
> 
>    # remove people from this service in LDAP
>    def remove(people)
>      @members = nil
>      people = (Array(people) & members).map(&:dn)

It seems like the above line is supposed to guarantee that people includes only 
current members.

There is a similar line of code in the add method:
 people = (Array(people) - members).map(&:dn)

This line seems like it should remove current members from people before trying 
to add them.

What am I missing here?

Craig

>      ASF::LDAP.modify(self.dn, [ASF::Base.mod_delete('member', people)])
>    ensure
>      @members = nil
>    end
> 
> Who wrote this code?
> 
> Would it be possible for this code to check before calling ASF::LDAP.modify 
> that the member actually exists already?
> 
> Craig
> 
>> - Sam Ruby
>> 
>> - Sam Ruby
> 
> Craig L Russell
> Secretary, Apache Software Foundation
> c...@apache.org http://db.apache.org/jdo

Craig L Russell
Secretary, Apache Software Foundation
c...@apache.org http://db.apache.org/jdo

Reply via email to