Ok, I'm updating all cases here just to clarify all scenarios, assuming `organization = organization or generate_string(6)`

1. admin_user:
Assuming fresh setup, no org is created there.. Code will first check the passed org from selection list otherwise It will create the passed org or generate it randomly and select it

2. non-admin user: as you said
- If user1 logins for the first time and there's no default org, then assuming said user has org creation permissions, then random org will be created.
- if user2 logins and he/she doesn't pass an organization during login. Also, user2 does not have permissions to see ACME or any other org, so the logic here will attempt to create random org
- if user3 login and he/she doesn't pass an organization during login, also doesn't have permission to create org then execption raised that "could not create org"