Server hiccup on profile for LDAP imported users

HI,

I’m on pro 6.3.9

I’m a imported LDAP user and try to display my profile.

Seahub server hiccups and displays in seahub.log

2018-12-16 15:35:58,958 [ERROR] django.request:135 handle_uncaught_exception Internal Server Error: /profile/
Traceback (most recent call last):
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/thirdpart/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/thirdpart/django/core/handlers/base.py", line 249, in _legacy_get_response
    response = self._get_response(request)
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/thirdpart/django/core/handlers/base.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/thirdpart/django/core/handlers/base.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/seahub/auth/decorators.py", line 27, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/seahub/profile/views.py", line 79, in edit_profile
    decoded = UserOptions.objects.get_webdav_decoded_secret(username)
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/seahub/options/models.py", line 256, in get_webdav_decoded_secret
    aes = AESPasswordHasher()
  File "/home/cc/seafile/seafile-pro-server-6.3.9/seahub/seahub/utils/hasher.py", line 39, in __init__
    self.cipher = AES.new(secret, AES.MODE_ECB)
AttributeError: 'NoneType' object has no attribute 'new'

@daniel.pan is this a bug ?

To let you know, before upgrading from 6.3.8 to 6.3.9 i did

sudo pip uninstall pycryptodome==3.7.2

This LDAP imported user had a password set for Webdav on 6.3.8

A normal admin can display his profile and set a Webdav password and display its profile again without hiccup

Hi @gauburtin,

pycryptodome is required if webdav secret feature is enabled.

Why did you uninstall pycryptodome before upgrading from 6.3.8 to 6.3.9 ?

Hi,

I made a mistake : i thought it was only a patch required on 6.3.8

But this is a prerequisite now

I get no more error now