Projet

Général

Profil

0001-python3-use-django.utils.six-url-parsing-functions-3.patch

Paul Marillonnet, 06 mars 2019 18:36

Télécharger (18,8 ko)

Voir les différences:

Subject: [PATCH] python3: use django.utils.six url-parsing functions (#31139)

 src/authentic2/backends/ldap_backend.py         | 6 +++---
 src/authentic2/cors.py                          | 2 +-
 src/authentic2/disco_service/disco_responder.py | 5 ++---
 src/authentic2/idp/saml/backend.py              | 4 ++--
 src/authentic2/idp/saml/saml2_endpoints.py      | 8 ++++----
 src/authentic2/middleware.py                    | 2 +-
 src/authentic2/models.py                        | 2 +-
 src/authentic2/saml/common.py                   | 3 +--
 src/authentic2/utils.py                         | 9 ++++-----
 src/authentic2/views.py                         | 1 -
 src/authentic2_auth_oidc/utils.py               | 2 +-
 src/authentic2_idp_cas/managers.py              | 2 +-
 src/authentic2_idp_oidc/utils.py                | 2 +-
 tests/conftest.py                               | 2 +-
 tests/test_admin.py                             | 3 +--
 tests/test_all.py                               | 2 +-
 tests/test_auth_oidc.py                         | 2 +-
 tests/test_cas.py                               | 4 +---
 tests/test_idp_oidc.py                          | 2 +-
 tests/test_idp_saml2.py                         | 2 +-
 tests/test_login.py                             | 2 +-
 tests/test_manager.py                           | 2 +-
 tests/test_registration.py                      | 2 +-
 tests/test_views.py                             | 3 +--
 tests/utils.py                                  | 2 +-
 25 files changed, 34 insertions(+), 42 deletions(-)
src/authentic2/backends/ldap_backend.py
14 14
import logging
15 15
import random
16 16
import base64
17
import urllib
18 17
import six
19 18
import os
20 19

  
......
27 26
from django.conf import settings
28 27
from django.contrib.auth.models import Group
29 28
from django.utils.encoding import force_bytes, force_text
29
from django.utils.six.moves.urllib.parse import quote, unquote
30 30

  
31 31
from authentic2.a2_rbac.models import Role
32 32

  
......
965 965
                attribute, param = attribute.split(':')
966 966
                quote = 'noquote' not in param.split(',')
967 967
            if quote:
968
                decoded.append((attribute, urllib.unquote(value)))
968
                decoded.append((attribute, unquote(value)))
969 969
            else:
970 970
                decoded.append((attribute, force_text(value)))
971 971
        filters = [filter_format(u'(%s=%s)', (a, b)) for a, b in decoded]
......
986 986
                v = v[0]
987 987
            v = force_text(v)
988 988
            if quote:
989
                v = urllib.quote(v)
989
                v = quote(v)
990 990
            l.append(v)
991 991
        return ' '.join(v for v in l)
992 992

  
src/authentic2/cors.py
1 1
from .decorators import SessionCache
2
import urlparse
3 2

  
4 3
from django.conf import settings
4
from django.utils.six.moves.urllib import parse as urlparse
5 5

  
6 6
from . import plugins, app_settings
7 7

  
src/authentic2/disco_service/disco_responder.py
7 7

  
8 8

  
9 9
import logging
10
import urlparse
11
import urllib
12 10

  
13 11
from xml.dom.minidom import parseString
14 12

  
......
17 15
from django.utils.translation import ugettext as _
18 16
from django.core.urlresolvers import reverse
19 17
from django.utils.http import urlquote
18
from django.utils.six.moves.urllib import parse as urlparse
20 19

  
21 20
from authentic2 import settings
22 21
from authentic2.saml.common import error_page as base_error_page
......
123 122
    if query:
124 123
        qs = urlparse.parse_qs(query)
125 124
        qs[param_name] = [value]
126
        query = urllib.urlencode(qs)
125
        query = urlparse.urlencode(qs)
127 126
    else:
128 127
        query = '%s=%s' % (param_name, value)
129 128
    return urlparse.urlunparse((scheme, netloc, path, params, query, fragment))
src/authentic2/idp/saml/backend.py
1 1
import logging
2
import urllib
3 2
import operator
4 3
import random
5 4

  
......
7 6
from django.core.urlresolvers import reverse
8 7
from django.template.loader import render_to_string
9 8
from django.db.models import Q
9
from django.utils.six.moves.urllib.parse import quote
10 10

  
11 11
import authentic2.saml.models as models
12 12
import authentic2.idp.saml.saml2_endpoints as saml2_endpoints
......
121 121
                    # add a nonce so this link is never cached
122 122
                    nonce = hex(random.getrandbits(128))
123 123
                    url = '{0}?provider_id={1}&nonce={2}'.format(
124
                        url, urllib.quote(provider_id), nonce)
124
                        url, quote(provider_id), nonce)
