invenio-accounts


Nameinvenio-accounts JSON
Version 5.0.1 PyPI version JSON
download
home_pagehttps://github.com/inveniosoftware/invenio-accounts
SummaryInvenio user management and authentication.
upload_time2024-03-27 15:11:49
maintainerNone
docs_urlhttps://pythonhosted.org/invenio-accounts/
authorCERN
requires_python>=3.7
licenseMIT
keywords invenio accounts user role login
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ..
    This file is part of Invenio.
    Copyright (C) 2015-2018 CERN.

    Invenio is free software; you can redistribute it and/or modify it
    under the terms of the MIT License; see LICENSE file for more details.

==================
 Invenio-Accounts
==================

.. image:: https://img.shields.io/github/license/inveniosoftware/invenio-accounts.svg
        :target: https://github.com/inveniosoftware/invenio-accounts/blob/master/LICENSE

.. image:: https://github.com/inveniosoftware/invenio-accounts/workflows/CI/badge.svg
        :target: https://github.com/inveniosoftware/invenio-accounts/actions?query=workflow%3ACI

.. image:: https://img.shields.io/coveralls/inveniosoftware/invenio-accounts.svg
        :target: https://coveralls.io/r/inveniosoftware/invenio-accounts

.. image:: https://img.shields.io/pypi/v/invenio-accounts.svg
        :target: https://pypi.org/pypi/invenio-accounts

Invenio user management and authentication.

Features:

- User and role management.
- User registration, password reset/recovery and email verification.
- Administration interface and CLI for managing users.
- Session based authentication with session theft protection support.
- Strong cryptographic password hashing with support for migrating password
  hashes (including Invenio v1.x) to new stronger algorithms.
- Session activity tracking allowing users to e.g. logout of all devices.
- Server-side session management.
- JSON Web Token encoding and decoding support useful for e.g. CSRF-protection
  in REST APIs.

Invenio-Accounts relies on the following community packages to do all the
heavy-lifting:

- `Flask-Security <https://flask-security.readthedocs.io>`_
- `Flask-Login <https://flask-login.readthedocs.io/>`_
- `Flask-Principal <https://pythonhosted.org/Flask-Principal/>`_
- `Flask-KVSession <http://pythonhosted.org/Flask-KVSession/>`_
- `Passlib <https://passlib.readthedocs.io/>`_

Further documentation is available on
https://invenio-accounts.readthedocs.io/

..
    This file is part of Invenio.
    Copyright (C) 2015-2024 CERN.

    Invenio is free software; you can redistribute it and/or modify it
    under the terms of the MIT License; see LICENSE file for more details.

Changes
=======

Version 5.0.1 (released 2024-03-22)

- models: fix username case-insensitive comparator

Version 5.0.0 (released 2024-03-21)

- fix: before_first_request deprecation
- change module blueprint to callable

Version 4.0.2 (released 2024-02-19)

- add change history tracking of domains
- add task to calculate domain statistics
- add methods to verify, block and deactivate users in datastore

Version 4.0.1 (released 2024-02-01)

- models: fix column type for domain status

Version 4.0.0 (released 2024-01-29)

- sessions: check for request before accessing session
- global: new domain list feature

Version 3.5.1 (released 2023-12-10)

- views: disable registering of `settings.change_password` menu
  if `ACCOUNTS_REGISTER_BLUEPRINT` is False

Version 3.5.0 (released 2023-11-10)

- datastore: override put method to add changes to db history

Version 3.4.4 (released 2023-11-10)

models: do not set value in user preference getter

Version 3.4.3 (released 2023-10-20)

- email: force lowercase

Version 3.4.2 (released 2023-10-17)

- Adds support for user impersonation

Version 3.4.1 (released 2023-10-14)

- datastore: prevent autoflush on db

Version 3.4.0 (released 2023-08-30)

- templates: refactor send confirmation template

Version 3.3.1 (released 2023-08-23)

- config: set `ACCOUNTS_DEFAULT_USERS_VERIFIED` to False by default

