All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
This is the last release that is compatible with Python versions older than 3.6
- pyramid extensions can now accept
session_provider_callable
not only as a path to callable but also as plain callable object - tests for pyramid extensions
- Become compatible with sqlalchemy 1.4.x
- Allow obtaining node resource by model name #70 (thanks Francis Charette Migneault)
- remove deprecated base model code
- reduce warnings generated
- prepare for pyramid versions higher than 2.0
- missing argument in specific permission fetching codepath #69
- pyramid extensions can now accept
session_provider_callable
not only as a path to callable but also as plain callable object - tests for pyramid extensions
- fixed deprecated usage of
set_request_property
(thanks Francis Charette Migneault)
- Fixed migrations under Mysql 8.x
- [Breaking] Most of deprecated model methods got removed, please use services instead
- [Breaking] ziggurat_model_init has now explicit order of model classes set
- Use pbkdf2_sha256 by default (bcypt hashes will work and will be migrated on first login for users)
Important
By default check_password
will migrate your existing bcrypt hashes to pbkdf2_sha256, if you want to keep bcrypt,
you can either pass passwordmanager_schemes
list to ziggurat_model_init
or use your own passwordmanager.
- Fixed some minor issues that resulted in bad migrations when someone used
autogenerate in alembic
- Added a way to read sqlalchemy.url from environment variable (thanks René Jochum)
- fixed tree ordering for nested elements
- fixed
perm_by_group_and_perm_name
method
- Introduced ResourceTreeService for nested resource management (currently only PostgreSQL support is implemented)
- lots of new tests
- added deprecation warnings
- [breaking] code reorganization that might break existing code
- [breaking] _ziggurat_services is now a list
- Release: 0.6.8
- use importlib for imports to avoid issues with unicode passed to import()
- Release: 0.6.6/0.6.7
- increased field sizes for external identity tokens, permission names and username
- perm name is checked to be lowercase in all databases, not only for postgresql
- Release: 0.6.5
- got rid of all unicode warnings generated by sqlalchemy and start to use unicode for all strings
- user.resources_with_possible_perms() passes resource_types properly
- Release: 0.6.3/0.6.4
- extended functionality of
populate_obj
function of Base class - minor bugfix for mysql
BACKWARDS INCOMPATIBLE CHANGES
- external_identities.local_user_name column is dropped and replaced with local_user_id
- Release: 0.6.2
- replace cryptacular with passlib
- Release: 0.6.1
- some fixes for ext.pyramid not-working completly with service related changes
- Release: 0.6.0
- models are decoupled from services that interact with models (all model querying methods now live in services)
BACKWARDS INCOMPATIBLE CHANGES
- import related changes:
- ziggurat_foundations.models doesn't import all the models anymore every model now lives in separate file
- permission related functions now live in permissions module
- Release: 0.5.6
- user model gains security date column
- minor bugfixes
- Release: 0.5.5
- added persist(), delete(), base_query() methods to Base model
- Release: 0.5.3
- resource.groups_for_perm() returns groups/permissions for single resource
- Release: 0.5.2
- resource.users_for_perm() now accepts
limit_group_permissions
param that that makes it return just group with perm name instead tuples including every user/perm pairs
- Release: 0.5.1
- Group.resources_with_possible_perms() added
- Release: 0.5
- Now uses detailed permissions
- BACKWARDS INCOMPATIBLE API CHANGES
- ResourceMixin.users_for_perm() accepts additional parameters group_ids, and user_ids to limit the amount of results if needed
- User.permissions, Resource.perms_for_user, Resource.direct_perms_for_user, Resource.group_perms_for_user, Resource.users_for_perm_detailed, Resource.users_for_perm now return list of detailed PermissionTuple's instead simple [id, perm_name] pairs this will break your application You can use ziggurat_foundations.utils.permission_to_04_acls() to convert the new tuples to pre 0.5 format
- Release: 0.4.3
- Added a way to filter on resource types in UserMixin.resources_with_perms()
- Made User.resources dynamic relationship
- Second Alpha Release 0.4
- Move to paginate from webhelpers.paginate
- Users can now log in via username or email address
- Python 3 compatibale after moving away from webhelpers.paginate
- First Alpha Release 0.3 - This release should have a fairly stable API
- Hundreds of small and big changes - based on all great feedback we are now using surrogate pkeys instead of natural pkeys for most models. As result of this few methods started accepting id's instead usernames, so consider yourself warned that this release might be bw. incompatible a bit with your application
- At this point all tests should pass on mysql, postgresql, sqlite
- added some indexes to resource owners
- previous revision ID: 3cfc41c4a5f0
- dropped groups.id column
- previous revision ID: 53927300c277
- shrinked integer sized on primary keys
- previous revision ID: 54d08f9adc8c
- added proper alembic(pre 0.3.3 trunk) support for multiple alembic migrations via separate versioning table
- please do manual stamp for CURRENT revision ID: 54d08f9adc8c
- changes for first public pypi release
- Possible backwards incompatibility: Remove cache keyword cruft
- Possible backwards incompatibility: Remove invalidate keyword cruft
- Add registration date to user model, changed last_login_date to no-timezone type (this seem trivial enough to not faciliate schema change)
- previous revision ID: 2d472fe79b95
- Made external identity fields bigger
- previous revision ID: 264049f80948
- Bumped alembic machinery to 0.2
- Enabled developers to set their own custom password managers
- added ordering column for resources in tree
- Stubs for tree traversal
- previous revision ID: 46a9c4fb9560
- Made hash fields bigger
- previous revision ID: 5c84d7260c5
- Added ExternalIdentityMixin - for storing information about user profiles connected to 3rd party identites like facebook/twitter/google/github etc.
- previous revision ID: 24ab8d11f014
- added alembic migration support
- previous revision ID: 2bb1ba973f0b
- resource.users_for_perm(), resource.direct_perms_for_user() and resource.group_perms_for_user() return tuple (user/group_name,perm_name) now
.. hint:: What "previous revision ID" means? If you are updating the package that never was stamped with alembic you may need to stamp the database manually with following revision id, from this point onwards you will be able to update schemas automaticly. Alembic 0.3.3+ (or current trunk for 2012-05-27) is required for this to function properly