Skip to content

Latest commit

 

History

History
287 lines (220 loc) · 8.27 KB

CHANGES.md

File metadata and controls

287 lines (220 loc) · 8.27 KB

Change Log

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.

[0.8.4] - 2021-04-18

This is the last release that is compatible with Python versions older than 3.6

Added

  • 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

Changed

  • 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

Fixed

  • missing argument in specific permission fetching codepath #69

[0.8.3] - 2019-02-09

Added

  • 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

Changed

  • fixed deprecated usage of set_request_property (thanks Francis Charette Migneault)

[0.8.2] - 2018-11-08

Fixed

  • Fixed migrations under Mysql 8.x

[0.8.0] [0.8.1] - 2018-09-28

Changed

  • [Breaking] Most of deprecated model methods got removed, please use services instead
  • [Breaking] ziggurat_model_init has now explicit order of model classes set

[0.7.3] - 2018-02-19

Changed

  • 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.

[0.7.2] - 2018-02-17

Changed

  • 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)

[0.7.1] - 2017-02-19

Changed

  • fixed tree ordering for nested elements
  • fixed perm_by_group_and_perm_name method

[0.7.0] - 2016-11-25

Added

  • Introduced ResourceTreeService for nested resource management (currently only PostgreSQL support is implemented)
  • lots of new tests

Changed

  • added deprecation warnings
  • [breaking] code reorganization that might break existing code
  • [breaking] _ziggurat_services is now a list

2016-07-05

  • Release: 0.6.8
  • use importlib for imports to avoid issues with unicode passed to import()

2016-05-05

  • 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

2016-04-27

  • 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

2016-04-19

  • 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

2015-11-13

  • Release: 0.6.2
  • replace cryptacular with passlib

2015-09-19

  • Release: 0.6.1
  • some fixes for ext.pyramid not-working completly with service related changes

2015-08-03

  • 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

2015-06-15

  • Release: 0.5.6
  • user model gains security date column
  • minor bugfixes

2015-06-07

  • Release: 0.5.5
  • added persist(), delete(), base_query() methods to Base model

2015-04-27

  • Release: 0.5.3
  • resource.groups_for_perm() returns groups/permissions for single resource

2015-04-24

  • 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

2015-04-23

  • Release: 0.5.1
  • Group.resources_with_possible_perms() added

2015-04-17

  • 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

2015-02-18

  • Release: 0.4.3
  • Added a way to filter on resource types in UserMixin.resources_with_perms()
  • Made User.resources dynamic relationship

2014-08-25

  • 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

2012-11-28

  • 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

2012-06-26

  • added some indexes to resource owners
  • previous revision ID: 3cfc41c4a5f0

2012-06-25

  • dropped groups.id column
  • previous revision ID: 53927300c277

2012-06-05

  • shrinked integer sized on primary keys
  • previous revision ID: 54d08f9adc8c

2012-05-27 version 0.2 First public release

  • 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

2012-05-25

  • Possible backwards incompatibility: Remove invalidate keyword cruft

2012-03-10

  • 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

2012-02-19

  • Made external identity fields bigger
  • previous revision ID: 264049f80948

2012-02-13

  • 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

2011-12-20

  • Made hash fields bigger
  • previous revision ID: 5c84d7260c5

2011-11-15

  • Added ExternalIdentityMixin - for storing information about user profiles connected to 3rd party identites like facebook/twitter/google/github etc.
  • previous revision ID: 24ab8d11f014

2011-11-03

  • added alembic migration support
  • previous revision ID: 2bb1ba973f0b

2011-08-14

  • 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