apple / ccs-calendarserver

The Calendar and Contacts Server.
https://www.calendarserver.org
Apache License 2.0
485 stars 136 forks source link

uid apple-generateduid entryUUID relationship #483

Open f1-outsourcing opened 7 years ago

f1-outsourcing commented 7 years ago

If I have a working (authenticating) openldap environment.

When I change only the mapping entry for key uid from uid to entryUUID, I get some errors refering to shortNames.

2017-02-19T16:28:09+0100 [caldav-0]  [txdav.dps.client#debug] DPS call <class 'txdav.dps.commands.RecordsWithRecordTypeCommand'> duration=1978.18ms, results=1570
2017-02-19T16:28:09+0100 [caldav-0]  [txweb2.server#critical] Exception rendering request: <GET /addressbooks/users/ (1, 1)>
2017-02-19T16:28:09+0100 [caldav-0] Traceback (most recent call last):
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/internet/defer.py", line 434, in errback
2017-02-19T16:28:09+0100 [caldav-0]     self._startRunCallbacks(fail)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/internet/defer.py", line 501, in _startRunCallbacks
2017-02-19T16:28:09+0100 [caldav-0]     self._runCallbacks()
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/internet/defer.py", line 588, in _runCallbacks
2017-02-19T16:28:09+0100 [caldav-0]     current.result = callback(current.result, *args, **kw)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/internet/defer.py", line 1184, in gotResult
2017-02-19T16:28:09+0100 [caldav-0]     _inlineCallbacks(r, g, deferred)
2017-02-19T16:28:09+0100 [caldav-0] --- <exception caught here> ---
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/internet/defer.py", line 1126, in _inlineCallbacks
2017-02-19T16:28:09+0100 [caldav-0]     result = result.throwExceptionIntoGenerator(g)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
2017-02-19T16:28:09+0100 [caldav-0]     return g.throw(self.type, self.value, self.tb)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/txweb2/static.py", line 138, in renderHTTP
2017-02-19T16:28:09+0100 [caldav-0]     response = yield super(StaticRenderMixin, self).renderHTTP(request)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/internet/defer.py", line 1126, in _inlineCallbacks
2017-02-19T16:28:09+0100 [caldav-0]     result = result.throwExceptionIntoGenerator(g)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/python/failure.py", line 389, in throwExceptionIntoGenerator
2017-02-19T16:28:09+0100 [caldav-0]     return g.throw(self.type, self.value, self.tb)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/txweb2/resource.py", line 122, in renderHTTP
2017-02-19T16:28:09+0100 [caldav-0]     returnValue((yield result))
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/lib/python2.7/site-packages/twisted/internet/defer.py", line 1128, in _inlineCallbacks
2017-02-19T16:28:09+0100 [caldav-0]     result = g.send(result)
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/twistedcaldav/directory/addressbook.py", line 209, in listChildren
2017-02-19T16:28:09+0100 [caldav-0]     for shortName in record.shortNames:
2017-02-19T16:28:09+0100 [caldav-0]   File "/usr/local/calendarserver/.develop/virtualenv/src/twextpy/twext/who/directory.py", line 508, in __getattr__
2017-02-19T16:28:09+0100 [caldav-0]     raise AttributeError(name)
2017-02-19T16:28:09+0100 [caldav-0] exceptions.AttributeError: shortNames

I was wondering if uid is expected to be mapped to a generated unique id? Or something in the form of an account name like eg. 'admin'. I am looking I guess for mapping the openldap to a similar field as apple-generateduid

the entryUUID in openldap is something like this: 23b7ea8a-145a-1056-846e-9afdb0705407

    300           <key>shortNames</key>
    301           <array>
    302             <string>uid</string>
    303           </array>