Metadata-Version: 2.1
Name: plone.app.uuid
Version: 2.2.2
Summary: Plone integration for the basic plone.uuid package
Home-page: http://plone.org
Author: Martin Aspeli
Author-email: optilude@gmail.com
License: GPL
Keywords: plone uuid
Classifier: Development Status :: 5 - Production/Stable
Classifier: Framework :: Plone
Classifier: Framework :: Plone :: 6.0
Classifier: Framework :: Plone :: Core
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.8
Provides-Extra: test

Introduction
============

This package integrates the low-level `plone.uuid`_ into Plone-the-
application. In particular, it:

* Registers a ``portal_catalog`` indexer for the ``UID`` index that allows an
  object's UUID to be indexed.

  This name is intentionally chosen to be the same as the Archetypes UID()
  attribute, which is already indexed by Plone. The effect is that the UID
  catalog attribute/metadata is now generalised to all content that supports the
  ``plone.uuid`` protocol.

  As of version 1.7, ``Products.Archetypes`` depends on ``plone.uuid`` and
  implements an ``IUUID`` adapter suitable for Archetypes content. It also
  uses the ``plone.uuid`` ``IUUIDGenerator`` utility to generate UUIDs for
  (new) content, although note that UUIDs generated by the pre-1.7 UUID
  algorithm, whilst different, cannot collide with the UUIDs generated by
  the default ``IUUIDGenerator`` implementation.

  It follows that the `plone.uuid`_ ``IUUID`` adapter and ``@@uuid`` view are
  now the preferred, generalised way to look up a UUID for an object.
* Registers a utility view, ``@@redirect-to-uuid``. You can use this with
  a URL like::

    http://example.org/some/path/@@redirect-to-uuid/b2dc6f7a-9d17-11df-8788-58b035f3cfa0

  This will then redirect to the object identified by that URL.

    *Hint:* You can use the ``@@uuid`` view from `plone.uuid`_ to render a
    UUID. In TAL, you can do something like::

        <a tal:attributes="href string:${portal_url}/@@redirect-to-uuid/${obj/@@uuid}">Click here</a>
* Provides several utility methods in the ``plone.app.uuid.utils`` module:

  ``uuidToPhysicalPath(uuid)``
      Returns the physical path (relative to the ZODB root) as a string of the
      object with the given UUID, or None if it cannot be found.

  ``uuidToURL(uuid)``
      Returns the absolute URL of the object with the given UUID, or None if it
      cannot be found.

  ``uuidToObject(uuid)``
      Returns the content object associated with the given UUID, or None if it
      cannot be found.

Please see the `plone.uuid`_ package for more details about how UUIDs are
generated and can be accessed.

.. _plone.uuid: http://pypi.python.org/pypi/plone.uuid

Changelog
=========

.. You should *NOT* be adding new change log entries to this file.
   You should create a file in the news directory instead.
   For helpful instructions, please see:
   https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst

.. towncrier release notes start

2.2.2 (2023-03-22)
------------------

Internal:


- Update configuration files.
  [plone devs] (b2d5d4a5)


2.2.1 (2022-10-11)
------------------

Bug fixes:


- Process the catalog queue before looking up in the catalog
  [ale-rt] (#15)


2.2.0 (2022-08-30)
------------------

Bug fixes:


- Add optional security check for uuidToObject [anirudhhkashyap] (#13)


2.1.0 (2021-12-29)
------------------

New features:


- Speed up ``uuidToPhysicalPath`` and ``uuidToObject``.
  Do this by using an IndexQuery to only query the UID index.
  Note: of the four functions in ``utils.py``, only ``uuidToObject`` checks the security.
  For the other functions, it is up to the caller to do this, if needed.
  We may change this in the future, but for now the behavior should be the same as in previous versions.
  [maurits] (#11)


2.0.2 (2020-04-20)
------------------

Bug fixes:


- Minor packaging updates. (#1)


2.0.1 (2020-03-13)
------------------

Bug fixes:


- Fix use case where UID to object is failing.
  [rodfersou] (#8)
- Initialize towncrier.
  [gforcada] (#2548)


2.0.0 (2018-11-02)
------------------

Breaking changes:

- Fix test that fails since it raises zExceptions.NotFound instead of zope.publisher.interfaces.NotFound.
  (This makes the tests incompatible with Zope 2.13.)
  [pbauer]

Bug fixes:

- Fix deprecation warning on zope.site.hooks import.
  [pbauer]


1.2 (2017-07-03)
----------------

New features:

- Remove unittest2 dependency
  [kakshay21]


1.1.3 (2017-02-12)
------------------

Bug fixes:

- Fix test in Zope 4.
  [davisagli]


1.1.2 (2016-11-17)
------------------

Bug fixes:

- Update code to follow Plone styleguide.
  [gforcada]


1.1.1 (2016-08-10)
------------------

Fixes:

- Use zope.interface decorator.
  [gforcada]


1.1 (2014-02-19)
----------------

- Make the test setup independent from basic content types in the
  PLONE_FIXTURE.
  [timo]


1.0 - 2011-05-13
-----------------
- Release 1.0 Final.
  [esteele]

- Add MANIFEST.in.
  [WouterVH]


1.0b2 - 2011-01-03
------------------
- Use user id instead of user name to fix tests.
  [davisagli]


1.0b1 - 2010-11-27
------------------

- Initial release
