From ff4d0097f1bec6e69a76716a23f8389ce49c7586 Mon Sep 17 00:00:00 2001 From: Josue Kouka Date: Sat, 24 Sep 2016 01:02:53 +0200 Subject: [PATCH] fix pep8 errors and remove unused imports (#13294) --- mandayejs/applications.py | 29 ++++++++++++++++------------- mandayejs/mandaye/api.py | 19 +++++++++---------- mandayejs/mandaye/forms.py | 26 ++++++++++++-------------- mandayejs/mandaye/models.py | 2 +- mandayejs/mandaye/utils.py | 19 +++++++++++++------ mandayejs/mandaye/views.py | 38 +++++++++++++++----------------------- mandayejs/views.py | 12 +++++------- 7 files changed, 71 insertions(+), 74 deletions(-) diff --git a/mandayejs/applications.py b/mandayejs/applications.py index 1527b2d..6468d2b 100644 --- a/mandayejs/applications.py +++ b/mandayejs/applications.py @@ -20,21 +20,22 @@ import os from importlib import import_module from django.conf import settings -from django.conf.urls import patterns, include, url +from django.conf.urls import patterns, url from django.http import Http404 from django.core.exceptions import ImproperlyConfigured from django.core.urlresolvers import resolve def get_app_settings(): - module_name,app_settings = tuple(settings.SITE_APP.rsplit('.',1)) + module_name, app_settings = tuple(settings.SITE_APP.rsplit('.', 1)) module = import_module(module_name) return getattr(module, app_settings) + def app_web_services(request, path): app = get_app_settings() if hasattr(app, 'urlpatterns'): - view, args, kwargs = resolve(request.path, urlconf= app) + view, args, kwargs = resolve(request.path, urlconf=app) return view(request, *args, **kwargs) raise Http404 @@ -51,19 +52,20 @@ class AppSettingsMeta(type): def __new__(cls, name, bases, dct): if name != 'AppSettings': - if AppSettings in bases: # Avoid checking keys for inherited classes + if AppSettings in bases: # Avoid checking keys for inherited classes missing_key = set(cls.REQUIRED_KEYS).difference(set(dct.keys())) or None if missing_key: raise ImproperlyConfigured('{} is mandatory'.format(missing_key.pop())) - if not set(('SITE_FORCE_REDIRECT_URL','SITE_FORCE_REDIRECT_LOCATOR'))\ - .intersection(set(dct.keys())): - raise ImproperlyConfigured('one of these settings ({}) must be defined' - .format(('SITE_FORCE_REDIRECT_URL','SITE_FORCE_REDIRECT_LOCATOR'))) + if not set(('SITE_FORCE_REDIRECT_URL', 'SITE_FORCE_REDIRECT_LOCATOR')).intersection(set(dct.keys())): + raise ImproperlyConfigured( + 'one of these settings ({}) must be defined' + .format(('SITE_FORCE_REDIRECT_URL', 'SITE_FORCE_REDIRECT_LOCATOR'))) + # Script asserting phantomjs authentication - dct['SITE_AUTH_CHECKER'] = os.path.join(settings.STATIC_ROOT, - dct['SITE_AUTH_CHECKER']) + dct['SITE_AUTH_CHECKER'] = os.path.join(settings.STATIC_ROOT, dct['SITE_AUTH_CHECKER']) + # Default form submit element if not dct.get('SITE_FORM_SUBMIT_ELEMENT', None): dct['SITE_FORM_SUBMIT_ELEMENT'] = 'input[type=submit], button' @@ -135,7 +137,7 @@ class Duonet(AppSettings): ] SITE_APP_SCRIPTS = [ 'duonet/js/duonet.js', - ] + ] SITE_FORCE_REDIRECT_URL = '/Connect.aspx' @@ -180,7 +182,8 @@ class Archimed(AppSettings): 'account_details': '/DEFAULT/Ermes/Services/ILSClient.svc/RetrieveAccount', } - urlpatterns = patterns('', + urlpatterns = patterns( + '', url( r'account/(?P[\w+]*)/$', 'mandayejs.views.archimed_account_details', @@ -228,7 +231,7 @@ class ArpegeVincennesTest(Arpege): class Imuse(AppSettings): - SITE_LOGIN_PATH = 'extranet/login/gen_index_groupe.php?nav=autre' + SITE_LOGIN_PATH = 'extranet/login/gen_index_groupe.php?nav=autre' SITE_LOCATORS = [ { diff --git a/mandayejs/mandaye/api.py b/mandayejs/mandaye/api.py index 1c00843..e26dc39 100644 --- a/mandayejs/mandaye/api.py +++ b/mandayejs/mandaye/api.py @@ -22,7 +22,6 @@ from django.contrib.auth.models import User from rest_framework import status from rest_framework.views import APIView from rest_framework.response import Response -from rest_framework.permissions import IsAuthenticated from mandayejs.applications import get_app_settings from mandayejs.mandaye.models import UserCredentials @@ -38,7 +37,7 @@ class MandayeAPI(APIView): def get(self, request, *args, **kwargs): app_settings = get_app_settings() locators = { - locator.get('name') : '' \ + locator.get('name'): '' for locator in app_settings.SITE_LOCATORS } return Response(locators) @@ -47,16 +46,16 @@ class MandayeAPI(APIView): data = request.data user, created = User.objects.get_or_create( - username= data.get('name_id_content'), - email= data.get('email'), - first_name= data.get('first_name'), - last_name= data.get('last_name') + username=data.get('name_id_content'), + email=data.get('email'), + first_name=data.get('first_name'), + last_name=data.get('last_name') ) uuid, created = UserSAMLIdentifier.objects.get_or_create( - user_id= user.id, - name_id= data.get('name_id_content'), - issuer= get_idp() + user_id=user.id, + name_id=data.get('name_id_content'), + issuer=get_idp() ) cred = UserCredentials(user=user, locators=data.get('locators')) @@ -68,7 +67,7 @@ class MandayeAPI(APIView): return Response(status=status.HTTP_401_UNAUTHORIZED) cred.save() - return Response(status=status.HTTP_200_OK) + return Response(status=status.HTTP_200_OK) def delete(self, request, *args, **kwargs): data = request.data diff --git a/mandayejs/mandaye/forms.py b/mandayejs/mandaye/forms.py index bbd23cc..40d1858 100644 --- a/mandayejs/mandaye/forms.py +++ b/mandayejs/mandaye/forms.py @@ -16,34 +16,32 @@ from __future__ import absolute_import from django import forms -from django.conf import settings from mandayejs.applications import get_app_settings -from mandayejs.mandaye.models import UserCredentials app_settings = get_app_settings() + class FormFactory(forms.Form): - def __init__(self, *args, **kwargs): + def __init__(self, *args, **kwargs): super(FormFactory, self).__init__(*args, **kwargs) fields = getattr(app_settings, 'SITE_LOCATORS', []) - if fields : - for field in fields : + if fields: + for field in fields: if field['kind'] == 'string': self.fields[field['name']] = forms.CharField( - label=field['label'], - max_length=32, - help_text=field['help'] + label=field['label'], + max_length=32, + help_text=field['help'] ) elif field['kind'] == 'password': self.fields[field['name']] = forms.CharField( - label=field['label'], - widget=forms.PasswordInput(), - help_text=field['help'] + label=field['label'], + widget=forms.PasswordInput(), + help_text=field['help'] ) else: self.fields[field['name']] = forms.DateField( - label=field['label'], - help_text=field['help'] + label=field['label'], + help_text=field['help'] ) - diff --git a/mandayejs/mandaye/models.py b/mandayejs/mandaye/models.py index 3ffacd5..fc1d9a7 100644 --- a/mandayejs/mandaye/models.py +++ b/mandayejs/mandaye/models.py @@ -83,4 +83,4 @@ class UserCredentials(models.Model): def to_login_info(self, decrypt=False): if decrypt: self.decrypt() - return {'#'+k : v for k,v in self.locators.items() } + return {'#' + k: v for k, v in self.locators.items()} diff --git a/mandayejs/mandaye/utils.py b/mandayejs/mandaye/utils.py index ee24c85..87aaf4a 100644 --- a/mandayejs/mandaye/utils.py +++ b/mandayejs/mandaye/utils.py @@ -22,10 +22,11 @@ from Cookie import SimpleCookie from mandayejs.applications import get_app_settings + def exec_phantom(data, script='do_login.js'): - phantom = subprocess.Popen([settings.PHANTOM_JS_BINARY, - '--ignore-ssl-errors=yes', - '--ssl-protocol=any', + phantom = subprocess.Popen([ + settings.PHANTOM_JS_BINARY, + '--ignore-ssl-errors=yes', '--ssl-protocol=any', os.path.join(settings.BASE_DIR, 'mandayejs', script)], close_fds=True, stdin=subprocess.PIPE, @@ -39,6 +40,7 @@ def exec_phantom(data, script='do_login.js'): phantom.terminate() return result + def cookie_builder(headers): """Build Cookies from list of headers """ @@ -48,6 +50,7 @@ def cookie_builder(headers): return cookie + def get_logout_info(request): """Returns phantomjs logout prerequis """ @@ -65,20 +68,23 @@ def get_logout_info(request): 'value': value.value, 'domain': domain, 'path': '/' - } for key, value in cookies.items() ] + } for key, value in cookies.items()] return data + def get_password_field(): """Return name of the password field """ app_settings = get_app_settings() try: - field_name = [ field.get('name') for field in app_settings.SITE_LOCATORS if field.get('kind') == 'password' ] + field_name = [field.get('name') for field in app_settings.SITE_LOCATORS + if field.get('kind') == 'password'] return field_name[0] except (IndexError,): return None + def get_login_info(request, credentials): """Returns phantomjs login prerequis """ @@ -87,11 +93,12 @@ def get_login_info(request, credentials): return { 'address': request.build_absolute_uri(app_settings.SITE_LOGIN_PATH), 'cookies': [], - 'locators': [ credentials.to_login_info() ], + 'locators': [credentials.to_login_info()], 'auth_checker': app_settings.SITE_AUTH_CHECKER, 'form_submit_element': app_settings.SITE_FORM_SUBMIT_ELEMENT } + def get_idp(): """Return idp """ diff --git a/mandayejs/mandaye/views.py b/mandayejs/mandaye/views.py index e15b9d5..962ce23 100644 --- a/mandayejs/mandaye/views.py +++ b/mandayejs/mandaye/views.py @@ -18,37 +18,31 @@ from __future__ import absolute_import import logging -from django.conf import settings -from django.contrib.auth import views as auth_views -from django.contrib.auth import logout as auth_logout from django.contrib.auth.models import User from django.contrib.auth.decorators import login_required from django.contrib import messages -from django.forms import PasswordInput -from django.forms import models as model_forms from django.http import HttpResponseRedirect, HttpResponse -from django.shortcuts import get_object_or_404, render, resolve_url +from django.shortcuts import render, resolve_url from django.template import RequestContext from django.views.generic.base import TemplateView from django.views.decorators.csrf import csrf_exempt -from django.db import IntegrityError from django.utils.translation import ugettext_lazy as _ -from django.template import RequestContext, Template +from django.template import Template from .models import UserCredentials from mandayejs.mandaye.forms import FormFactory from mandayejs.mandaye.utils import exec_phantom, cookie_builder,\ - get_login_info, get_logout_info + get_login_info, get_logout_info from mandayejs.applications import get_app_settings from mellon.views import logout as mellon_logout -import requests app_settings = get_app_settings() logger = logging.getLogger(__name__) + def logout(request, *args, **kwargs): logger.debug("running slo") data = get_logout_info(request) @@ -72,12 +66,9 @@ class Panel(TemplateView): context = super(Panel, self).get_context_data(**kwargs) scripts = getattr(app_settings, 'SITE_APP_SCRIPTS', None) context['site_scripts'] = scripts - context['force_redirect_url'] = getattr(app_settings, - 'SITE_FORCE_REDIRECT_URL', '') - context['force_redirect_locator'] = getattr(app_settings, - 'SITE_FORCE_REDIRECT_LOCATOR', '') - context['logout_locator'] = getattr(app_settings, - 'SITE_LOGOUT_LOCATOR','') + context['force_redirect_url'] = getattr(app_settings, 'SITE_FORCE_REDIRECT_URL', '') + context['force_redirect_locator'] = getattr(app_settings, 'SITE_FORCE_REDIRECT_LOCATOR', '') + context['logout_locator'] = getattr(app_settings, 'SITE_LOGOUT_LOCATOR', '') context['is_linked'] = self.is_account_linked() return context @@ -93,19 +84,20 @@ class Panel(TemplateView): panel = Panel.as_view() + @login_required def post_login(request, *args, **kwargs): try: user = User.objects.get(username=request.user.username) logger.debug(user) - credentials = UserCredentials.objects.get( - user=user) + credentials = UserCredentials.objects.get(user=user) logger.debug(credentials) except (UserCredentials.DoesNotExist,): return HttpResponseRedirect(resolve_url('associate')) return render(request, 'mandaye/post-login.html', {}) + @login_required @csrf_exempt def associate(request, *args, **kwargs): @@ -119,7 +111,7 @@ def associate(request, *args, **kwargs): credentials.save() return HttpResponseRedirect(resolve_url('post-login')) - else : + else: form = FormFactory() response = render(request, 'mandaye/associate.html', { @@ -131,8 +123,7 @@ def associate(request, *args, **kwargs): @login_required def dissociate(request, *args, **kwargs): try: - c_user = UserCredentials.objects.get( - user__username=request.user.username) + c_user = UserCredentials.objects.get(user__username=request.user.username) c_user.delete() logger.debug("{} dissacioted".format(c_user.user.username)) return HttpResponseRedirect( @@ -142,6 +133,7 @@ def dissociate(request, *args, **kwargs): except (UserCredentials.DoesNotExist,): return HttpResponseRedirect(resolve_url('associate')) + @login_required def post_login_do(request, *args, **kwargs): user = User.objects.get(username=request.user.username) @@ -153,7 +145,7 @@ def post_login_do(request, *args, **kwargs): login_info = get_login_info(request, credentials) logger.debug(login_info) - login_info['locators'] = [ credentials.to_login_info(decrypt=True)] + login_info['locators'] = [credentials.to_login_info(decrypt=True)] result = exec_phantom(login_info) logger.debug(result) @@ -172,7 +164,7 @@ def post_login_do(request, *args, **kwargs): window.top.location = "{{url}}";') context = RequestContext(request, {'url': url}) response = HttpResponse(template.render(context)) - if result.get('headers',None): + if result.get('headers', None): response.cookies = cookie_builder(result.get('headers')) return response diff --git a/mandayejs/views.py b/mandayejs/views.py index 8eeee3d..02cf9aa 100644 --- a/mandayejs/views.py +++ b/mandayejs/views.py @@ -23,14 +23,13 @@ from requests.cookies import RequestsCookieJar from django.contrib.auth.models import User from django.shortcuts import get_object_or_404 -from django.core.exceptions import ImproperlyConfigured from rest_framework import status from rest_framework.views import APIView from rest_framework.response import Response from mandayejs.mandaye.models import UserCredentials -from mandayejs.mandaye.utils import exec_phantom, cookie_builder, get_login_info +from mandayejs.mandaye.utils import exec_phantom, get_login_info from mandayejs.applications import get_app_settings @@ -41,7 +40,7 @@ class ArchimedAccountDetails(APIView): def get(self, request, *args, **kwargs): logger = logging.getLogger(__name__) app_settings = get_app_settings() - + ws_uri = app_settings.SITE_WS_ENDPOINT['account_details'] username = kwargs['username'] @@ -50,7 +49,7 @@ class ArchimedAccountDetails(APIView): login_info = get_login_info(request, credentials) logger.debug(login_info) - login_info['locators'] = [ credentials.to_login_info(decrypt=True)] + login_info['locators'] = [credentials.to_login_info(decrypt=True)] result = exec_phantom(login_info) if result.get('result') != 'ok': @@ -74,11 +73,10 @@ class ArchimedAccountDetails(APIView): } content = '{"codeConfig":"", "xslPath":"Services/LectorShortAccount.xslt"}' url = request.build_absolute_uri(ws_uri) - logger.debug(url) - request_response = session.post(url, headers=headers, data=content, verify=False) + logger.debug(url) + request_response = session.post(url, headers=headers, data=content, verify=False) data = request_response.json() logger.debug(pprint(data)) return Response(data) - archimed_account_details = ArchimedAccountDetails.as_view() -- 2.9.3