@openerpweb.jsonrequest
def list_providers(self, req, dbname):
- registry = openerp.modules.registry.RegistryManager.get(dbname)
- with registry.cursor() as cr:
- providers = registry.get('auth.oauth.provider')
- l = providers.read(cr, SUPERUSER_ID, providers.search(cr, SUPERUSER_ID, [('enabled','=',True)]))
+ try:
+ registry = openerp.modules.registry.RegistryManager.get(dbname)
+ with registry.cursor() as cr:
+ providers = registry.get('auth.oauth.provider')
+ l = providers.read(cr, SUPERUSER_ID, providers.search(cr, SUPERUSER_ID, [('enabled','=',True)]))
+ except Exception:
+ l = []
return l
@openerpweb.httprequest
font: white;
}
-.zocial.openerp:before {
+.openerp .zocial.openerp:before {
content: "\E02E";
font-style: italic;
text-shadow: 0 1px 1px black;
}
-a.zocial.openerp {
+.openerp a.zocial.openerp {
float: right;
border: 1px solid #222222;
color: white;
text-shadow: none;
font-weight: normal;
}
+
+.openerp .oe_login .oe_oauth_provider_login_button {
+ margin-top: 4px;
+}
openerp.auth_oauth = function(instance) {
var QWeb = instance.web.qweb;
- instance.web.Login = instance.web.Login.extend({
+ instance.web.Login.include({
start: function(parent, params) {
+ var self = this;
var d = this._super.apply(this, arguments);
this.$el.on('click', 'a.zocial', this.on_oauth_sign_in);
this.oauth_providers = [];
} else if(this.params.oauth_error === 2) {
this.do_warn("Authentication error","");
}
- return d.then(this.do_oauth_load);
+ return d.then(this.do_oauth_load).fail(function() {
+ self.do_oauth_load([]);
+ });
+ },
+ on_db_loaded: function(result) {
+ this._super.apply(this, arguments);
+ this.$("form [name=db]").change(this.do_oauth_load);
},
do_oauth_load: function() {
var db = this.$("form [name=db]").val();
},
on_oauth_loaded: function(result) {
this.oauth_providers = result;
+ this.$('.oe_oauth_provider_login_button').remove();
var buttons = QWeb.render("auth_oauth.Login.button",{"widget":this});
this.$(".oe_login_pane form ul").after(buttons);
},
var state_object = {
d: dbname,
p: p.id
- }
+ };
var state = JSON.stringify(state_object);
var params = {
response_type: 'token',
<templates id="template" xml:space="preserve">
<t t-name="auth_oauth.Login.button">
<t t-foreach="widget.oauth_providers" t-as="p">
- <a href="#" t-att-class="p.css_class" t-att-data-index="p_index"><t t-esc="p.body"/></a>
- <br/>
+ <a href="#" t-attf-class="oe_oauth_provider_login_button #{p.css_class}" t-att-data-index="p_index"><t t-esc="p.body"/></a>
</t>
</t>
</templates>