Version 3.3.0 (released 2023-08-21)

- models: add `verified_at` column in User model. The default value is controlled by
  a new config variable called `ACCOUNTS_DEFAULT_USERS_VERIFIED`. If True, then a date
  is generated, otherwise is set to `None`.

Version 3.2.1 (released 2023-08-17)

- alembic: fix sqlalchemy op.execute statements due to latest sqlalchamy-continuum

Version 3.2.0 (released 2023-08-02)

- users: add blocket_at and verified_at data model fields

Version 3.1.0 (released 2023-07-31)

- templates: Improve accessibility and layout
- pulled translations

Version 3.0.3 (released 2023-06-15)

- models: fix autogeneration of role id

Version 3.0.2 (released 2023-06-14)

- alembic: adapt recipe to mysql

Version 3.0.1 (released 2023-06-14)

- alembic: fix upgrade recipes

Version 3.0.0 (released 2023-06-14)

- models: add managed field to groups
- models: alter primary key type of group (id)
- cli: pass id on create role action

Version 2.2.0 (released 2023-04-25)

- models: add support for locale in user preferences

Version 2.1.0 (released 2023-03-01)

- global: replace deprecated babelex imports
- update invenio-i18n

Version 2.0.2 (released 2022-12-14)

- cli: add `--confirm` flag when creating a user
- new config variables to set the default user and email visibility
- register_user: method accepts new argument, `send_register_msg`, to control
  programmatically the send of registration email independently of the global
  configuration.

Version 2.0.1 (released 2022-11-18)

- Add translation workflow
- Add pulled translations
- Add black
- Fix icons not appearing

Version 2.0.0 (released 2022-05-23)

- Adds customizable user profiles and user preferences fields to the user
  data model.

- Adds version counter to the user table to enable optimistic concurrency
  control on the user table.

- Moves login information fields from user table to a separate login
  information table.

- Moves the external user identity table from Invenio-OAuthclient to
  Invenio-Accounts.

- Adds support for tracking changed users within a transaction to allow for
  updating the related indexes.

- Changes from using Flask-Security to using a private fork named
  Flask-Security-Invenio. Flask-Security-Too was evaluated but was found to
  have significantly increased scope with features not needed.

Version 1.4.9 (released 2021-12-04)

- Fixed issue with account creation via CLI due to issue with changed API in
  Flask-WTF.

Version 1.4.8 (released 2021-10-18)

- Unpin Flask requirement.

Version 1.4.7 (released 2021-10-06)

- Adds celery task to remove IP addresses from user table after a specified
  retention period (defaults to 30 days).

Version 1.4.6 (released 2021-07-12)

- Adds german translations

Version 1.4.5 (released 2021-05-21)

- Removes config entrypoint.
- Bump module versions.

Version 1.4.4 (released 2021-05-11)

- Enables login view function overridability.
- Allows to disable local login via configuration variable.

Version 1.4.3 (released 2020-12-17)

- Adds theme dependent icons.

Version 1.4.2 (released 2020-12-11)

- Fixes logout from security view.

Version 1.4.1 (released 2020-12-10)

- Fixes styling of forgot password form in semantic ui theme.

Version 1.4.0 (released 2020-12-09)

- Major: adds new Semantic UI theme.
- Adds Turkish translations.
- Fixes ``next`` parameter being used in the sign-up form.
- Fixes issue with translation files causing translations not to be picked up.
- Fixes wording from sign in to log in.
- Removes password length validation during login.

Version 1.3.0 (released 2020-05-15)

- Refreshes the CSRF token on login and logout.
- Removes the example app.
- Migrate from `Flask-KVSession` to `Flask-KVSession-Invenio`, fork of
  the former.

Version 1.2.2 (released 2020-05-13)

*This release was removed from PyPI on 2020-05-15 due to issues with the
release.*

Version 1.2.1 (released 2020-04-28)

- Fixes issue with the latest WTForms v2.3.x release which now requires an
  extra library for email validation.

Version 1.2.0 (released 2020-03-09)

