0001-add-parameter-to-override-default-login-path-19763.patch
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 |
- |