[IMP] seperation of auth_signup's reset password and signup routes
bzr revid: fme@openerp.com-20140227154955-tnxyzw1ynuwlo5mj
This commit is contained in:
commit
152e70e9fa
|
@ -31,7 +31,7 @@ Allow users to login through OAuth2 Provider.
|
||||||
'author': 'OpenERP s.a.',
|
'author': 'OpenERP s.a.',
|
||||||
'maintainer': 'OpenERP s.a.',
|
'maintainer': 'OpenERP s.a.',
|
||||||
'website': 'http://www.openerp.com',
|
'website': 'http://www.openerp.com',
|
||||||
'depends': ['base', 'web', 'base_setup'],
|
'depends': ['base', 'web', 'base_setup', 'auth_signup'],
|
||||||
'data': [
|
'data': [
|
||||||
'res_users.xml',
|
'res_users.xml',
|
||||||
'auth_oauth_data.xml',
|
'auth_oauth_data.xml',
|
||||||
|
|
|
@ -61,10 +61,14 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
|
||||||
return providers
|
return providers
|
||||||
|
|
||||||
def get_state(self, provider):
|
def get_state(self, provider):
|
||||||
return dict(
|
state = dict(
|
||||||
d=request.session.db,
|
d=request.session.db,
|
||||||
p=provider['id']
|
p=provider['id']
|
||||||
)
|
)
|
||||||
|
token = request.params.get('token')
|
||||||
|
if token:
|
||||||
|
state['t'] = token
|
||||||
|
return state
|
||||||
|
|
||||||
@http.route()
|
@http.route()
|
||||||
def web_login(self, *args, **kw):
|
def web_login(self, *args, **kw):
|
||||||
|
@ -88,6 +92,24 @@ class OAuthLogin(openerp.addons.web.controllers.main.Home):
|
||||||
|
|
||||||
return response
|
return response
|
||||||
|
|
||||||
|
@http.route()
|
||||||
|
def web_auth_signup(self, *args, **kw):
|
||||||
|
providers = self.list_providers()
|
||||||
|
if len(providers) == 1:
|
||||||
|
werkzeug.exceptions.abort(werkzeug.utils.redirect(providers[0]['auth_link'], 303))
|
||||||
|
response = super(OAuthLogin, self).web_auth_signup(*args, **kw)
|
||||||
|
response.qcontext.update(providers=providers)
|
||||||
|
return response
|
||||||
|
|
||||||
|
@http.route()
|
||||||
|
def web_auth_reset_password(self, *args, **kw):
|
||||||
|
providers = self.list_providers()
|
||||||
|
if len(providers) == 1:
|
||||||
|
werkzeug.exceptions.abort(werkzeug.utils.redirect(providers[0]['auth_link'], 303))
|
||||||
|
response = super(OAuthLogin, self).web_auth_reset_password(*args, **kw)
|
||||||
|
response.qcontext.update(providers=providers)
|
||||||
|
return response
|
||||||
|
|
||||||
class OAuthController(http.Controller):
|
class OAuthController(http.Controller):
|
||||||
|
|
||||||
@http.route('/auth_oauth/signin', type='http', auth='none')
|
@http.route('/auth_oauth/signin', type='http', auth='none')
|
||||||
|
|
|
@ -3,15 +3,35 @@
|
||||||
-->
|
-->
|
||||||
<openerp>
|
<openerp>
|
||||||
<data>
|
<data>
|
||||||
<template id="auth_oauth.login" inherit_id="web.login" name="OAuth Login buttons">
|
<template id="auth_oauth.providers" name="OAuth Providers">
|
||||||
<xpath expr="//button[@type='submit']" position="before">
|
|
||||||
<div class="pull-right">
|
|
||||||
<div t-foreach="providers" t-as="p">
|
<div t-foreach="providers" t-as="p">
|
||||||
<a t-att-href="p['auth_link']" class="btn btn-link">
|
<a t-att-href="p['auth_link']" class="btn btn-link">
|
||||||
<i t-att-class="p['css_class']"/>
|
<i t-att-class="p['css_class']"/>
|
||||||
<t t-esc="p['body']"/>
|
<t t-esc="p['body']"/>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template id="auth_oauth.login" inherit_id="web.login" name="OAuth Login buttons">
|
||||||
|
<xpath expr="//button[@type='submit']" position="before">
|
||||||
|
<div class="pull-right">
|
||||||
|
<t t-call="auth_oauth.providers"/>
|
||||||
|
</div>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template id="auth_oauth.signup" inherit_id="auth_signup.signup" name="OAuth Signup buttons">
|
||||||
|
<xpath expr="//button[@type='submit']" position="before">
|
||||||
|
<div class="pull-right">
|
||||||
|
<t t-call="auth_oauth.providers"/>
|
||||||
|
</div>
|
||||||
|
</xpath>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template id="auth_oauth.reset_password" inherit_id="auth_signup.reset_password" name="OAuth Reset Password buttons">
|
||||||
|
<xpath expr="//button[@type='submit']" position="before">
|
||||||
|
<div class="pull-right">
|
||||||
|
<t t-call="auth_oauth.providers"/>
|
||||||
</div>
|
</div>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
##############################################################################
|
|
||||||
#
|
|
||||||
# OpenERP, Open Source Management Solution
|
|
||||||
# Copyright (C) 2012-today OpenERP SA (<http://www.openerp.com>)
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
import res_users
|
|
||||||
import controllers
|
|
|
@ -1,41 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
##############################################################################
|
|
||||||
#
|
|
||||||
# OpenERP, Open Source Management Solution
|
|
||||||
# Copyright (C) 2010-2014 OpenERP SA (<http://openerp.com>).
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
{
|
|
||||||
'name': 'Signup with OAuth2 Authentication',
|
|
||||||
'version': '1.0',
|
|
||||||
'category': 'Hidden',
|
|
||||||
'description': """
|
|
||||||
Allow users to sign up through OAuth2 Provider.
|
|
||||||
===============================================
|
|
||||||
""",
|
|
||||||
'author': 'OpenERP SA',
|
|
||||||
'website': 'http://www.openerp.com',
|
|
||||||
'depends': ['auth_oauth', 'auth_signup'],
|
|
||||||
'data': [
|
|
||||||
'views/auth_oauth_signup.xml',
|
|
||||||
],
|
|
||||||
'js': [],
|
|
||||||
'css': [],
|
|
||||||
'qweb': [],
|
|
||||||
'installable': True,
|
|
||||||
'auto_install': True,
|
|
||||||
}
|
|
|
@ -1,3 +0,0 @@
|
||||||
import main
|
|
||||||
|
|
||||||
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
|
@ -1,20 +0,0 @@
|
||||||
import openerp
|
|
||||||
import werkzeug
|
|
||||||
|
|
||||||
from openerp.http import request
|
|
||||||
|
|
||||||
class OAuthSignupLogin(openerp.addons.web.controllers.main.Home):
|
|
||||||
def list_providers(self):
|
|
||||||
providers = super(OAuthSignupLogin, self).list_providers()
|
|
||||||
if len(providers) == 1 and request.params.get('mode') == 'signup':
|
|
||||||
werkzeug.exceptions.abort(werkzeug.utils.redirect(providers[0]['auth_link'], 303))
|
|
||||||
return providers
|
|
||||||
|
|
||||||
def get_state(self, provider):
|
|
||||||
state = super(OAuthSignupLogin, self).get_state(provider)
|
|
||||||
token = request.params.get('token')
|
|
||||||
if token:
|
|
||||||
state['t'] = token
|
|
||||||
return state
|
|
||||||
|
|
||||||
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Arabic 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-11-26 18:16+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Arabic <ar@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "المستخدمين"
|
|
|
@ -1,22 +0,0 @@
|
||||||
# Translation of OpenERP Server.
|
|
||||||
# This file contains the translation of the following modules:
|
|
||||||
# * auth_oauth_signup
|
|
||||||
#
|
|
||||||
msgid ""
|
|
||||||
msgstr ""
|
|
||||||
"Project-Id-Version: OpenERP Server 7.0alpha\n"
|
|
||||||
"Report-Msgid-Bugs-To: \n"
|
|
||||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
|
||||||
"PO-Revision-Date: 2012-12-21 17:05+0000\n"
|
|
||||||
"Last-Translator: <>\n"
|
|
||||||
"Language-Team: \n"
|
|
||||||
"MIME-Version: 1.0\n"
|
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
|
||||||
"Content-Transfer-Encoding: \n"
|
|
||||||
"Plural-Forms: \n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr ""
|
|
||||||
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Czech 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: 2014-02-03 16:54+0000\n"
|
|
||||||
"Last-Translator: Jakub Drozd <Unknown>\n"
|
|
||||||
"Language-Team: Czech <cs@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: 2014-02-04 05:51+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16916)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Uživatelé"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Danish 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-09-15 20:08+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Danish <da@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Bruger"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# German translation for openobject-addons
|
|
||||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
|
||||||
#
|
|
||||||
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: 2012-12-27 22:22+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: German <de@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Benutzer"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# English (United Kingdom) 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-02-06 14:33+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: English (United Kingdom) <en_GB@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Users"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Spanish translation for openobject-addons
|
|
||||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
|
||||||
#
|
|
||||||
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: 2012-12-27 11:38+0000\n"
|
|
||||||
"Last-Translator: Pedro Manuel Baeza <pedro.baeza@gmail.com>\n"
|
|
||||||
"Language-Team: Spanish <es@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Usuarios"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Estonian 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-10-09 14:34+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Estonian <et@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Kasutajad"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# French translation for openobject-addons
|
|
||||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
|
||||||
#
|
|
||||||
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: 2012-12-29 16:08+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: French <fr@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Utilisateurs"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Galician translation for openobject-addons
|
|
||||||
# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014.
|
|
||||||
#
|
|
||||||
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: 2014-02-05 16:37+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Galician <gl@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: 2014-02-06 05:33+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16916)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Usuarios"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Croatian 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-01-24 12:30+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Croatian <hr@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Korisnici"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Hungarian 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-03-19 18:13+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Hungarian <hu@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Felhasználók"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Italian translation for openobject-addons
|
|
||||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
|
||||||
#
|
|
||||||
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: 2012-12-27 09:12+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Italian <it@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Utenti"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Lithuanian 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-04-24 18:21+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Lithuanian <lt@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Naudotojai"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Macedonian 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-02-28 14:54+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Macedonian <mk@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Корисници"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Mongolian 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-02-06 07:44+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Mongolian <mn@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Хэрэглэгчид"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Dutch translation for openobject-addons
|
|
||||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
|
||||||
#
|
|
||||||
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: 2012-12-27 09:12+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Dutch <nl@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Gebruikers"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Dutch (Belgium) 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-04-15 16:01+0000\n"
|
|
||||||
"Last-Translator: Els Van Vossel (Foxy) <Unknown>\n"
|
|
||||||
"Language-Team: Dutch (Belgium) <nl_BE@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Gebruikers"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Polish 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-11-14 12:00+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Polish <pl@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Użytkownicy"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Portuguese 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-01-08 17:56+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Portuguese <pt@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Utilizadores"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Brazilian Portuguese 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-01-02 11:56+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Brazilian Portuguese <pt_BR@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Usuários"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Romanian 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-01-14 19:07+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Romanian <ro@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Utilizatori"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Russian 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-02-13 09:46+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Russian <ru@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Пользователи"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Slovenian translation for openobject-addons
|
|
||||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
|
||||||
#
|
|
||||||
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: 2012-12-30 09:36+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Slovenian <sl@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Uporabniki"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Swedish 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-01-17 23:47+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Swedish <sv@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Användare"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Turkish 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-02-03 12:07+0000\n"
|
|
||||||
"Last-Translator: Ahmet Altınışık <Unknown>\n"
|
|
||||||
"Language-Team: Turkish <tr@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Kullanıcılar"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# 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 06:49+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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "Người dùng"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Chinese (Simplified) translation for openobject-addons
|
|
||||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
|
||||||
# This file is distributed under the same license as the openobject-addons package.
|
|
||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
|
||||||
#
|
|
||||||
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-01-02 10:59+0000\n"
|
|
||||||
"Last-Translator: Oliver Yuan <Unknown>\n"
|
|
||||||
"Language-Team: Chinese (Simplified) <zh_CN@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "用户"
|
|
|
@ -1,23 +0,0 @@
|
||||||
# Chinese (Traditional) 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-01-30 13:18+0000\n"
|
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
||||||
"Language-Team: Chinese (Traditional) <zh_TW@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: 2014-01-28 06:41+0000\n"
|
|
||||||
"X-Generator: Launchpad (build 16914)\n"
|
|
||||||
|
|
||||||
#. module: auth_oauth_signup
|
|
||||||
#: model:ir.model,name:auth_oauth_signup.model_res_users
|
|
||||||
msgid "Users"
|
|
||||||
msgstr "使用者"
|
|
|
@ -1,60 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
##############################################################################
|
|
||||||
#
|
|
||||||
# OpenERP, Open Source Management Solution
|
|
||||||
# Copyright (C) 2010-2012 OpenERP SA (<http://openerp.com>).
|
|
||||||
#
|
|
||||||
# This program is free software: you can redistribute it and/or modify
|
|
||||||
# it under the terms of the GNU Affero General Public License as
|
|
||||||
# published by the Free Software Foundation, either version 3 of the
|
|
||||||
# License, or (at your option) any later version.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
# GNU Affero General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
#
|
|
||||||
##############################################################################
|
|
||||||
|
|
||||||
import logging
|
|
||||||
import simplejson
|
|
||||||
|
|
||||||
import openerp
|
|
||||||
from openerp.addons.auth_signup.res_users import SignupError
|
|
||||||
from openerp.osv import osv, fields
|
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
|
||||||
|
|
||||||
class res_users(osv.Model):
|
|
||||||
_inherit = 'res.users'
|
|
||||||
|
|
||||||
def _auth_oauth_signin(self, cr, uid, provider, validation, params, context=None):
|
|
||||||
# overridden to use signup method if regular oauth signin fails
|
|
||||||
try:
|
|
||||||
login = super(res_users, self)._auth_oauth_signin(cr, uid, provider, validation, params, context=context)
|
|
||||||
|
|
||||||
except openerp.exceptions.AccessDenied, access_denied_exception:
|
|
||||||
if context and context.get('no_user_creation'):
|
|
||||||
return None
|
|
||||||
state = simplejson.loads(params['state'])
|
|
||||||
token = state.get('t')
|
|
||||||
oauth_uid = validation['user_id']
|
|
||||||
email = validation.get('email', 'provider_%s_user_%s' % (provider, oauth_uid))
|
|
||||||
name = validation.get('name', email)
|
|
||||||
values = {
|
|
||||||
'name': name,
|
|
||||||
'login': email,
|
|
||||||
'email': email,
|
|
||||||
'oauth_provider_id': provider,
|
|
||||||
'oauth_uid': oauth_uid,
|
|
||||||
'oauth_access_token': params['access_token'],
|
|
||||||
'active': True,
|
|
||||||
}
|
|
||||||
try:
|
|
||||||
_, login, _ = self.signup(cr, uid, values, token, context=context)
|
|
||||||
except SignupError:
|
|
||||||
raise access_denied_exception
|
|
||||||
return login
|
|
|
@ -1,18 +0,0 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<!-- vim:et:si:ts=2:sts=2:sw=2 -->
|
|
||||||
<openerp>
|
|
||||||
<data>
|
|
||||||
<template id="auth_oauth_signup.signup" inherit_id="auth_signup.signup" name="OAuth Signup buttons">
|
|
||||||
<xpath expr="//button[@type='submit']" position="before">
|
|
||||||
<div class="pull-right">
|
|
||||||
<div t-foreach="providers or []" t-as="p">
|
|
||||||
<a t-att-href="p['auth_link']" class="btn btn-link">
|
|
||||||
<i t-att-class="p['css_class']"/>
|
|
||||||
<t t-esc="p['body']"/>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</xpath>
|
|
||||||
</template>
|
|
||||||
</data>
|
|
||||||
</openerp>
|
|
|
@ -42,6 +42,6 @@ Allow users to sign up and reset their password
|
||||||
'res_users_view.xml',
|
'res_users_view.xml',
|
||||||
'views/auth_signup_login.xml',
|
'views/auth_signup_login.xml',
|
||||||
],
|
],
|
||||||
'js': ['static/src/js/auth_signup.js'],
|
'js': [],
|
||||||
'bootstrap': True,
|
'bootstrap': True,
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,83 +19,98 @@
|
||||||
#
|
#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
import logging
|
import logging
|
||||||
|
import werkzeug
|
||||||
|
|
||||||
import openerp
|
import openerp
|
||||||
import openerp.addons.web.controllers.main as webmain
|
|
||||||
from openerp.addons.auth_signup.res_users import SignupError
|
from openerp.addons.auth_signup.res_users import SignupError
|
||||||
from openerp import http
|
from openerp import http
|
||||||
from openerp.http import request
|
from openerp.http import request
|
||||||
from openerp.tools.translate import _
|
from openerp.tools.translate import _
|
||||||
from openerp.tools import exception_to_unicode
|
|
||||||
|
|
||||||
_logger = logging.getLogger(__name__)
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
class AuthSignup(openerp.addons.web.controllers.main.Home):
|
class AuthSignupHome(openerp.addons.web.controllers.main.Home):
|
||||||
|
|
||||||
@http.route()
|
@http.route()
|
||||||
def web_login(self, *args, **kw):
|
def web_login(self, *args, **kw):
|
||||||
mode = request.params.get('mode')
|
response = super(AuthSignupHome, self).web_login(*args, **kw)
|
||||||
|
response.qcontext.update(self.get_auth_signup_config())
|
||||||
|
return response
|
||||||
|
|
||||||
|
@http.route('/web/signup', type='http', auth='public', website=True, multilang=True)
|
||||||
|
def web_auth_signup(self, *args, **kw):
|
||||||
|
qcontext = self.get_auth_signup_qcontext()
|
||||||
|
|
||||||
|
if not qcontext.get('token') and not qcontext.get('signup_enabled'):
|
||||||
|
raise werkzeug.exceptions.NotFound()
|
||||||
|
|
||||||
|
if 'error' not in qcontext and request.httprequest.method == 'POST':
|
||||||
|
try:
|
||||||
|
self.do_signup(qcontext)
|
||||||
|
return super(AuthSignupHome, self).web_login(*args, **kw)
|
||||||
|
except (SignupError, AssertionError), e:
|
||||||
|
qcontext['error'] = _(e.message)
|
||||||
|
|
||||||
|
return request.render('auth_signup.signup', qcontext)
|
||||||
|
|
||||||
|
@http.route('/web/reset_password', type='http', auth='public', website=True, multilang=True)
|
||||||
|
def web_auth_reset_password(self, *args, **kw):
|
||||||
|
qcontext = self.get_auth_signup_qcontext()
|
||||||
|
|
||||||
|
if not qcontext.get('token') and not qcontext.get('reset_password_enabled'):
|
||||||
|
raise werkzeug.exceptions.NotFound()
|
||||||
|
|
||||||
|
if 'error' not in qcontext and request.httprequest.method == 'POST':
|
||||||
|
try:
|
||||||
|
if qcontext.get('token'):
|
||||||
|
self.do_signup(qcontext)
|
||||||
|
return super(AuthSignupHome, self).web_login(*args, **kw)
|
||||||
|
else:
|
||||||
|
login = qcontext.get('login')
|
||||||
|
assert login, "No login provided."
|
||||||
|
res_users = request.registry.get('res.users')
|
||||||
|
res_users.reset_password(request.cr, openerp.SUPERUSER_ID, login)
|
||||||
|
qcontext['message'] = _("An email has been sent with credentials to reset your password")
|
||||||
|
except SignupError:
|
||||||
|
qcontext['error'] = _("Could not reset your password")
|
||||||
|
_logger.exception('error when resetting password')
|
||||||
|
except Exception, e:
|
||||||
|
qcontext['error'] = _(e.message)
|
||||||
|
|
||||||
|
|
||||||
|
return request.render('auth_signup.reset_password', qcontext)
|
||||||
|
|
||||||
|
def get_auth_signup_config(self):
|
||||||
|
"""retrieve the module config (which features are enabled) for the login page"""
|
||||||
|
|
||||||
|
icp = request.registry.get('ir.config_parameter')
|
||||||
|
return {
|
||||||
|
'signup_enabled': icp.get_param(request.cr, openerp.SUPERUSER_ID, 'auth_signup.allow_uninvited') == 'True',
|
||||||
|
'reset_password_enabled': icp.get_param(request.cr, openerp.SUPERUSER_ID, 'auth_signup.reset_password') == 'True',
|
||||||
|
}
|
||||||
|
|
||||||
|
def get_auth_signup_qcontext(self):
|
||||||
|
""" Shared helper returning the rendering context for signup and reset password """
|
||||||
qcontext = request.params.copy()
|
qcontext = request.params.copy()
|
||||||
super_response = None
|
qcontext.update(self.get_auth_signup_config())
|
||||||
if request.httprequest.method != 'POST' or mode not in ('reset', 'signup'):
|
if qcontext.get('token'):
|
||||||
# Default behavior is to try to login, which in reset or signup mode in a non-sense.
|
|
||||||
super_response = super(AuthSignup, self).web_login(*args, **kw)
|
|
||||||
response = webmain.render_bootstrap_template('auth_signup.signup', qcontext)
|
|
||||||
if super_response.is_qweb:
|
|
||||||
response.qcontext.update(super_response.qcontext)
|
|
||||||
token = qcontext.get('token', None)
|
|
||||||
token_infos = None
|
|
||||||
if token:
|
|
||||||
try:
|
try:
|
||||||
# retrieve the user info (name, login or email) corresponding to a signup token
|
# retrieve the user info (name, login or email) corresponding to a signup token
|
||||||
res_partner = request.registry.get('res.partner')
|
res_partner = request.registry.get('res.partner')
|
||||||
token_infos = res_partner.signup_retrieve_info(request.cr, openerp.SUPERUSER_ID, token)
|
token_infos = res_partner.signup_retrieve_info(request.cr, openerp.SUPERUSER_ID, qcontext.get('token'))
|
||||||
for k, v in token_infos.items():
|
for k, v in token_infos.items():
|
||||||
qcontext.setdefault(k, v)
|
qcontext.setdefault(k, v)
|
||||||
except:
|
except:
|
||||||
qcontext['error'] = _("Invalid signup token")
|
qcontext['error'] = _("Invalid signup token")
|
||||||
response.params['template'] = 'web.login'
|
return qcontext
|
||||||
return response
|
|
||||||
|
|
||||||
# retrieve the module config (which features are enabled) for the login page
|
def do_signup(self, qcontext):
|
||||||
icp = request.registry.get('ir.config_parameter')
|
""" Shared helper that creates a res.partner out of a token """
|
||||||
config = {
|
|
||||||
'signup': icp.get_param(request.cr, openerp.SUPERUSER_ID, 'auth_signup.allow_uninvited') == 'True',
|
|
||||||
'reset': icp.get_param(request.cr, openerp.SUPERUSER_ID, 'auth_signup.reset_password') == 'True',
|
|
||||||
}
|
|
||||||
qcontext.update(config)
|
|
||||||
|
|
||||||
if 'error' in request.params or mode not in ('reset', 'signup') or (not token and not config[mode]):
|
|
||||||
if super_response.is_qweb:
|
|
||||||
super_response.qcontext.update(config)
|
|
||||||
return super_response
|
|
||||||
|
|
||||||
if request.httprequest.method == 'GET':
|
|
||||||
if token_infos:
|
|
||||||
qcontext.update(token_infos)
|
|
||||||
else:
|
|
||||||
res_users = request.registry.get('res.users')
|
|
||||||
login = request.params.get('login')
|
|
||||||
if mode == 'reset' and not token:
|
|
||||||
try:
|
|
||||||
res_users.reset_password(request.cr, openerp.SUPERUSER_ID, login)
|
|
||||||
qcontext['message'] = _("An email has been sent with credentials to reset your password")
|
|
||||||
response.params['template'] = 'web.login'
|
|
||||||
except Exception, e:
|
|
||||||
qcontext['error'] = exception_to_unicode(e) or _("Could not reset your password")
|
|
||||||
_logger.exception('error when resetting password')
|
|
||||||
else:
|
|
||||||
values = dict((key, qcontext.get(key)) for key in ('login', 'name', 'password'))
|
values = dict((key, qcontext.get(key)) for key in ('login', 'name', 'password'))
|
||||||
try:
|
assert any([k for k in values.values()]), "The form was not properly filled in."
|
||||||
self._signup_with_values(token, values)
|
assert values.get('password') == qcontext.get('confirm_password'), "Passwords do not match; please retype them."
|
||||||
redirect = request.params.get('redirect')
|
self._signup_with_values(qcontext.get('token'), values)
|
||||||
if not redirect:
|
request.cr.commit()
|
||||||
redirect = '/web?' + request.httprequest.query_string
|
|
||||||
return http.redirect_with_hash(redirect)
|
|
||||||
except SignupError, e:
|
|
||||||
qcontext['error'] = exception_to_unicode(e)
|
|
||||||
|
|
||||||
return response
|
|
||||||
|
|
||||||
def _signup_with_values(self, token, values):
|
def _signup_with_values(self, token, values):
|
||||||
db, login, password = request.registry['res.users'].signup(request.cr, openerp.SUPERUSER_ID, values, token)
|
db, login, password = request.registry['res.users'].signup(request.cr, openerp.SUPERUSER_ID, values, token)
|
||||||
|
@ -104,5 +119,4 @@ class AuthSignup(openerp.addons.web.controllers.main.Home):
|
||||||
if not uid:
|
if not uid:
|
||||||
raise SignupError(_('Authentification Failed.'))
|
raise SignupError(_('Authentification Failed.'))
|
||||||
|
|
||||||
|
|
||||||
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
|
# vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||||
|
|
|
@ -66,11 +66,12 @@ class res_partner(osv.Model):
|
||||||
self.signup_prepare(cr, uid, [partner.id], context=context)
|
self.signup_prepare(cr, uid, [partner.id], context=context)
|
||||||
partner.refresh()
|
partner.refresh()
|
||||||
|
|
||||||
|
route = 'login'
|
||||||
# the parameters to encode for the query
|
# the parameters to encode for the query
|
||||||
query = dict(db=cr.dbname)
|
query = dict(db=cr.dbname)
|
||||||
signup_type = context.get('signup_force_type_in_url', partner.signup_type or '')
|
signup_type = context.get('signup_force_type_in_url', partner.signup_type or '')
|
||||||
if signup_type:
|
if signup_type:
|
||||||
query['mode'] = signup_type
|
route = 'reset_password' if signup_type == 'reset' else signup_type
|
||||||
|
|
||||||
if partner.signup_token and signup_type:
|
if partner.signup_token and signup_type:
|
||||||
query['token'] = partner.signup_token
|
query['token'] = partner.signup_token
|
||||||
|
@ -89,7 +90,7 @@ class res_partner(osv.Model):
|
||||||
if res_id:
|
if res_id:
|
||||||
fragment['id'] = res_id
|
fragment['id'] = res_id
|
||||||
|
|
||||||
res[partner.id] = urljoin(base_url, "/web/login?%s#%s" % (urlencode(query), urlencode(fragment)))
|
res[partner.id] = urljoin(base_url, "/web/%s?%s#%s" % (route, urlencode(query), urlencode(fragment)))
|
||||||
|
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|
|
@ -1,19 +0,0 @@
|
||||||
openerp.auth_signup = function(instance) {
|
|
||||||
openerp.web.LoginForm.include({
|
|
||||||
start: function () {
|
|
||||||
var self = this;
|
|
||||||
this.$el.on('submit', function () {
|
|
||||||
var password = self.get_password_field('password');
|
|
||||||
var confirm_password = self.get_password_field('confirm_password');
|
|
||||||
if (password && confirm_password && (password.value != confirm_password.value)) {
|
|
||||||
alert("Passwords do not match; please retype them.");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
},
|
|
||||||
get_password_field: function (field) {
|
|
||||||
var selector = 'input[name="' + field + '"][type="password"]:visible';
|
|
||||||
return this.$(selector)[0];
|
|
||||||
},
|
|
||||||
});
|
|
||||||
};
|
|
|
@ -5,85 +5,95 @@
|
||||||
<data>
|
<data>
|
||||||
<template id="auth_signup.login" inherit_id="web.login" name="Sign up - Reset Password">
|
<template id="auth_signup.login" inherit_id="web.login" name="Sign up - Reset Password">
|
||||||
<xpath expr="//button[@type='submit']" position="before">
|
<xpath expr="//button[@type='submit']" position="before">
|
||||||
<a t-if="signup" t-attf-href="?{{ keep_query('*', mode='signup') }}" class="btn btn-link pull-right">Sign up</a>
|
<a t-if="signup_enabled" t-attf-href="/web/signup?redirect=/web%3f{{ quote_plus(keep_query()) }}" class="btn btn-link pull-right">Sign up</a>
|
||||||
<a t-if="reset" t-attf-href="?{{ keep_query('*', mode='reset') }}" class="btn btn-link pull-right">Reset Password</a>
|
<a t-if="reset_password_enabled" t-attf-href="/web/reset_password?redirect=/web/login%3f{{ quote_plus(keep_query()) }}" class="btn btn-link pull-right">Reset Password</a>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<template id="auth_signup.signup" name="Sign up">
|
<template id="auth_signup.fields" name="Auth Signup/ResetPassword form fields">
|
||||||
<t t-call="web.login_layout">
|
|
||||||
<t t-set="head">
|
|
||||||
<t t-foreach="css" t-as="css_file">
|
|
||||||
<link rel="stylesheet" t-att-href="css_file"/>
|
|
||||||
</t>
|
|
||||||
<t t-foreach="js" t-as="js_file">
|
|
||||||
<script type="text/javascript" t-att-src="js_file"></script>
|
|
||||||
</t>
|
|
||||||
</t>
|
|
||||||
<script type="text/javascript">
|
|
||||||
$(function() {
|
|
||||||
var s = new openerp.init(<t t-raw="modules"/>);
|
|
||||||
var login_form = new openerp.web.LoginForm($('.oe_signup_form'));
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<t t-set="reset_without_token" t-value="mode == 'reset' and not token"/>
|
|
||||||
|
|
||||||
<form class="oe_signup_form" role="form" method="post">
|
|
||||||
<t t-call="web.database_select"/>
|
<t t-call="web.database_select"/>
|
||||||
|
|
||||||
<div class="form-group field-name" t-if="not reset_without_token">
|
<div class="form-group field-name">
|
||||||
<label for="name" class="control-label">Your Name</label>
|
<label for="name" class="control-label">Your Name</label>
|
||||||
<input type="text" name="name" t-att-value="name" id="name" class="form-control" placeholder="e.g. John Doe"
|
<input type="text" name="name" t-att-value="name" id="name" class="form-control" placeholder="e.g. John Doe"
|
||||||
required="required" autofocus="autofocus" t-att-disabled="'disabled' if mode == 'reset' and token else None"/>
|
required="required" t-att-autofocus="'autofocus' if not only_passwords else None" t-att-readonly="'readonly' if only_passwords else None"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group field-login">
|
<div class="form-group field-login">
|
||||||
<label for="login" class="control-label">Your Email</label>
|
<label for="login" class="control-label">Your Email</label>
|
||||||
<input type="email" name="login" t-att-value="login" id="login" class="form-control"
|
<input type="text" name="login" t-att-value="login" id="login" class="form-control"
|
||||||
t-att-autofocus="'autofocus' if reset_without_token else None"
|
required="required" t-att-readonly="'readonly' if only_passwords else None"/>
|
||||||
required="required" t-att-disabled="'disabled' if mode == 'reset' and token else None"/>
|
|
||||||
<input type="hidden" name="login" t-att-value="login" t-if="mode == 'reset' and token"/>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group field-password" t-if="not reset_without_token">
|
<div class="form-group field-password">
|
||||||
<label for="password" class="control-label">Password</label>
|
<label for="password" class="control-label">Password</label>
|
||||||
<input type="password" name="password" id="password" class="form-control"
|
<input type="password" name="password" autofocus="autofocus" id="password" class="form-control"
|
||||||
required="required" t-att-autofocus="'autofocus' if mode == 'reset' and token else None"/>
|
required="required" t-att-autofocus="'autofocus' if only_passwords else None"/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-group field-confirm_password" t-if="not reset_without_token">
|
<div class="form-group field-confirm_password">
|
||||||
<label for="confirm_password" class="control-label">Confirm Password</label>
|
<label for="confirm_password" class="control-label">Confirm Password</label>
|
||||||
<input type="password" name="confirm_password" id="confirm_password" class="form-control" required="required"/>
|
<input type="password" name="confirm_password" id="confirm_password" class="form-control" required="required"/>
|
||||||
</div>
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<template id="auth_signup.signup" name="Sign up login">
|
||||||
|
<t t-call="web.login_layout">
|
||||||
|
<form class="oe_signup_form" role="form" t-attf-action="/web/signup{{ '?debug' if debug else '' }}" method="post" t-if="not message">
|
||||||
|
|
||||||
|
<t t-call="auth_signup.fields"/>
|
||||||
|
|
||||||
<p class="alert alert-danger" t-if="error">
|
<p class="alert alert-danger" t-if="error">
|
||||||
<t t-esc="error"/>
|
<t t-esc="error"/>
|
||||||
</p>
|
</p>
|
||||||
<p class="alert alert-success" t-if="message">
|
|
||||||
<t t-esc="message"/>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<input type="hidden" name="redirect" t-att-value="redirect"/>
|
<input type="hidden" name="redirect" t-att-value="redirect"/>
|
||||||
<input type="hidden" name="mode" t-att-value="mode"/>
|
|
||||||
<input type="hidden" name="token" t-att-value="token"/>
|
<input type="hidden" name="token" t-att-value="token"/>
|
||||||
<div class="clearfix oe_login_buttons">
|
<div class="clearfix oe_login_buttons">
|
||||||
<a t-attf-href="?{{ keep_query('*', mode='login') }}" class="btn btn-link pull-right">Back to Login</a>
|
<a href="/web/login" class="btn btn-link pull-right">Back to Login</a>
|
||||||
<button type="submit" class="btn btn-primary pull-left">
|
<button type="submit" class="btn btn-primary pull-left">Sign up</button>
|
||||||
<t t-if="mode == 'signup'">Sign up</t>
|
|
||||||
<t t-if="mode == 'reset'">Reset password</t>
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</form>
|
</form>
|
||||||
<div class="oe_single_form_footer" t-if="not disable_footer">
|
|
||||||
<t t-if="not disable_database_manager">
|
|
||||||
<a class="oe_login_manage_db" t-attf-href="/web/database/manager{{ '?debug' if debug else '' }}">Manage Databases</a>
|
|
||||||
<span class="oe_footer_seperator"> | </span>
|
|
||||||
</t>
|
</t>
|
||||||
<a href="http://www.openerp.com" target="_blank">Powered by <span>OpenERP</span></a>
|
</template>
|
||||||
|
|
||||||
|
<template id="auth_signup.reset_password" name="Reset password">
|
||||||
|
<t t-call="web.login_layout">
|
||||||
|
<div t-if="message">
|
||||||
|
<p class="alert alert-success" t-if="message">
|
||||||
|
<t t-esc="message"/>
|
||||||
|
</p>
|
||||||
|
<a href="/web/login" class="btn btn-link pull-right">Back to Login</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<form class="oe_reset_password_form" role="form" t-attf-action="/web/reset_password{{ '?debug' if debug else '' }}" method="post" t-if="not message">
|
||||||
|
|
||||||
|
<t t-if="token">
|
||||||
|
<t t-call="auth_signup.fields">
|
||||||
|
<t t-set="only_passwords" t-value="1"/>
|
||||||
|
</t>
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<t t-if="not token">
|
||||||
|
<div class="form-group field-login">
|
||||||
|
<label for="login" class="control-label">Your Email</label>
|
||||||
|
<input type="text" name="login" t-att-value="login" id="login" class="form-control"
|
||||||
|
autofocus="autofocus" required="required"/>
|
||||||
|
</div>
|
||||||
|
</t>
|
||||||
|
|
||||||
|
<p class="alert alert-danger" t-if="error">
|
||||||
|
<t t-esc="error"/>
|
||||||
|
</p>
|
||||||
|
<input type="hidden" name="redirect" t-att-value="redirect"/>
|
||||||
|
<input type="hidden" name="token" t-att-value="token"/>
|
||||||
|
<div class="clearfix oe_login_buttons">
|
||||||
|
<a href="/web/login" class="btn btn-link pull-right">Back to Login</a>
|
||||||
|
<button type="submit" class="btn btn-primary pull-left">Reset password</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
</t>
|
</t>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|
|
@ -45,9 +45,8 @@ class Website(openerp.addons.web.controllers.main.Home):
|
||||||
|
|
||||||
@http.route(website=True, auth="public", multilang=True)
|
@http.route(website=True, auth="public", multilang=True)
|
||||||
def web_login(self, *args, **kw):
|
def web_login(self, *args, **kw):
|
||||||
response = super(Website, self).web_login(*args, **kw)
|
# TODO: can't we just put auth=public, ... in web client ?
|
||||||
response.qcontext['disable_footer'] = True
|
return super(Website, self).web_login(*args, **kw)
|
||||||
return response
|
|
||||||
|
|
||||||
@http.route('/page/<page:page>', type='http', auth="public", website=True, multilang=True)
|
@http.route('/page/<page:page>', type='http', auth="public", website=True, multilang=True)
|
||||||
def page(self, page, **opt):
|
def page(self, page, **opt):
|
||||||
|
@ -383,7 +382,6 @@ class Website(openerp.addons.web.controllers.main.Home):
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
# Server actions
|
# Server actions
|
||||||
#------------------------------------------------------
|
#------------------------------------------------------
|
||||||
|
|
||||||
@http.route('/website/action/<path_or_xml_id_or_id>', type='http', auth="public", website=True)
|
@http.route('/website/action/<path_or_xml_id_or_id>', type='http', auth="public", website=True)
|
||||||
def actions_server(self, path_or_xml_id_or_id, **post):
|
def actions_server(self, path_or_xml_id_or_id, **post):
|
||||||
cr, uid, context = request.cr, request.uid, request.context
|
cr, uid, context = request.cr, request.uid, request.context
|
||||||
|
|
Loading…
Reference in New Issue