Projet

Général

Profil

0001-add-parameter-to-override-default-login-path-19763.patch

Josué Kouka, 30 octobre 2017 18:39

Télécharger (4,5 ko)

Voir les différences:

Subject: [PATCH] add parameter to override default login path (#19763)

 mandayejs/applications.py  | 25 -------------------------
 mandayejs/mandaye/utils.py |  4 ++--
 mandayejs/settings.py      |  3 +++
 tests/test_mandayejs.py    | 11 ++++++++++-
 4 files changed, 15 insertions(+), 28 deletions(-)
mandayejs/applications.py
70 70
                if not dct.get('SITE_FORM_SUBMIT_ELEMENT', None):
71 71
                    dct['SITE_FORM_SUBMIT_ELEMENT'] = 'input[type=submit], button'
72 72

  
73
        if dct.get('SITE_LOGIN_PATH_PREFIX', None):
74
            parent = bases[0]
75
            dct['SITE_LOGIN_PATH'] = os.path.join(dct['SITE_LOGIN_PATH_PREFIX'], parent.SITE_LOGIN_PATH.strip('/'))
76 73
        return super(AppSettingsMeta, cls).__new__(cls, name, bases, dct)
77 74

  
78 75

  
......
228 225
    SITE_LOGOUT_LOCATOR = '#espace-login form input[type=submit]'
229 226

  
230 227

  
231
class ArpegeVincennesTest(Arpege):
232
    SITE_LOGIN_PATH = '/vincennes-test/index.do'
233

  
234

  
235 228
class Imuse(AppSettings):
236 229
    SITE_LOGIN_PATH = 'extranet/login/gen_index_groupe.php?nav=autre'
237 230

  
......
265 258
    SITE_FORM_SUBMIT_ELEMENT = '#INDEX_BT_LOGIN'
266 259

  
267 260

  
268
class ImuseTeacher(Imuse):
269
    SITE_LOGIN_PATH = '/extranet/login/ens_index_enseignant.php'
270

  
271

  
272
class ImuseFamily(Imuse):
273
    SITE_LOGIN_PATH = '/extranet/login/usa_index_famille.php'
274

  
275
    SITE_LOGOUT_LOCATOR = '#MENU_FAMILLE_QUITTER'
276

  
277

  
278
class ImuseFamilyMontpellier(ImuseFamily):
279
    SITE_LOGIN_PATH_PREFIX = '/montpellier/'
280

  
281

  
282 261
class Sezhame(AppSettings):
283 262
    SITE_LOGIN_PATH = '/sezhame/page/connexion-abonne?destination=user'
284 263

  
......
344 323
    SITE_FORCE_REDIRECT_LOCATOR = '#loginForm'
345 324

  
346 325
    SITE_LOGOUT_LOCATOR = ".infoUtilisateur[alt=Deconnexion]"
347

  
348

  
349
class TeamnetMeyzieu(Teamnet):
350
    SITE_LOGIN_PATH_PREFIX = '/meyzieu/'
mandayejs/mandaye/utils.py
133 133
    """Returns phantomjs login prerequis
134 134
    """
135 135
    app_settings = get_app_settings()
136

  
136
    login_path = getattr(settings, 'SITE_LOGIN_PATH', app_settings.SITE_LOGIN_PATH)
137 137
    return {
138
        'address': request.build_absolute_uri(app_settings.SITE_LOGIN_PATH),
138
        'address': request.build_absolute_uri(login_path),
139 139
        'cookies': [],
140 140
        'locators': [credentials.to_login_info()],
141 141
        'auth_checker': app_settings.SITE_AUTH_CHECKER,
mandayejs/settings.py
170 170
# Scheme to use for phantomjs logout
171 171
PHANTOM_JS_LOGOUT_SCHEME = None  # Default is request scheme
172 172

  
173
# Override the default login path of an application
174
SITE_LOGIN_PATH = None
175

  
173 176
JSONFIELD_ENCODER_CLASS = 'django.core.serializers.json.DjangoJSONEncoder'
174 177

  
175 178
local_settings_file = os.environ.get('MANDAYEJS_SETTINGS_FILE',
tests/test_mandayejs.py
13 13
from django.core.urlresolvers import reverse
14 14

  
15 15
from mandayejs.mandaye.models import UserCredentials
16
from mandayejs.mandaye.utils import exec_phantom
16
from mandayejs.mandaye.utils import exec_phantom, get_login_info
17 17
from mandayejs.mandaye.forms import FormFactory
18 18
from mandayejs.mandaye.views import post_login_do
19 19

  
......
409 409
    request.user = user_john
410 410
    response = post_login_do(request)
411 411
    assert 'window.top.location = "http://example.net/"' in response.content
412

  
413

  
414
@mock.patch('mandayejs.applications.Test.SITE_LOCATORS', MOCKED_SITE_LOCATORS)
415
def test_app_login_path_overriding(settings, cred_john):
416
    data = get_login_info(RequestFactory().get('/'), cred_john)
417
    assert data['address'] == 'http://testserver/'
418
    settings.SITE_LOGIN_PATH = '/login'
419
    data = get_login_info(RequestFactory().get('/'), cred_john)
420
    assert data['address'] == 'http://testserver/login'
412
-