mirror of
https://github.com/modoboa/modoboa.git
synced 2026-04-26 09:26:00 +03:00
[GH-ISSUE #3436] LDAP-User cannot be set to more than SimpleUsers #1847
Labels
No labels
bug
bug
dependencies
design
documentation
duplicate
enhancement
enhancement
enhancement
feedback-needed
help-needed
help-needed
installer
invalid
looking-for-sponsors
modoboa-contacts
new-ui
new-ui
pr
pull-request
pyconfr
python
question
security
stale
webmail
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/modoboa-modoboa#1847
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @sr-it1 on GitHub (Jan 29, 2025).
Original GitHub issue: https://github.com/modoboa/modoboa/issues/3436
Impacted versions
Steps to reproduce
I just installed a new server with the installer and set up external LDAP
authentication for Modoboa and Dovecot. This works well - the LDAP-user
can login and the maildir /srv/vmail/domain/user gets created.
Current behavior
As a SuperAdmin I'd like to change the role of a LDAP user and this
cannot be done. I'm getting an "Internal error". The corresponding
request to /admin/accounts//edit/ gets an HTTP 500 response.
The membership to the defined LDAP group for these accounts, which is
set in Modoboa -> Parameters -> LDAP settings -> Administrator groups
seems not to be applied.
Traceback for 1.
`Environment:
Request Method: GET
Request URL: https:///admin/accounts//edit/?active_tab=default
Django Version: 4.2.18
Python Version: 3.10.12
Installed Applications:
('django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.sites',
'django.contrib.staticfiles',
'reversion',
'ckeditor',
'ckeditor_uploader',
'oauth2_provider',
'corsheaders',
'rest_framework',
'rest_framework.authtoken',
'drf_spectacular',
'phonenumber_field',
'django_otp',
'django_otp.plugins.otp_totp',
'django_otp.plugins.otp_static',
'django_rename_app',
'django_rq',
'modoboa',
'modoboa.core',
'modoboa.lib',
'modoboa.admin',
'modoboa.transport',
'modoboa.relaydomains',
'modoboa.limits',
'modoboa.parameters',
'modoboa.dnstools',
'modoboa.policyd',
'modoboa.maillog',
'modoboa.pdfcredentials',
'modoboa.dmarc',
'modoboa.imap_migration',
'modoboa.postfix_autoreply',
'modoboa.sievefilters',
'modoboa.ldapsync',
'modoboa_amavis',
'modoboa_webmail',
'modoboa_contacts',
'modoboa_radicale',
'webpack_loader')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'x_forwarded_for.middleware.XForwardedForMiddleware',
'corsheaders.middleware.CorsMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'modoboa.core.middleware.LocalConfigMiddleware',
'modoboa.lib.middleware.AjaxLoginRedirect',
'modoboa.lib.middleware.CommonExceptionCatcher',
'modoboa.lib.middleware.RequestCatcherMiddleware')
Traceback (most recent call last):
File "/srv/modoboa/env/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/usr/lib/python3.10/contextlib.py", line 79, in inner
return func(*args, **kwds)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
return view_func(request, *args, **kwargs)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
return view_func(request, *args, **kwargs)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/views/decorators/http.py", line 43, in inner
return func(request, *args, **kwargs)
File "/srv/modoboa/env/lib/python3.10/site-packages/reversion/revisions.py", line 325, in do_revision_context
return func(*args, **kwargs)
File "/srv/modoboa/env/lib/python3.10/site-packages/modoboa/admin/views/identity.py", line 179, in editaccount
return AccountForm(request, instances=instances).process()
File "/srv/modoboa/env/lib/python3.10/site-packages/modoboa/lib/form_utils.py", line 364, in process
return render(self.request, self.template_name, context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/shortcuts.py", line 24, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 175, in render
return self._render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 167, in _render
return self.nodelist.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/loader_tags.py", line 157, in render
return compiled_parent._render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 167, in _render
return self.nodelist.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/loader_tags.py", line 63, in render
result = block.nodelist.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/defaulttags.py", line 238, in render
nodelist.append(node.render_annotated(context))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/defaulttags.py", line 321, in render
return nodelist.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/library.py", line 237, in render
output = self.func(*resolved_args, **resolved_kwargs)
File "/srv/modoboa/env/lib/python3.10/site-packages/modoboa/lib/templatetags/form_tags.py", line 19, in render_form
return render_to_string(tpl, {"form": form})
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 175, in render
return self._render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 167, in _render
return self.nodelist.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 1005, in
return SafeString("".join([node.render_annotated(context) for node in self]))
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/base.py", line 966, in render_annotated
return self.render(context)
File "/srv/modoboa/env/lib/python3.10/site-packages/django/template/library.py", line 237, in render
output = self.func(*resolved_args, **resolved_kwargs)
File "/srv/modoboa/env/lib/python3.10/site-packages/modoboa/lib/templatetags/form_tags.py", line 44, in render_field
if isinstance(field.field, SeparatorField):
Exception Type: AttributeError at /admin/accounts//edit/
Exception Value: 'str' object has no attribute 'field'
`
Expected behavior
User can be modified for more rights within the frontend of Modoboa.