Modify

Opened 5 years ago

Closed 3 years ago

Last modified 17 months ago

#6183 closed defect (fixed)

LdapPlugin - Error with trac 0.12

Reported by: anonymous Owned by: eblot
Priority: high Component: LdapPlugin
Severity: major Keywords: ldap, ldapplugin, 0.12
Cc: ilias@… Trac Release: 0.12

Description

Might stem from the python version, and doc on the web seems to point towards incompatibilities with unicode strings. I'm using the trunk "Trac-0.12dev_r0-py2.6.egg" with the latest Ldapplugin built for 0.11 with python 2.6 on Ubuntu 9.10,

Traceback (most recent call last):
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/web/api.py", line 393, in send_error
    'text/html')
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/web/chrome.py", line 758, in render_template
    data = self.populate_data(req, data)
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/web/chrome.py", line 649, in populate_data
    d['chrome'].update(req.chrome)
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/web/api.py", line 209, in __getattr__
    value = self.callbacks[name](self)
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/web/chrome.py", line 499, in prepare_request
    contributor.get_navigation_items(req):
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/ticket/web_ui.py", line 168, in get_navigation_items
    if 'TICKET_CREATE' in req.perm:
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/perm.py", line 527, in has_permission
    return self._has_permission(action, resource)
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/perm.py", line 541, in _has_permission
    check_permission(action, perm.username, resource, perm)
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/perm.py", line 428, in check_permission
    perm)
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/perm.py", line 285, in check_permission
    get_user_permissions(username)
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/perm.py", line 360, in get_user_permissions
    for perm in self.store.get_user_permissions(username):
  File "/usr/local/lib/python2.6/dist-packages/Trac-0.12dev_r0-py2.6.egg/trac/perm.py", line 175, in get_user_permissions
    subjects.update(provider.get_permission_groups(username))
  File "build/bdist.linux-x86_64/egg/ldapplugin/api.py", line 106, in get_permission_groups
    self._ldap = LdapConnection(self.env.log, bind, **self._ldapcfg)
TypeError: __init__() keywords must be strings

Attachments (1)

v070trac012.diff (1.7 KB) - added by lazaridis_com 3 years ago.
Patch to create version 0.7.0 for trac 0.12

Download all attachments as: .zip

Change History (14)

comment:1 follow-up: Changed 5 years ago by tiagoaoa@…

A workaround is to change:

self._ldapcfg[name] = value

to

self._ldapcfg[str(name)] = str(value)

comment:2 in reply to: ↑ 1 ; follow-up: Changed 5 years ago by heiv@…

Replying to tiagoaoa@cos.ufrj.br:

A workaround is to change:

self._ldapcfg[name] = value

to

self._ldapcfg[str(name)] = str(value)

Thx for this change in the source code ! It works fine with me for the trac v0.11.6!

comment:3 in reply to: ↑ 2 Changed 5 years ago by chris@…

Replying to heiv@reseau-js.com:

Replying to tiagoaoa@cos.ufrj.br:

A workaround is to change:

self._ldapcfg[name] = value

to

self._ldapcfg[str(name)] = str(value)

Thx for this change in the source code ! It works fine with me for the trac v0.11.6!

This works for me as well on v0.11.6

I came looking to make a ticket with that fix, found one already existed.

Note: There are two places where this change should be made: once in LdapPermissionGroupProvider and again in LdapPermissionStore

  • ldapplugin/api.py

     
    6262        self._ldapcfg = {}
    6363        for name,value in self.config.options('ldap'):
    6464            if name in LDAP_DIRECTORY_PARAMS:
    65                 self._ldapcfg[name] = value
     65                self._ldapcfg[str(name)] = value
    6666        # user entry local cache
    6767        self._cache = {}
    6868        # max time to live for a cache entry
     
    178178        self._ldapcfg = {}
    179179        for name,value in self.config.options('ldap'):
    180180            if name in LDAP_DIRECTORY_PARAMS:
    181                 self._ldapcfg[name] = value
     181                self._ldapcfg[str(name)] = value
    182182        # user entry local cache
    183183        self._cache = {}
    184184        # max time to live for a cache entry

comment:4 Changed 5 years ago by anonymous

Trac 0.11.6 also has the same problem. But LdapPlugin works fine after I modified api.py based on above code.

comment:5 Changed 3 years ago by ilias@…

  • Cc ilias@… added

comment:6 follow-up: Changed 3 years ago by ilias@…

Can someone with commit-rights please update the repository with a 0.7.0 version fro trac 0.12, which contains the above patches?

I've made a temporary 0.7.0 version here:

https://github.com/lazaridis-com/ldaptrac/tree/master/0.12

But would like to use the official repo.

comment:7 in reply to: ↑ 6 Changed 3 years ago by eblot

Replying to ilias@lazaridis.com:

But would like to use the official repo.

Can you attach the patch file to this ticket?

Changed 3 years ago by lazaridis_com

Patch to create version 0.7.0 for trac 0.12

comment:8 follow-up: Changed 3 years ago by lazaridis_com

(please let me know if I can do anything else on my side)

comment:9 Changed 3 years ago by eblot

(In [10933]) Refs #6183. Duplicate plugin for Trac 0.12

comment:10 Changed 3 years ago by eblot

  • Resolution set to fixed
  • Status changed from new to closed

(In [10934]) Closes #6183. Apply patch and update AUTHORS file

comment:11 in reply to: ↑ 8 Changed 3 years ago by eblot

Replying to lazaridis_com:

(please let me know if I can do anything else on my side)

If you can test the delivery, it would be nice as I have no spare time for now. Thanks.

comment:12 Changed 3 years ago by lazaridis_com

Will keep "test the deliver" in mind.

updated doc:

https://trac-hacks.org/wiki/LdapPlugin?action=diff&version=54

comment:13 Changed 17 months ago by Pierre-André Delaroche

Thanks, seems to be working on trac v0.11.6 also, with the French language package.

Regards,

Pierre-André, Genève

création de site

Add Comment

Modify Ticket

Action
as closed The owner will remain eblot.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.