Unable to login after initial login
-
Fresh Taiga install on Cloudron v7.1.2 with app configured to authenticate with the Cloudron user directory.
First login by user is successful. Subsequent login attempts fail.
Logs:
Mar 09 17:35:16 Traceback (most recent call last): Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner Mar 09 17:35:16 response = get_response(request) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response Mar 09 17:35:16 response = self.process_exception_by_middleware(e, request) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response Mar 09 17:35:16 response = wrapped_callback(request, *callback_args, **callback_kwargs) Mar 09 17:35:16 File "/app/code/taiga-back/taiga/base/api/viewsets.py", line 95, in view Mar 09 17:35:16 return self.dispatch(request, *args, **kwargs) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view Mar 09 17:35:16 return view_func(*args, **kwargs) Mar 09 17:35:16 File "/app/code/taiga-back/taiga/base/api/views.py", line 449, in dispatch Mar 09 17:35:16 response = self.handle_exception(exc) Mar 09 17:35:16 File "/app/code/taiga-back/taiga/base/api/views.py", line 447, in dispatch Mar 09 17:35:16 response = handler(request, *args, **kwargs) Mar 09 17:35:16 File "/app/code/taiga-back/taiga/auth/api.py", line 77, in create Mar 09 17:35:16 data = auth_plugins[login_type]['login_func'](request) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/taiga_contrib_ldap_auth/services.py", line 58, in ldap_login_func Mar 09 17:35:16 user = ldap_register(username=username, email=email, full_name=full_name) Mar 09 17:35:16 File "/usr/lib/python3.8/contextlib.py", line 75, in inner Mar 09 17:35:16 return func(*args, **kwds) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/taiga_contrib_ldap_auth/services.py", line 45, in ldap_register Mar 09 17:35:16 user = user_model.objects.create(email=email, Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method Mar 09 17:35:16 return getattr(self.get_queryset(), name)(*args, **kwargs) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/query.py", line 422, in create Mar 09 17:35:16 obj.save(force_insert=True, using=self.db) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/contrib/auth/base_user.py", line 66, in save Mar 09 17:35:16 super().save(*args, **kwargs) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/base.py", line 743, in save Mar 09 17:35:16 self.save_base(using=using, force_insert=force_insert, Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/base.py", line 780, in save_base Mar 09 17:35:16 updated = self._save_table( Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/base.py", line 873, in _save_table Mar 09 17:35:16 result = self._do_insert(cls._base_manager, using, fields, update_pk, raw) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/base.py", line 910, in _do_insert Mar 09 17:35:16 return manager._insert([self], fields=fields, return_id=update_pk, Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method Mar 09 17:35:16 return getattr(self.get_queryset(), name)(*args, **kwargs) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/query.py", line 1186, in _insert Mar 09 17:35:16 return query.get_compiler(using=using).execute_sql(return_id) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/models/sql/compiler.py", line 1377, in execute_sql Mar 09 17:35:16 cursor.execute(sql, params) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/raven/contrib/django/client.py", line 127, in execute Mar 09 17:35:16 return real_execute(self, sql, params) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/backends/utils.py", line 67, in execute Mar 09 17:35:16 return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers Mar 09 17:35:16 return executor(sql, params, many, context) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute Mar 09 17:35:16 return self.cursor.execute(sql, params) Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/utils.py", line 89, in __exit__ Mar 09 17:35:16 raise dj_exc_value.with_traceback(traceback) from exc_value Mar 09 17:35:16 File "/app/code/taiga/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute Mar 09 17:35:16 return self.cursor.execute(sql, params) Mar 09 17:35:16 django.db.utils.IntegrityError: duplicate key value violates unique constraint "users_user_email_243f6e77_uniq" Mar 09 17:35:16 DETAIL: Key (email)=(username@mydomain.tld) already exists.
-
@hakunamatata Hi! This might be related:
Taiga has a built-in system admin, which is not able to login in the regular login page. You have to navigate to /admin/ and use the pre-setup admin credentials there. Then assign other privileges to the Cloudron users.
I've had similar situations. Possibly the first login was fine since it was automatic, but the subsequent login, if it's the admin user, needs to use the /admin link. Give it a try.
-
Right, as @scooke said, it would be good to understand what you mean by second login. Are you trying to login as admin or as a normal user the second time?
FWIW, I was able to login into a fresh install multiple times.
-
@scooke @girish I attempted to log into Taiga using my Cloudron SSO credentials (I am the only user in my Cloudron instance and therefore the superadmin). I logged into the regular page (i.e. not the /admin/ page). The first time around it was okay, but then after the first login, it doesn't work any more.
I created a test user account in Cloudron (role=user) and with that account I am able to log in multiple times without issues.
Weird.
-
Or am I not supposed to be able to login to the regular Taiga login page with a Cloudron admin account?
-
@hakunamatata that should be possible, I did login with my superadmin user into taiga. Are you able to reproduce this on another new instance?
-
@girish I think I figured it out. It seems that Taiga doesn't like it when the username as a period(.) in it and omits it when creating the user account which is probably why subsequent login attempts are unable to authenticate.
The username for my superadmin account is firstname.lastname but it is listed in the Taiga user directory as firstnamelastname.
I reproduced the error with another test account with the username test.haha but you can see in this screenshot that Taiga has registered it as testhaha.
-
@hakunamatata Sounds likely. I recall though that while logged in, intially, as the superadmin, you need to grant Users regular access, including yourself.
-
Looks like this issue with the period in the username is a bug in Taiga and @nebulon reported it upstream a year ago.
https://github.com/taigaio/taiga-front/issues/2250
Therefore this issue can be marked as closed.