Maciej Wawro
5 years ago
15 changed files with 273 additions and 82 deletions
-
7galicea_environment_checkup/__init__.py
-
2galicea_environment_checkup/__manifest__.py
-
4galicea_environment_checkup/environment_checkup/__init__.py
-
2galicea_environment_checkup/environment_checkup/custom.py
-
2galicea_environment_checkup/environment_checkup/dependencies.py
-
2galicea_environment_checkup/environment_checkup/runtime.py
-
54galicea_environment_checkup/static/src/js/environment_checkup.js
-
108galicea_environment_checkup/static/src/js/environment_checkup10.js
-
2galicea_git/__manifest__.py
-
2galicea_openid_connect/__init__.py
-
6galicea_openid_connect/__manifest__.py
-
3galicea_openid_connect/api.py
-
1galicea_openid_connect/models/__init__.py
-
28galicea_openid_connect/models/config_parameter.py
-
8galicea_openid_connect/security/init.xml
@ -1,7 +1,8 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import models |
|||
from .environment_checkup.custom import custom_check |
|||
from .environment_checkup.core import CheckFail, CheckWarning, CheckSuccess |
|||
|
|||
from . import controllers |
|||
from . import models |
|||
|
|||
from environment_checkup.custom import custom_check |
|||
from environment_checkup.core import CheckFail, CheckWarning, CheckSuccess |
@ -0,0 +1,4 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from . import core |
|||
from . import custom |
@ -0,0 +1,108 @@ |
|||
odoo.define('galicea_environment_checkup', function(require) { |
|||
"use strict"; |
|||
|
|||
var core = require('web.core'); |
|||
var form_common = require('web.form_common'); |
|||
var Widget = require('web.Widget'); |
|||
var session = require('web.session'); |
|||
var QWeb = core.qweb; |
|||
var SystrayMenu = require('web.SystrayMenu'); |
|||
var Model = require('web.Model'); |
|||
|
|||
var Users = new Model('res.users'); |
|||
|
|||
var SystrayIcon = Widget.extend({ |
|||
tagName: 'li', |
|||
events: { |
|||
"click": "on_click", |
|||
}, |
|||
|
|||
start: function(){ |
|||
this.load(this.all_dashboards); |
|||
return this._super(); |
|||
}, |
|||
|
|||
load: function(dashboards){ |
|||
var self = this; |
|||
var loading_done = new $.Deferred(); |
|||
Users.call('has_group', ['base.group_erp_manager']).then(function(is_admin) { |
|||
if (is_admin) { |
|||
session.rpc('/galicea_environment_checkup/data', {}) |
|||
.then(function (data) { |
|||
var counts = { 'success': 0, 'warning': 0, 'fail': 0 }; |
|||
data.forEach(function (check) { ++counts[check.result]; }); |
|||
|
|||
var result; |
|||
if (counts['fail']) { |
|||
result = 'fail'; |
|||
} else if (counts['warning']) { |
|||
result = 'warning'; |
|||
} else { |
|||
result = 'success'; |
|||
} |
|||
|
|||
self.replaceElement(QWeb.render('GaliceaEnvironmentCheckupIcon', { |
|||
'result': result, |
|||
'count': counts['warning'] + counts['fail'] |
|||
})); |
|||
loading_done.resolve(); |
|||
}); |
|||
} else { |
|||
loading_done.resolve(); |
|||
} |
|||
}); |
|||
|
|||
return loading_done; |
|||
}, |
|||
|
|||
on_click: function (event) { |
|||
event.preventDefault(); |
|||
this.do_action('galicea_environment_checkup.dashboard_action', {clear_breadcrumbs: true}); |
|||
}, |
|||
}); |
|||
|
|||
SystrayMenu.Items.push(SystrayIcon); |
|||
|
|||
var Dashboard = Widget.extend({ |
|||
start: function(){ |
|||
return this.load(this.all_dashboards); |
|||
}, |
|||
|
|||
load: function(dashboards) { |
|||
var self = this; |
|||
var loading_done = new $.Deferred(); |
|||
session.rpc('/galicea_environment_checkup/data', {}) |
|||
.then(function (data) { |
|||
self.replaceElement(QWeb.render('GaliceaEnvironmentCheckupDashboard', {'data': data})); |
|||
loading_done.resolve(); |
|||
}); |
|||
return loading_done; |
|||
}, |
|||
}); |
|||
|
|||
core.action_registry.add('galicea_environment_checkup.dashboard', Dashboard); |
|||
|
|||
var FormWidget = form_common.AbstractField.extend({ |
|||
init: function() { |
|||
this._super.apply(this, arguments); |
|||
this.set("value", "[]"); |
|||
}, |
|||
|
|||
render_value: function() { |
|||
var data = JSON.parse(this.get('value')); |
|||
if (data.length == 0) { |
|||
this.replaceElement('<div />'); |
|||
return; |
|||
} |
|||
this.replaceElement(QWeb.render('GaliceaEnvironmentCheckupFormWidget', {'data': data})); |
|||
}, |
|||
}); |
|||
|
|||
core.form_widget_registry.add('environment_checks', FormWidget); |
|||
|
|||
return { |
|||
SystrayIcon: SystrayIcon, |
|||
Dashboard: Dashboard, |
|||
FormWidget: FormWidget |
|||
}; |
|||
}); |
@ -0,0 +1,28 @@ |
|||
# -*- coding: utf-8 -*- |
|||
|
|||
from odoo import models, fields, api |
|||
from .. import random_tokens |
|||
try: |
|||
from jwcrypto import jwk |
|||
except ImportError: |
|||
pass |
|||
|
|||
class ConfigParameter(models.Model): |
|||
_inherit = 'ir.config_parameter' |
|||
|
|||
@api.model |
|||
def openid_init_keys(self): |
|||
keys = { |
|||
'galicea_openid_connect.authorization_code_jwk': lambda: \ |
|||
jwk.JWK.generate(kty='oct', size=256, kid=random_tokens.alpha_numeric(16), use='sig', alg='HS256').export(), |
|||
'galicea_openid_connect.id_token_jwk': lambda: \ |
|||
jwk.JWK.generate(kty='RSA', size=2054, kid=random_tokens.alpha_numeric(16), use='sig', alg='RS256').export() |
|||
} |
|||
|
|||
for key, gen in iter(keys.items()): |
|||
if not self.search([('key', '=', key)]): |
|||
self.create({ |
|||
'key': key, |
|||
'value': gen(), |
|||
'group_ids': [(4, self.env.ref('base.group_erp_manager').id)] |
|||
}) |
@ -0,0 +1,8 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<odoo> |
|||
<data noupdate="1"> |
|||
<function model="ir.config_parameter" |
|||
name="openid_init_keys" |
|||
/> |
|||
</data> |
|||
</odoo> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue