diff options
author | Anike Arni <anikarni@gmail.com> | 2017-01-31 14:52:57 -0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-31 14:52:57 -0200 |
commit | 66787ad7b6e7dc777343f36519bcfa92e8bd0f1c (patch) | |
tree | fc250217a3f9e860a3bd0b437e5921128c9d25a3 /service/pixelated/resources/login_resource.py | |
parent | ece5e033d89ad15e06ebc29391a67c4f55a7ba2f (diff) | |
parent | 2799312871c18d91159c46f738d8d2da118d94bc (diff) |
Merge pull request #948 from pixelated/authentication-error
Authentication error
Diffstat (limited to 'service/pixelated/resources/login_resource.py')
-rw-r--r-- | service/pixelated/resources/login_resource.py | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py index 2a11b73e..4d78174f 100644 --- a/service/pixelated/resources/login_resource.py +++ b/service/pixelated/resources/login_resource.py @@ -20,7 +20,8 @@ from xml.sax import SAXParseException from pixelated.authentication import Authenticator from pixelated.config.leap import BootstrapUserServices from pixelated.resources import BaseResource, UnAuthorizedResource, IPixelatedSession -from pixelated.resources import handle_error_deferred +from pixelated.resources import handle_error_deferred, get_startup_folder +from twisted.cred.error import UnauthorizedLogin from twisted.internet import defer from twisted.logger import Logger from twisted.python.filepath import FilePath @@ -34,22 +35,6 @@ from twisted.web.template import Element, XMLFile, renderElement, renderer log = Logger() -def _get_startup_folder(): - path = os.path.dirname(os.path.abspath(__file__)) - return os.path.join(path, '..', 'assets') - - -def _get_static_folder(): - static_folder = os.path.abspath(os.path.join(os.path.abspath(__file__), "..", "..", "..", "web-ui", "dist")) - # this is a workaround for packaging - if not os.path.exists(static_folder): - static_folder = os.path.abspath( - os.path.join(os.path.abspath(__file__), "..", "..", "..", "..", "web-ui", "dist")) - if not os.path.exists(static_folder): - static_folder = os.path.join('/', 'usr', 'share', 'pixelated-user-agent') - return static_folder - - def parse_accept_language(all_headers): accepted_languages = ['pt-BR', 'en-US'] languages = all_headers.get('accept-language', '').split(';')[0] @@ -60,7 +45,7 @@ def parse_accept_language(all_headers): class DisclaimerElement(Element): - loader = XMLFile(FilePath(os.path.join(_get_startup_folder(), '_login_disclaimer_banner.html'))) + loader = XMLFile(FilePath(os.path.join(get_startup_folder(), '_login_disclaimer_banner.html'))) def __init__(self, banner): super(DisclaimerElement, self).__init__() @@ -83,7 +68,7 @@ class DisclaimerElement(Element): class LoginWebSite(Element): - loader = XMLFile(FilePath(os.path.join(_get_startup_folder(), 'login.html'))) + loader = XMLFile(FilePath(os.path.join(get_startup_folder(), 'login.html'))) def __init__(self, error_msg=None, disclaimer_banner_file=None): super(LoginWebSite, self).__init__() @@ -106,8 +91,7 @@ class LoginResource(BaseResource): def __init__(self, services_factory, provider=None, disclaimer_banner=None, authenticator=None): BaseResource.__init__(self, services_factory) - self._static_folder = _get_static_folder() - self._startup_folder = _get_startup_folder() + self._startup_folder = get_startup_folder() self._disclaimer_banner = disclaimer_banner self._provider = provider self._authenticator = authenticator or Authenticator(provider) @@ -145,8 +129,11 @@ class LoginResource(BaseResource): self._complete_bootstrap(user_auth, request) def render_error(error): - log.info('Login error for %s' % request.args['username'][0]) - log.info('%s' % error) + if error.type is UnauthorizedLogin: + log.info('Unauthorized login for %s. User typed wrong username/password combination.' % request.args['username'][0]) + else: + log.error('Authentication error for %s' % request.args['username'][0]) + log.error('%s' % error) request.setResponseCode(UNAUTHORIZED) return self._render_template(request, 'Invalid username or password') |