125 125
                    name = name or provider_id
126 126
                    code = render_to_string('idp/saml/logout_fragment.html', {
127 127
                        'needs_iframe': policy.needs_iframe_logout,
src/authentic2/idp/saml/saml2_endpoints.py
18 18

  
19 19
import datetime
20 20
import logging
21
import urllib
22 21
import xml.etree.cElementTree as ctree
23 22
import hashlib
24 23
import random
......
38 37
from django.contrib.auth import BACKEND_SESSION_KEY, REDIRECT_FIELD_NAME
39 38
from django.conf import settings
40 39
from django.utils.encoding import smart_unicode
40
from django.utils.six.moves.urllib.parse import quote, urlencode
41 41
from django.contrib.auth import load_backend
42 42
from django.shortcuts import render, redirect
43 43
from django.contrib import messages
......
484 484
                    server=login.server, autoload=True)
485 485
            if not provider_loaded:
486 486
                add_url = reverse('admin:saml_libertyprovider_add_from_url')
487
                add_url += '?' + urllib.urlencode({ 'entity_id': provider_id })
487
                add_url += '?' + urlencode({ 'entity_id': provider_id })
488 488
                return render(request,
489 489
                        'idp/saml/unknown_provider.html',
490 490
                        { 'entity_id': provider_id,
......
556 556

  
557 557
def get_url_with_nonce(request, function, nonce):
558 558
    url = reverse(function) + '?%s=%s' % (NONCE_FIELD_NAME, nonce)
559
    return urllib.quote(url)
559
    return quote(url)
560 560

  
561 561

  
562 562
def need_consent_for_federation(request, login, nid_format):
......
571 571
    except ObjectDoesNotExist:
572 572
        pass
573 573
    if not display_name:
574
        display_name = urllib.quote(login.request.issuer.content)
574
        display_name = quote(login.request.issuer.content)
575 575
    url = '%s?%s=%s&next=%s&provider_id=%s' \
576 576
        % (reverse('a2-consent-federation'), NONCE_FIELD_NAME,
577 577
            nonce, get_url_with_nonce(request, continue_sso, nonce),
src/authentic2/middleware.py
1
import urlparse
2 1
import logging
3 2
import datetime
4 3
import random
......
12 11
from django.conf import settings
13 12
from django.contrib import messages
14 13
from django.utils.translation import ugettext as _
14
from django.utils.six.moves.urllib import parse as urlparse
15 15
from django.shortcuts import render
16 16

  
17 17
from . import app_settings, utils, plugins
src/authentic2/models.py
1 1
import time
2
import urlparse
3 2
import uuid
4 3
from django.utils.http import urlquote
5 4
from django.conf import settings
6 5
from django.db import models
7 6
from django.db.models.query import Q
8 7
from django.utils.translation import ugettext_lazy as _
8
from django.utils.six.moves.urllib import parse as urlparse
9 9
from django.core.exceptions import ValidationError, FieldDoesNotExist
10 10
from django.contrib.contenttypes.models import ContentType
11 11

  
src/authentic2/saml/common.py
1
import urlparse
2 1
import os.path
3
import urllib
4 2
import httplib
5 3
import logging
6 4
import re
......
12 10
from django.conf import settings
13 11
from django.http import HttpResponseRedirect, Http404, HttpResponse
14 12
from django.shortcuts import render
13
from django.utils.six.moves.urllib import parse as urlparse
15 14
from django.core.exceptions import ValidationError
16 15

  
17 16
from authentic2.saml.models import (LibertyFederation, LibertyProvider,
src/authentic2/utils.py
2 2
import random
3 3
import time
4 4
import logging
5
import urllib
6
import urlparse
7 5
import uuid
8 6
import datetime
9 7
import copy
......
25 23
from django.utils import timezone
26 24
from django.utils import html, http, six, encoding
27 25
from django.utils.translation import ugettext as _, ungettext
26
from django.utils.six.moves.urllib import parse as urlparse
28 27
from django.shortcuts import resolve_url
29 28
from django.template.loader import render_to_string, TemplateDoesNotExist
30 29
from django.core.mail import send_mail
......
210 209

  
211 210
def add_arg(url, key, value=None):
212 211
    '''Add a parameter to an URL'''
213
    key = urllib.quote(key)
212
    key = urlparse.quote(key)
214 213
    if value is not None:
215
        add = '%s=%s' % (key, urllib.quote(value))
214
        add = '%s=%s' % (key, urlparse.quote(value))
216 215
    else:
217 216
        add = key
218 217
    if '?' in url:
......
712 711
    if request:
713 712
        reset_url = request.build_absolute_uri(reset_url)
714 713
    if next_url:
715
        reset_url += '?' + urllib.urlencode({'next': next_url})
714
        reset_url += '?' + urlparse.urlencode({'next': next_url})
716 715
    return reset_url, token
717 716

  
718 717

  
src/authentic2/views.py
2 2
from authentic2.compat_lasso import lasso
3 3
import thread
4 4
import requests
5
import urllib
6 5
import re
7 6
import collections
8 7

  
src/authentic2_auth_oidc/utils.py
1
import urlparse
2 1
import datetime
3 2
import base64
4 3
import json
......
8 7
from django.utils.timezone import utc
9 8
from django.shortcuts import get_object_or_404
10 9
from django.utils.translation import ugettext as _
10
from django.utils.six.moves.urllib import parse as urlparse
11 11

  
12 12
from authentic2.decorators import GlobalCache
13 13
from authentic2.models import Attribute
src/authentic2_idp_cas/managers.py
1
import urlparse
2 1
from datetime import timedelta
3 2

  
4 3
from django.db import models
5 4
from django.db.models import query
6 5
from django.utils.timezone import now
6
from django.utils.six.moves.urllib import parse as urlparse
7 7

  
8 8

  
9 9
class TicketQuerySet(query.QuerySet):
src/authentic2_idp_oidc/utils.py
1 1
import json
2 2
import hashlib
3
import urlparse
4 3
import base64
5 4
import uuid
6 5

  
......
10 9
from django.core.exceptions import ImproperlyConfigured
11 10
from django.conf import settings
12 11
from django.utils.encoding import smart_bytes
12
from django.utils.six.moves.urllib import parse as urlparse
13 13

  
14 14
from authentic2 import hooks, crypto
15 15
from authentic2.attributes_ng.engine import get_attributes
tests/conftest.py
2 2

  
3 3
import pytest
4 4
import mock
5
import urlparse
6 5

  
7 6
import django_webtest
8 7

  
9 8
from django.contrib.auth import get_user_model
10 9
from django_rbac.utils import get_ou_model, get_role_model
11 10
from django.conf import settings
11
from django.utils.six.moves.urllib import parse as urlparse
12 12

  
13 13
from pytest_django.migrations import DisableMigrations
14 14

  
tests/test_admin.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3
from urlparse import urlparse
4

  
5 3
from authentic2.custom_user.models import User
6 4
from authentic2.models import Attribute
5
from django.utils.six.moves.urllib.parse import urlparse
7 6

  
8 7
import utils
9 8

  
tests/test_all.py
1 1
# -*- coding: utf-8 -*-
2 2
import json
3
import urlparse
4 3
import base64
5 4

  
6 5
import pytest
......
14 13
from django.contrib.auth import get_user_model
15 14
from django.contrib.contenttypes.models import ContentType
16 15
from django.utils.translation import ugettext as _
16
from django.utils.six.moves.urllib import parse as urlparse
17 17

  
18 18
from rest_framework import test
19 19
from rest_framework import status
tests/test_auth_oidc.py
1 1
# -*- coding: utf-8 -*-
2 2
import datetime
3 3
import pytest
4
import urlparse
5 4
import json
6 5
import time
7 6

  
......
14 13
from django.core.urlresolvers import reverse
15 14
from django.contrib.auth import get_user_model
16 15
from django.utils.timezone import now
16
from django.utils.six.moves.urllib import parse as urlparse
17 17

  
18 18
from django_rbac.utils import get_ou_model
19 19

  
tests/test_cas.py
1
import urlparse
2

  
3

  
4 1
from django.test.client import RequestFactory, Client
5 2
from django.test.utils import override_settings
3
from django.utils.six.moves.urllib import parse as urlparse
6 4

  
7 5

  
8 6
from authentic2.compat import get_user_model
tests/test_idp_oidc.py
1
import urlparse
2 1
import base64
3 2
import json
4 3
import datetime
......
16 15
from django.db.migrations.executor import MigrationExecutor
17 16
from django.utils.timezone import now
18 17
from django.contrib.auth import get_user_model
18
from django.utils.six.moves.urllib import parse as urlparse
19 19

  
20 20

  
21 21
User = get_user_model()
tests/test_idp_saml2.py
3 3
import base64
4 4
import unittest
5 5
import StringIO
6
import urlparse
7 6
from lxml.html import parse
8 7

  
9 8
from django.test import Client
......
12 11
from django.core.urlresolvers import reverse
13 12
from django.core.files import File
14 13
from django.utils.translation import gettext as _
14
from django.utils.six.moves.urllib import parse as urlparse
15 15

  
16 16
from authentic2.saml import models as saml_models
17 17
from authentic2.a2_rbac.models import Role, OrganizationalUnit
tests/test_login.py
15 15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16 16

  
17 17
import pytest
18
from urllib import quote
19 18

  
19
from django.utils.six.moves.urllib.parse import quote
20 20
from django.contrib.auth import get_user_model
21 21

  
22 22
from utils import login
tests/test_manager.py
2 2

  
3 3
import pytest
4 4
import json
5
from urlparse import urlparse
6 5

  
7 6
from django.core.urlresolvers import reverse
8 7
from django.core import mail
......
13 12

  
14 13
from django_rbac.utils import get_ou_model, get_role_model
15 14
from django.contrib.auth import get_user_model
15
from django.utils.six.moves.urllib.parse import urlparse
16 16
from utils import login, get_link_from_mail
17 17

  
18 18

  
tests/test_registration.py
1 1
# -*- coding: utf-8 -*-
2 2

  
3 3
import re
4
from urlparse import urlparse
5 4

  
6 5
from django.core.urlresolvers import reverse
7 6
from django.contrib.auth import get_user_model, REDIRECT_FIELD_NAME
8 7
from django.utils.http import urlquote
8
from django.utils.six.moves.urllib.parse import urlparse
9 9

  
10 10
from authentic2 import utils, models
11 11

  
tests/test_views.py
1
from urlparse import urlparse
2

  
3 1
from utils import login
4 2
import pytest
5 3

  
6 4
from django.core.urlresolvers import reverse
5
from django.utils.six.moves.urllib.parse import urlparse
7 6

  
8 7
from authentic2.custom_user.models import User
9 8

  
tests/utils.py
1 1
import re
2 2
import base64
3
import urlparse
4 3
from contextlib import contextmanager
5 4

  
6 5
from lxml import etree
......
10 9
from django.conf import settings
11 10
from django.utils.encoding import iri_to_uri
12 11
from django.shortcuts import resolve_url
12
from django.utils.six.moves.urllib import parse as urlparse
13 13

  
14 14
from authentic2 import utils
15 15

  
16
-