jbittel / django-ldap-sync

A Django application for synchronizing LDAP users and groups
BSD 3-Clause "New" or "Revised" License
26 stars 20 forks source link

TypeError: unsupported operand type(s) #6

Open zdanevichs opened 1 year ago

zdanevichs commented 1 year ago

Hello. Python 3.10.6 return this error.

python3 manage.py syncldap
Traceback (most recent call last):
  File "/opt/src/devapi_django/manage.py", line 22, in <module>
    main()
  File "/opt/src/devapi_django/manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 412, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 458, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python3.10/dist-packages/ldap_sync/management/commands/syncldap.py", line 13, in handle
    sync_ldap.sync_users()
  File "/usr/local/lib/python3.10/dist-packages/ldap_sync/sync.py", line 48, in sync_users
    user_attributes = self.settings.USER_ATTRIBUTES.keys() + self.settings.USER_EXTRA_ATTRIBUTES.keys()
TypeError: unsupported operand type(s) for +: 'dict_keys' and 'dict_keys'
bgtron commented 5 months ago

This worked in older versions of Python, but in later versions, those need to be cast into lists and then they will combine without issue...like this:

user_attributes = list(self.settings.USER_ATTRIBUTES.keys()) + list(self.settings.USER_EXTRA_ATTRIBUTES.keys())