- Replaces Flask dependency with centrally managed invenio-base

Version 1.1.4 (released 2020-04-28)

- Fixes issue with the latest WTForms v2.3.x release which now requires an
  extra library for email validation.

Version 1.1.3 (released 2020-02-19)

- Replaces Flask-CeleryExt to invenio-celery due to version incompatibilities
  with celery, kombu. Removes Flask-BabelExt already provided by invenio-i18n

Version 1.1.2 (released 2020-02-12)

- Fixes requirements for Flask, Werkzeug and Flask-Login due to
  incompatibilities of latest released modules.

Version 1.1.1 (released 2019-03-10)

- Fixes an issue where the HTTP headers X-Session-ID and X-User-ID are added
  even if the value is not known. This causes 'None' to be logged in Nginx,
  instead of simply '-'.

Version 1.1.0 (released 2019-02-15)

- Added support for for adding the user id and session id of the current user
  into the HTTP headers (``X-User-ID`` and ``X-Session-ID``) for upstream
  servers to use. For instance, this way current user/session ids can be logged
  by Nginx into the web server access logs. The feature is off by default and
  can be enabled via the ``ACCOUNTS_USERINFO_HEADERS`` configuration variable.
  Note: The upstream server should strip the two headers from the response
  returned to the client. The purpose is purely to allow upstream proxies like
  Nginx to log the user/session id for a specific request.

- Changed token expiration from 5 days to 30 minutes for the password reset
  token and email confirmation token. Using the tokens will as a side-effect
  login in the user, which means that if the link is leaked (e.g. forwarded by
  the users themselves), then another person can use the link to access the
  account. Flask-Security v3.1.0 addresses this issue, but has not yet been
  released.

- Fixes issue that could rehash the user password in the adminstration
  interface.

Version 1.0.2 (released 2018-10-31)

- Added AnonymousIdentity loader to app initialisation to fix the ``any_user``
  Need in Invenio-Access.

Version 1.0.1 (released 2018-05-25)

- Bumped Flask-CeleryExt from v0.3.0 to v0.3.1 to fix issue with Celery version
  string not being parsable and thus causing problems with installing Celery.

Version 1.0.0 (released 2018-03-23)

