WIP
- Bumped django-all-auth from 0.46.0 to 0.51.0 to fix mild security issues (see the change log of django-all-auth for more information)
- The
@classmethod
decorator was mistakenly forgotten and hence missing from the following methods ofopenwisp_users.apps.OpenwispUsersConfig
:update_organizations_dict
create_organization_owner
- Fixed a broken example in the DRF Permission Classes section of the documentation
- Updated fur translations
- Added UsersAuthenticationBackend class that allows users to authenticate using either email, phone_number or username.
- Added the possibility to filter users by their organization in the user administration section.
- Added REST API endpoints for openwisp-users.
- Added various Django REST Framework mixins and utilities which allow to implement.
- Added DRF permission classes.
- Added passwordless authentication backend for REST APIs.
- Added
OrganizationInvitation
model. - Added email verification success view.
- Added logout success view.
- Authentication REST API endpoints are now enabled by default.
- Following changes have been made to the User model:
- Increased max length of User.location field.
- Added User.birth_date field.
- Added User.notes field.
- Added User.language field.
- Made User.email case insensitive. Email addresses will always get converted to lower case before storage and comparison.
- Updated
OrganizationOwnerInline
to useraw_id
field fororganization_user
field. - Updated
OrganizationUserInline
to useautocomplete
field fororganization
field. - Backward incompatible: removed custom permission helpers.
- Backward incompatible: the REST API endpoint
/api/v1/user/token/
has been changed to/api/v1/users/token/
for consistency with the rest of the API.
Dependencies:
- Dropped support for Django
2.2.x
. - Dropped support for Python
3.6
. - Added support for Python
3.8
and Python3.9
. - Added support for Django
3.2.x
and4.0.x
. - Bumped
django-allauth~=0.46.0
. - Bumped
django-organizations~=2.0.1
- Bumped
django-phonenumber-field~=6.0.0
. - Bumped
openwisp-utils~=1.0.0
. - Bumped
swapper~=1.3.0
- Added
django-sesame~=2.4.0
.
- Fixed internal server error on "/accounts/login/" page when the social account app is disabled.
- Fixed error on restoring "Group" object with django-reversion.
- Fixed error on visiting Django admin URL for non-existing users.
- Fixed organization managers could escalate their privileges to superuser.
- Updated django-allauth to 0.44.x
- Copied the template
account/login.html
from django-allauth in order to remove the sign up link, which we do not support - Updated django-extensions to 3.1
- Updating django-allauth to 0.44.x also fixes an issue affecting OpenWISP Users in production deployment (experienced in ansible-openwisp2)
N/A.
- [change] Extend
admin/base_site.html
inconfirm_email.html
- [change] Updated to openwisp-utils 0.7 and switched to new
register_menu_items
- [change] Removed typographic error in settings which was maintained for backward compatibility
- [change] Removed deprecated
organizations_pk
- [fix] Fix email confirmation when link is invalid
- [docs] Fixed several broken links in "Extend openwisp-users" section
- [fix] Allow swagger to show parameters of obtain token view
- [chores] Allow passing a string or uuid to the Organization membership helpers
- [fix] The
OrganizationUser
instance of anOrganizationOwner
won't be allowed to beis_admin=False
- [fix] Fixed mutable class attribute in MultitenantAdminMixin
- [fix] Fixed exception when deleting
OrganizationUser
of an owner - [fix] Fixed typographical error in organization name
- [models] Added organizations_managed helper
- [models] Added organizations_owned helper
- [admin]: Potentially backward incompatible change: Multi-tenant
admin classes now allow only org managers. Before this version, a user
needed to be only org member to see items of that organization in the
admin, but this is wrong! An
OrganizationUser
which hasis_admin=False
is only an end-user of that organization. Instead, anOrganizationUser
which hasis_admin=True
is also a manager and only this type of user shall be allowed to manage items of the organization through the django admin site. This is needed in order to support users being simple end-users in one organization but administrators in others, otherwise a staff user who is administrator of one organization would be able to change also items of other organizations where they are only members and not managers. - [dependencies] Added support for django 3.1
- [dependencies] django-phonenumber-field 5.0
- [deps] Updated openwisp-utils to 0.6.0
- [test] Added functions to add inline fields in extended app's integration testing
- [models] Added swappable models and extensible classes
- [admin] Added support for organization owners
- [admin] Added default owner to each organization
- [api] Added ObtainTokenView REST API endpoint for bearer authentication
- [api] Added OPENWISP_USERS_AUTH_API and OPENWISP_USERS_AUTH_THROTTLE_RATE settings
- [api] Added Django REST Framework permission classes
- [models] Added Organization membership helpers
- [models] Added User permission helpers
- Enabled organization owner admin by default
- [dependencies] Upgraded
django-allauth 0.42.0
,django-extensions 3.0.2
,openwisp-utils 0.5[rest]
andphonenumbers 8.12.0
- [admin] Fixed administrator edit/delete users of the same organization
- [admin] Fixed unique validation error on empty phone number
- [admin] Fixed regression that caused superusers to not be able to delete regular users
- [admin] Do not de-register socialaccount if not enabled
- [admin] Add possibility to deactivate users in batch operation
- [admin] Wrapped password forgot in row div
- [admin] Show latest items first in "recovery deleted <object>" pages
- [dependencies] Added support for django 3.0, dropped support for django < 2.1
- [python] Dropped support for python 2.7
- [dependencies] Added support for django 2.2
- [admin] Show
is_staff
andis_superuser
in user list - [admin] Allow adding organization in user creation form
- [admin]
UserCreationForm
encourages to select the organization - [admin] Non-superusers now can manage the users of their organization
- [admin] Made
OrganizationOwner
andOrganizationUser
admins multi-tenant - [admin] Disabled
OrganizationOwnerAdmin
by default - [admin] Disabled
OrganizationUserAdmin
by default - [admin] Disabled
view_on_site
forOrganizationUserInline
- [admin] Added menu items
- [admin] Avoid 500 error in case of SMTP error when adding a new user
- [urls] Added social login views URLs
- [mixins] Moved
MultitenantAdminMixin
from openwisp-utils to openwisp-users - [models] Add possibility to validate inverse relations
- [model] Added phone_number field to User
- [models] Add unique constraint on user.email
- [models] Email: allow
NULL
but setUNIQUE
constraint - [models] Added
_validate_org_reverse_relation
- #26: [admin] Fixed Integrity error if trying to change email that exists (thanks to @R9295)
- #27: [requirements] Added support for django 2.1 rc
- #25: [docs] Updated setup instructions in README (thanks to @AlmogCohen)
- #20: [tests] Fixed pending migration check
- [requirements] Updated dependencies
- fixed django 2.0 support and django-allauth to 0.35.0
- upgraded django to 2.0 and django-allauth to 0.34.0
- c5b648e:
[mixins] Extracted logic of
OrgMixin
toValidateOrgMixin
- #3: [admin] Allow operators to manage users without being able to change superuser related details
- 31b13bb: [requirements] Updated django-allauth to 0.33.0
- f49f900: [admin] Removed view on site link in organization admin
- 2144b29: [admin] Removed view on site link in organization user admin
- dcef200: [requirements] Updated django-allauth to 0.32.0
- f9056e9: [admin] Always require email
- c21c782:
[mixins] Fixed bugged org pk comparison in
_validate_org_relation
- 763c261: [accounts] Added back frontend logout url
- b93de81: [admin] Added back site model
- b615f4c:
[admin] Unregister
allauth.socialaccount
models - d6a2294:
[allauth] Added proxy URLs for
allauth.acounts
- [mixins] Fixed relation name in OrgMixin and ShareableOrgMixin
- added basic multi-tenancy features for OpenWISP 2