forked from Techsystech/web
[IMP] web_disable_export_group: black, isort, prettier
parent
c3e58222e0
commit
429fae3670
|
@ -2,20 +2,13 @@
|
||||||
# Copyright 2018 Tecnativa - David Vidal
|
# Copyright 2018 Tecnativa - David Vidal
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||||||
{
|
{
|
||||||
'name': 'Web Disable Export Group',
|
"name": "Web Disable Export Group",
|
||||||
'version': '12.0.1.0.0',
|
"version": "12.0.1.0.0",
|
||||||
'license': 'AGPL-3',
|
"license": "AGPL-3",
|
||||||
'author': 'Onestein, '
|
"author": "Onestein, " "Tecnativa, " "Odoo Community Association (OCA)",
|
||||||
'Tecnativa, '
|
"website": "https://github.com/OCA/web",
|
||||||
'Odoo Community Association (OCA)',
|
"category": "Web",
|
||||||
'website': 'https://github.com/OCA/web',
|
"depends": ["web",],
|
||||||
'category': 'Web',
|
"data": ["security/groups.xml", "templates/assets.xml",],
|
||||||
'depends': [
|
"installable": True,
|
||||||
'web',
|
|
||||||
],
|
|
||||||
'data': [
|
|
||||||
'security/groups.xml',
|
|
||||||
'templates/assets.xml',
|
|
||||||
],
|
|
||||||
'installable': True,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,13 +6,15 @@ from odoo.http import request
|
||||||
|
|
||||||
|
|
||||||
class Http(models.AbstractModel):
|
class Http(models.AbstractModel):
|
||||||
_inherit = 'ir.http'
|
_inherit = "ir.http"
|
||||||
|
|
||||||
def session_info(self):
|
def session_info(self):
|
||||||
res = super(Http, self).session_info()
|
res = super(Http, self).session_info()
|
||||||
user = request.env.user
|
user = request.env.user
|
||||||
res.update({
|
res.update(
|
||||||
'group_export_data': user and user.has_group(
|
{
|
||||||
'web_disable_export_group.group_export_data'),
|
"group_export_data": user
|
||||||
})
|
and user.has_group("web_disable_export_group.group_export_data"),
|
||||||
|
}
|
||||||
|
)
|
||||||
return res
|
return res
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<!-- Copyright 2016 Onestein
|
<!-- Copyright 2016 Onestein
|
||||||
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).-->
|
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).-->
|
||||||
<odoo>
|
<odoo>
|
||||||
|
|
||||||
<record id="group_export_data" model="res.groups">
|
<record id="group_export_data" model="res.groups">
|
||||||
<field name="name">Export Data</field>
|
<field name="name">Export Data</field>
|
||||||
<field name="users" eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"/>
|
<field
|
||||||
|
name="users"
|
||||||
|
eval="[(4, ref('base.user_root')), (4, ref('base.user_admin'))]"
|
||||||
|
/>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
Copyright 2018 Tecnativa - David Vidal
|
Copyright 2018 Tecnativa - David Vidal
|
||||||
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
|
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl). */
|
||||||
odoo.define("web_disable_export_group", function(require) {
|
odoo.define("web_disable_export_group", function(require) {
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var core = require("web.core");
|
var core = require("web.core");
|
||||||
var Sidebar = require("web.Sidebar");
|
var Sidebar = require("web.Sidebar");
|
||||||
|
@ -10,10 +10,15 @@ odoo.define("web_disable_export_group", function(require) {
|
||||||
var _t = core._t;
|
var _t = core._t;
|
||||||
|
|
||||||
Sidebar.include({
|
Sidebar.include({
|
||||||
_addItems: function (sectionCode, items) {
|
_addItems: function(sectionCode, items) {
|
||||||
var _items = items;
|
var _items = items;
|
||||||
if (!session.is_superuser && sectionCode === 'other' && items.length && !session.group_export_data) {
|
if (
|
||||||
_items = _.reject(_items, {label:_t("Export")});
|
!session.is_superuser &&
|
||||||
|
sectionCode === "other" &&
|
||||||
|
items.length &&
|
||||||
|
!session.group_export_data
|
||||||
|
) {
|
||||||
|
_items = _.reject(_items, {label: _t("Export")});
|
||||||
}
|
}
|
||||||
this._super(sectionCode, _items);
|
this._super(sectionCode, _items);
|
||||||
},
|
},
|
||||||
|
|
|
@ -1,11 +1,17 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<!-- Copyright 2016 Onestein
|
<!-- Copyright 2016 Onestein
|
||||||
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).-->
|
License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).-->
|
||||||
<odoo>
|
<odoo>
|
||||||
<template id="assets_backend" name="web_disable_export_group assets" inherit_id="web.assets_backend">
|
<template
|
||||||
|
id="assets_backend"
|
||||||
|
name="web_disable_export_group assets"
|
||||||
|
inherit_id="web.assets_backend"
|
||||||
|
>
|
||||||
<xpath expr="." position="inside">
|
<xpath expr="." position="inside">
|
||||||
<script type="text/javascript" src="/web_disable_export_group/static/src/js/disable_export_group.js"></script>
|
<script
|
||||||
|
type="text/javascript"
|
||||||
|
src="/web_disable_export_group/static/src/js/disable_export_group.js"
|
||||||
|
/>
|
||||||
</xpath>
|
</xpath>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
</odoo>
|
</odoo>
|
||||||
|
|
|
@ -2,38 +2,34 @@
|
||||||
# Copyright 2019 Alexandre Díaz - <dev@redneboa.es>
|
# Copyright 2019 Alexandre Díaz - <dev@redneboa.es>
|
||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
from mock import patch
|
|
||||||
from odoo.api import Environment
|
from odoo.api import Environment
|
||||||
from odoo.tests.common import SavepointCase
|
from odoo.tests.common import SavepointCase
|
||||||
|
|
||||||
|
from mock import patch
|
||||||
|
|
||||||
|
|
||||||
class TestDisableExportGroup(SavepointCase):
|
class TestDisableExportGroup(SavepointCase):
|
||||||
@patch('odoo.addons.base_setup.models.ir_http.request')
|
@patch("odoo.addons.base_setup.models.ir_http.request")
|
||||||
@patch('odoo.addons.web_disable_export_group.models.ir_http.request')
|
@patch("odoo.addons.web_disable_export_group.models.ir_http.request")
|
||||||
@patch('odoo.addons.web.models.ir_http.request')
|
@patch("odoo.addons.web.models.ir_http.request")
|
||||||
@patch('odoo.addons.web_tour.models.ir_http.request')
|
@patch("odoo.addons.web_tour.models.ir_http.request")
|
||||||
def test_session_info(self, request, request1, request2, request3):
|
def test_session_info(self, request, request1, request2, request3):
|
||||||
request.env = self.env
|
request.env = self.env
|
||||||
request1.env = self.env
|
request1.env = self.env
|
||||||
request2.env = self.env
|
request2.env = self.env
|
||||||
request3.env = self.env
|
request3.env = self.env
|
||||||
session_info = self.env['ir.http'].session_info()
|
session_info = self.env["ir.http"].session_info()
|
||||||
self.assertTrue(session_info['group_export_data'])
|
self.assertTrue(session_info["group_export_data"])
|
||||||
|
|
||||||
@patch('odoo.addons.base_setup.models.ir_http.request')
|
@patch("odoo.addons.base_setup.models.ir_http.request")
|
||||||
@patch('odoo.addons.web_disable_export_group.models.ir_http.request')
|
@patch("odoo.addons.web_disable_export_group.models.ir_http.request")
|
||||||
@patch('odoo.addons.web.models.ir_http.request')
|
@patch("odoo.addons.web.models.ir_http.request")
|
||||||
@patch('odoo.addons.web_tour.models.ir_http.request')
|
@patch("odoo.addons.web_tour.models.ir_http.request")
|
||||||
def test_session_info_not_allowed(self, request, request1, request2,
|
def test_session_info_not_allowed(self, request, request1, request2, request3):
|
||||||
request3):
|
demo_env = Environment(self.env.cr, self.env.ref("base.default_user").id, {})
|
||||||
demo_env = Environment(
|
|
||||||
self.env.cr,
|
|
||||||
self.env.ref('base.default_user').id,
|
|
||||||
{}
|
|
||||||
)
|
|
||||||
request.env = demo_env
|
request.env = demo_env
|
||||||
request1.env = demo_env
|
request1.env = demo_env
|
||||||
request2.env = demo_env
|
request2.env = demo_env
|
||||||
request3.env = demo_env
|
request3.env = demo_env
|
||||||
session_info = demo_env['ir.http'].session_info()
|
session_info = demo_env["ir.http"].session_info()
|
||||||
self.assertFalse(session_info['group_export_data'])
|
self.assertFalse(session_info["group_export_data"])
|
||||||
|
|
Loading…
Reference in New Issue