- Initial public release.



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/inveniosoftware/invenio-accounts",
    "name": "invenio-accounts",
    "maintainer": null,
    "docs_url": "https://pythonhosted.org/invenio-accounts/",
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "invenio accounts user role login",
    "author": "CERN",
    "author_email": "info@inveniosoftware.org",
    "download_url": "https://files.pythonhosted.org/packages/44/6c/ac04f9931242da82fe6f74719c8dce228c9d3331be5f0ba485c8e1077768/invenio-accounts-5.0.1.tar.gz",
    "platform": "any",
    "description": "..\n    This file is part of Invenio.\n    Copyright (C) 2015-2018 CERN.\n\n    Invenio is free software; you can redistribute it and/or modify it\n    under the terms of the MIT License; see LICENSE file for more details.\n\n==================\n Invenio-Accounts\n==================\n\n.. image:: https://img.shields.io/github/license/inveniosoftware/invenio-accounts.svg\n        :target: https://github.com/inveniosoftware/invenio-accounts/blob/master/LICENSE\n\n.. image:: https://github.com/inveniosoftware/invenio-accounts/workflows/CI/badge.svg\n        :target: https://github.com/inveniosoftware/invenio-accounts/actions?query=workflow%3ACI\n\n.. image:: https://img.shields.io/coveralls/inveniosoftware/invenio-accounts.svg\n        :target: https://coveralls.io/r/inveniosoftware/invenio-accounts\n\n.. image:: https://img.shields.io/pypi/v/invenio-accounts.svg\n        :target: https://pypi.org/pypi/invenio-accounts\n\nInvenio user management and authentication.\n\nFeatures:\n\n- User and role management.\n- User registration, password reset/recovery and email verification.\n- Administration interface and CLI for managing users.\n- Session based authentication with session theft protection support.\n- Strong cryptographic password hashing with support for migrating password\n  hashes (including Invenio v1.x) to new stronger algorithms.\n- Session activity tracking allowing users to e.g. logout of all devices.\n- Server-side session management.\n- JSON Web Token encoding and decoding support useful for e.g. CSRF-protection\n  in REST APIs.\n\nInvenio-Accounts relies on the following community packages to do all the\nheavy-lifting:\n\n- `Flask-Security <https://flask-security.readthedocs.io>`_\n- `Flask-Login <https://flask-login.readthedocs.io/>`_\n- `Flask-Principal <https://pythonhosted.org/Flask-Principal/>`_\n- `Flask-KVSession <http://pythonhosted.org/Flask-KVSession/>`_\n- `Passlib <https://passlib.readthedocs.io/>`_\n\nFurther documentation is available on\nhttps://invenio-accounts.readthedocs.io/\n\n..\n    This file is part of Invenio.\n    Copyright (C) 2015-2024 CERN.\n\n    Invenio is free software; you can redistribute it and/or modify it\n    under the terms of the MIT License; see LICENSE file for more details.\n\nChanges\n=======\n\nVersion 5.0.1 (released 2024-03-22)\n\n- models: fix username case-insensitive comparator\n\nVersion 5.0.0 (released 2024-03-21)\n\n- fix: before_first_request deprecation\n- change module blueprint to callable\n\nVersion 4.0.2 (released 2024-02-19)\n\n- add change history tracking of domains\n- add task to calculate domain statistics\n- add methods to verify, block and deactivate users in datastore\n\nVersion 4.0.1 (released 2024-02-01)\n\n- models: fix column type for domain status\n\nVersion 4.0.0 (released 2024-01-29)\n\n- sessions: check for request before accessing session\n- global: new domain list feature\n\nVersion 3.5.1 (released 2023-12-10)\n\n- views: disable registering of `settings.change_password` menu\n  if `ACCOUNTS_REGISTER_BLUEPRINT` is False\n\nVersion 3.5.0 (released 2023-11-10)\n\n- datastore: override put method to add changes to db history\n\nVersion 3.4.4 (released 2023-11-10)\n\nmodels: do not set value in user preference getter\n\nVersion 3.4.3 (released 2023-10-20)\n\n- email: force lowercase\n\nVersion 3.4.2 (released 2023-10-17)\n\n- Adds support for user impersonation\n\nVersion 3.4.1 (released 2023-10-14)\n\n- datastore: prevent autoflush on db\n\nVersion 3.4.0 (released 2023-08-30)\n\n- templates: refactor send confirmation template\n\nVersion 3.3.1 (released 2023-08-23)\n\n- config: set `ACCOUNTS_DEFAULT_USERS_VERIFIED` to False by default\n\nVersion 3.3.0 (released 2023-08-21)\n\n- models: add `verified_at` column in User model. The default value is controlled by\n  a new config variable called `ACCOUNTS_DEFAULT_USERS_VERIFIED`. If True, then a date\n  is generated, otherwise is set to `None`.\n\nVersion 3.2.1 (released 2023-08-17)\n\n- alembic: fix sqlalchemy op.execute statements due to latest sqlalchamy-continuum\n\nVersion 3.2.0 (released 2023-08-02)\n\n- users: add blocket_at and verified_at data model fields\n\nVersion 3.1.0 (released 2023-07-31)\n\n- templates: Improve accessibility and layout\n- pulled translations\n\nVersion 3.0.3 (released 2023-06-15)\n\n- models: fix autogeneration of role id\n\nVersion 3.0.2 (released 2023-06-14)\n\n- alembic: adapt recipe to mysql\n\nVersion 3.0.1 (released 2023-06-14)\n\n- alembic: fix upgrade recipes\n\nVersion 3.0.0 (released 2023-06-14)\n\n- models: add managed field to groups\n- models: alter primary key type of group (id)\n- cli: pass id on create role action\n\nVersion 2.2.0 (released 2023-04-25)\n\n- models: add support for locale in user preferences\n\nVersion 2.1.0 (released 2023-03-01)\n\n- global: replace deprecated babelex imports\n- update invenio-i18n\n\nVersion 2.0.2 (released 2022-12-14)\n\n- cli: add `--confirm` flag when creating a user\n- new config variables to set the default user and email visibility\n- register_user: method accepts new argument, `send_register_msg`, to control\n  programmatically the send of registration email independently of the global\n  configuration.\n\nVersion 2.0.1 (released 2022-11-18)\n\n- Add translation workflow\n- Add pulled translations\n- Add black\n- Fix icons not appearing\n\nVersion 2.0.0 (released 2022-05-23)\n\n- Adds customizable user profiles and user preferences fields to the user\n  data model.\n\n- Adds version counter to the user table to enable optimistic concurrency\n  control on the user table.\n\n- Moves login information fields from user table to a separate login\n  information table.\n\n- Moves the external user identity table from Invenio-OAuthclient to\n  Invenio-Accounts.\n\n- Adds support for tracking changed users within a transaction to allow for\n  updating the related indexes.\n\n- Changes from using Flask-Security to using a private fork named\n  Flask-Security-Invenio. Flask-Security-Too was evaluated but was found to\n  have significantly increased scope with features not needed.\n\nVersion 1.4.9 (released 2021-12-04)\n\n- Fixed issue with account creation via CLI due to issue with changed API in\n  Flask-WTF.\n\nVersion 1.4.8 (released 2021-10-18)\n\n- Unpin Flask requirement.\n\nVersion 1.4.7 (released 2021-10-06)\n\n- Adds celery task to remove IP addresses from user table after a specified\n  retention period (defaults to 30 days).\n\nVersion 1.4.6 (released 2021-07-12)\n\n- Adds german translations\n\nVersion 1.4.5 (released 2021-05-21)\n\n- Removes config entrypoint.\n- Bump module versions.\n\nVersion 1.4.4 (released 2021-05-11)\n\n- Enables login view function overridability.\n- Allows to disable local login via configuration variable.\n\nVersion 1.4.3 (released 2020-12-17)\n\n- Adds theme dependent icons.\n\nVersion 1.4.2 (released 2020-12-11)\n\n- Fixes logout from security view.\n\nVersion 1.4.1 (released 2020-12-10)\n\n- Fixes styling of forgot password form in semantic ui theme.\n\nVersion 1.4.0 (released 2020-12-09)\n\n- Major: adds new Semantic UI theme.\n- Adds Turkish translations.\n- Fixes ``next`` parameter being used in the sign-up form.\n- Fixes issue with translation files causing translations not to be picked up.\n- Fixes wording from sign in to log in.\n- Removes password length validation during login.\n\nVersion 1.3.0 (released 2020-05-15)\n\n- Refreshes the CSRF token on login and logout.\n- Removes the example app.\n- Migrate from `Flask-KVSession` to `Flask-KVSession-Invenio`, fork of\n  the former.\n\nVersion 1.2.2 (released 2020-05-13)\n\n*This release was removed from PyPI on 2020-05-15 due to issues with the\nrelease.*\n\nVersion 1.2.1 (released 2020-04-28)\n\n- Fixes issue with the latest WTForms v2.3.x release which now requires an\n  extra library for email validation.\n\nVersion 1.2.0 (released 2020-03-09)\n\n- Replaces Flask dependency with centrally managed invenio-base\n\nVersion 1.1.4 (released 2020-04-28)\n\n- Fixes issue with the latest WTForms v2.3.x release which now requires an\n  extra library for email validation.\n\nVersion 1.1.3 (released 2020-02-19)\n\n- Replaces Flask-CeleryExt to invenio-celery due to version incompatibilities\n  with celery, kombu. Removes Flask-BabelExt already provided by invenio-i18n\n\nVersion 1.1.2 (released 2020-02-12)\n\n- Fixes requirements for Flask, Werkzeug and Flask-Login due to\n  incompatibilities of latest released modules.\n\nVersion 1.1.1 (released 2019-03-10)\n\n- Fixes an issue where the HTTP headers X-Session-ID and X-User-ID are added\n  even if the value is not known. This causes 'None' to be logged in Nginx,\n  instead of simply '-'.\n\nVersion 1.1.0 (released 2019-02-15)\n\n- Added support for for adding the user id and session id of the current user\n  into the HTTP headers (``X-User-ID`` and ``X-Session-ID``) for upstream\n  servers to use. For instance, this way current user/session ids can be logged\n  by Nginx into the web server access logs. The feature is off by default and\n  can be enabled via the ``ACCOUNTS_USERINFO_HEADERS`` configuration variable.\n  Note: The upstream server should strip the two headers from the response\n  returned to the client. The purpose is purely to allow upstream proxies like\n  Nginx to log the user/session id for a specific request.\n\n- Changed token expiration from 5 days to 30 minutes for the password reset\n  token and email confirmation token. Using the tokens will as a side-effect\n  login in the user, which means that if the link is leaked (e.g. forwarded by\n  the users themselves), then another person can use the link to access the\n  account. Flask-Security v3.1.0 addresses this issue, but has not yet been\n  released.\n\n- Fixes issue that could rehash the user password in the adminstration\n  interface.\n\nVersion 1.0.2 (released 2018-10-31)\n\n- Added AnonymousIdentity loader to app initialisation to fix the ``any_user``\n  Need in Invenio-Access.\n\nVersion 1.0.1 (released 2018-05-25)\n\n- Bumped Flask-CeleryExt from v0.3.0 to v0.3.1 to fix issue with Celery version\n  string not being parsable and thus causing problems with installing Celery.\n\nVersion 1.0.0 (released 2018-03-23)\n\n- Initial public release.\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Invenio user management and authentication.",
    "version": "5.0.1",
    "project_urls": {
        "Homepage": "https://github.com/inveniosoftware/invenio-accounts"
    },
    "split_keywords": [
        "invenio",
        "accounts",
        "user",
        "role",
        "login"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "f73d713afe1a3f9ac2540d91ac7c1e93fafdaa19fe9d3273ae8fb64b1aa9a973",
                "md5": "a4784740511e07eeeffc83ef6eccbe0f",
                "sha256": "7e17240a102590b8e91643ec5b753d9dd51f929ab9197e5ec742039a463c07e8"
            },
            "downloads": -1,
            "filename": "invenio_accounts-5.0.1-py2.py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "a4784740511e07eeeffc83ef6eccbe0f",
            "packagetype": "bdist_wheel",
            "python_version": "py2.py3",
            "requires_python": ">=3.7",
            "size": 242397,
            "upload_time": "2024-03-27T15:11:47",
            "upload_time_iso_8601": "2024-03-27T15:11:47.292480Z",
            "url": "https://files.pythonhosted.org/packages/f7/3d/713afe1a3f9ac2540d91ac7c1e93fafdaa19fe9d3273ae8fb64b1aa9a973/invenio_accounts-5.0.1-py2.py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "446cac04f9931242da82fe6f74719c8dce228c9d3331be5f0ba485c8e1077768",
                "md5": "a70e198b234b76ff6fd4232f7fcf660c",
                "sha256": "487cb59b2e2776d986441da9aee092722ee63933eeada55b95d3f3ce117296c0"
            },
            "downloads": -1,
            "filename": "invenio-accounts-5.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a70e198b234b76ff6fd4232f7fcf660c",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 174061,
            "upload_time": "2024-03-27T15:11:49",
            "upload_time_iso_8601": "2024-03-27T15:11:49.354193Z",
            "url": "https://files.pythonhosted.org/packages/44/6c/ac04f9931242da82fe6f74719c8dce228c9d3331be5f0ba485c8e1077768/invenio-accounts-5.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-27 15:11:49",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "inveniosoftware",
    "github_project": "invenio-accounts",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "invenio-accounts"
}
        
Elapsed time: 0.21157s