Michael Merickel
2018-10-04 781371a7902154a64faa51e37a371242dfde1e29
remove deprecated principal keyword argument to remember
4 files modified
50 ■■■■■ changed files
CHANGES.rst 9 ●●●● patch | view | raw | blame | history
TODO.txt 6 ●●●●● patch | view | raw | blame | history
pyramid/security.py 28 ●●●● patch | view | raw | blame | history
pyramid/tests/test_security.py 7 ●●●●● patch | view | raw | blame | history
CHANGES.rst
@@ -132,9 +132,16 @@
  See https://github.com/Pylons/pyramid/pull/3328
- Removed ``pyramid.config.Configurator.set_request_property`` which had been
  deprecated since Pyramid 1.5.
  deprecated since Pyramid 1.5. Instead use
  ``pyramid.config.Configurator.add_request_method`` with ``reify=True`` or
  ``property=True``.
  See https://github.com/Pylons/pyramid/pull/3368
- Removed the ``principal`` keyword argument from
  ``pyramid.security.remember`` which had been deprecated since Pyramid 1.6
  and replaced by the ``userid`` argument.
  See https://github.com/Pylons/pyramid/pull/3369
Documentation Changes
---------------------
TODO.txt
@@ -111,12 +111,6 @@
         )
 
Future
------
- 1.9: Remove extra code enabling ``pyramid.security.remember(principal=...)``
  and force use of ``userid``.
Probably Bad Ideas
------------------
pyramid/security.py
@@ -17,8 +17,6 @@
Allow = 'Allow'
Deny = 'Deny'
_marker = object()
class AllPermissionsList(object):
    """ Stand in 'permission list' to represent all permissions """
@@ -120,7 +118,7 @@
    '"effective_principals" attribute of the Pyramid request instead.'
    )
def remember(request, userid=_marker, **kw):
def remember(request, userid, **kw):
    """
    Returns a sequence of header tuples (e.g. ``[('Set-Cookie', 'foo=abc')]``)
    on this request's response.
@@ -143,24 +141,14 @@
    always return an empty sequence. If used, the composition and
    meaning of ``**kw`` must be agreed upon by the calling code and
    the effective authentication policy.
    .. deprecated:: 1.6
        Renamed the ``principal`` argument to ``userid`` to clarify its
        purpose.
    .. versionchanged:: 1.6
        Deprecated the ``principal`` argument in favor of ``userid`` to clarify
        its relationship to the authentication policy.
    .. versionchanged:: 1.10
        Removed the deprecated ``principal`` argument.
    """
    if userid is _marker:
        principal = kw.pop('principal', _marker)
        if principal is _marker:
            raise TypeError(
                'remember() missing 1 required positional argument: '
                '\'userid\'')
        else:
            deprecated(
                'principal',
                'The "principal" argument was deprecated in Pyramid 1.6. '
                'It will be removed in Pyramid 1.9. Use the "userid" '
                'argument instead.')
            userid = principal
    policy = _get_authentication_policy(request)
    if policy is None:
        return []
pyramid/tests/test_security.py
@@ -183,13 +183,6 @@
        result = self._callFUT(request, 'me')
        self.assertEqual(result, [('X-Pyramid-Test', 'me')])
    def test_with_deprecated_principal_arg(self):
        request = _makeRequest()
        registry = request.registry
        _registerAuthenticationPolicy(registry, 'yo')
        result = self._callFUT(request, principal='me')
        self.assertEqual(result, [('X-Pyramid-Test', 'me')])
    def test_with_missing_arg(self):
        request = _makeRequest()
        registry = request.registry