summaryrefslogtreecommitdiff
path: root/addons/auth_openid
diff options
context:
space:
mode:
Diffstat (limited to 'addons/auth_openid')
-rw-r--r--addons/auth_openid/controllers/main.py75
-rw-r--r--addons/auth_openid/i18n/vi.po97
2 files changed, 135 insertions, 37 deletions
diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py
index 1fcc34c82a0..a4ef1bfa07b 100644
--- a/addons/auth_openid/controllers/main.py
+++ b/addons/auth_openid/controllers/main.py
@@ -38,6 +38,8 @@ import openerp
from openerp import SUPERUSER_ID
from openerp.modules.registry import RegistryManager
from openerp.addons.web.controllers.main import login_and_redirect, set_cookie_and_redirect
+import openerp.addons.web.http as http
+from openerp.addons.web.http import request
from .. import utils
@@ -88,20 +90,19 @@ class GoogleAppsAwareConsumer(consumer.GenericConsumer):
return super(GoogleAppsAwareConsumer, self).complete(message, endpoint, return_to)
-class OpenIDController(openerp.addons.web.http.Controller):
- _cp_path = '/auth_openid/login'
+class OpenIDController(http.Controller):
_store = filestore.FileOpenIDStore(_storedir)
_REQUIRED_ATTRIBUTES = ['email']
_OPTIONAL_ATTRIBUTES = 'nickname fullname postcode country language timezone'.split()
- def _add_extensions(self, request):
- """Add extensions to the request"""
+ def _add_extensions(self, oidrequest):
+ """Add extensions to the oidrequest"""
sreg_request = sreg.SRegRequest(required=self._REQUIRED_ATTRIBUTES,
optional=self._OPTIONAL_ATTRIBUTES)
- request.addExtension(sreg_request)
+ oidrequest.addExtension(sreg_request)
ax_request = ax.FetchRequest()
for alias in self._REQUIRED_ATTRIBUTES:
@@ -111,7 +112,7 @@ class OpenIDController(openerp.addons.web.http.Controller):
uri = utils.SREG2AX[alias]
ax_request.add(ax.AttrInfo(uri, required=False, alias=alias))
- request.addExtension(ax_request)
+ oidrequest.addExtension(ax_request)
def _get_attributes_from_success_response(self, success_response):
attrs = {}
@@ -133,58 +134,58 @@ class OpenIDController(openerp.addons.web.http.Controller):
attrs[attr] = value
return attrs
- def _get_realm(self, req):
- return req.httprequest.host_url
+ def _get_realm(self):
+ return request.httprequest.host_url
- @openerp.addons.web.http.httprequest
- def verify_direct(self, req, db, url):
- result = self._verify(req, db, url)
+ @http.route('/auth_openid/login/verify_direct', type='http', auth='none')
+ def verify_direct(self, db, url):
+ result = self._verify(db, url)
if 'error' in result:
return werkzeug.exceptions.BadRequest(result['error'])
if result['action'] == 'redirect':
return werkzeug.utils.redirect(result['value'])
return result['value']
- @openerp.addons.web.http.jsonrequest
- def verify(self, req, db, url):
- return self._verify(req, db, url)
+ @http.route('/auth_openid/login/verify', type='json', auth='none')
+ def verify(self, db, url):
+ return self._verify(db, url)
- def _verify(self, req, db, url):
- redirect_to = werkzeug.urls.Href(req.httprequest.host_url + 'auth_openid/login/process')(session_id=req.session_id)
- realm = self._get_realm(req)
+ def _verify(self, db, url):
+ redirect_to = werkzeug.urls.Href(request.httprequest.host_url + 'auth_openid/login/process')(session_id=request.session_id)
+ realm = self._get_realm()
session = dict(dbname=db, openid_url=url) # TODO add origin page ?
oidconsumer = consumer.Consumer(session, self._store)
try:
- request = oidconsumer.begin(url)
+ oidrequest = oidconsumer.begin(url)
except consumer.DiscoveryFailure, exc:
fetch_error_string = 'Error in discovery: %s' % (str(exc[0]),)
return {'error': fetch_error_string, 'title': 'OpenID Error'}
- if request is None:
+ if oidrequest is None:
return {'error': 'No OpenID services found', 'title': 'OpenID Error'}
- req.session.openid_session = session
- self._add_extensions(request)
+ request.session.openid_session = session
+ self._add_extensions(oidrequest)
- if request.shouldSendRedirect():
- redirect_url = request.redirectURL(realm, redirect_to)
- return {'action': 'redirect', 'value': redirect_url, 'session_id': req.session_id}
+ if oidrequest.shouldSendRedirect():
+ redirect_url = oidrequest.redirectURL(realm, redirect_to)
+ return {'action': 'redirect', 'value': redirect_url, 'session_id': request.session_id}
else:
- form_html = request.htmlMarkup(realm, redirect_to)
- return {'action': 'post', 'value': form_html, 'session_id': req.session_id}
+ form_html = oidrequest.htmlMarkup(realm, redirect_to)
+ return {'action': 'post', 'value': form_html, 'session_id': request.session_id}
- @openerp.addons.web.http.httprequest
- def process(self, req, **kw):
- session = getattr(req.session, 'openid_session', None)
+ @http.route('/auth_openid/login/process', type='http', auth='none')
+ def process(self, **kw):
+ session = getattr(request.session, 'openid_session', None)
if not session:
- return set_cookie_and_redirect(req, '/')
+ return set_cookie_and_redirect('/')
oidconsumer = consumer.Consumer(session, self._store, consumer_class=GoogleAppsAwareConsumer)
- query = req.httprequest.args
- info = oidconsumer.complete(query, req.httprequest.base_url)
+ query = request.httprequest.args
+ info = oidconsumer.complete(query, request.httprequest.base_url)
display_identifier = info.getDisplayIdentifier()
session['status'] = info.status
@@ -225,7 +226,7 @@ class OpenIDController(openerp.addons.web.http.Controller):
# TODO fill empty fields with the ones from sreg/ax
cr.commit()
- return login_and_redirect(req, dbname, login, key)
+ return login_and_redirect(dbname, login, key)
session['message'] = 'This OpenID identifier is not associated to any active users'
@@ -241,11 +242,11 @@ class OpenIDController(openerp.addons.web.http.Controller):
# information in a log.
session['message'] = 'Verification failed.'
- return set_cookie_and_redirect(req, '/#action=login&loginerror=1')
+ return set_cookie_and_redirect('/#action=login&loginerror=1')
- @openerp.addons.web.http.jsonrequest
- def status(self, req):
- session = getattr(req.session, 'openid_session', {})
+ @http.route('/auth_openid/login/status', type='json', auth='none')
+ def status(self):
+ session = getattr(request.session, 'openid_session', {})
return {'status': session.get('status'), 'message': session.get('message')}
diff --git a/addons/auth_openid/i18n/vi.po b/addons/auth_openid/i18n/vi.po
new file mode 100644
index 00000000000..d1040420132
--- /dev/null
+++ b/addons/auth_openid/i18n/vi.po
@@ -0,0 +1,97 @@
+# Vietnamese translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-06-27 16:29+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Vietnamese <vi@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-06-28 05:42+0000\n"
+"X-Generator: Launchpad (build 16681)\n"
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:24
+#, python-format
+msgid "Username"
+msgstr "Tên đăng nhập"
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:12
+#: view:res.users:0
+#, python-format
+msgid "OpenID"
+msgstr "OpenID"
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:30
+#: field:res.users,openid_url:0
+#, python-format
+msgid "OpenID URL"
+msgstr "Đường dẫn OpenID"
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:9
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
+#, python-format
+msgid "Google"
+msgstr "Google"
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:11
+#, python-format
+msgid "Launchpad"
+msgstr "Launchpad"
+
+#. module: auth_openid
+#: help:res.users,openid_email:0
+msgid "Used for disambiguation in case of a shared OpenID URL"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:18
+#, python-format
+msgid "Google Apps Domain"
+msgstr ""
+
+#. module: auth_openid
+#: field:res.users,openid_email:0
+msgid "OpenID Email"
+msgstr "OpenID Email"
+
+#. module: auth_openid
+#: field:res.users,openid_key:0
+msgid "OpenID Key"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:8
+#, python-format
+msgid "Password"
+msgstr "Mật khẩu"
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
+#, python-format
+msgid "Google Apps"
+msgstr ""
+
+#. module: auth_openid
+#: model:ir.model,name:auth_openid.model_res_users
+msgid "Users"
+msgstr "Người dùng"