[IMP] web,website: Only display planner for group_system users
Planners should only be visible for "base.group_system" user group (admin settings) because there are links to install apps etc. For now missing access rights messages whenever you click a settings link.Only for admin and not by company. Admin and the user who has "base.group_system" rights can see the planners.
This commit is contained in:
committed by
Yannick Tivisse
parent
92929ec6a7
commit
167057800b
@@ -25,6 +25,7 @@ class Http(models.AbstractModel):
|
||||
return {
|
||||
"session_id": request.session.sid,
|
||||
"uid": request.session.uid,
|
||||
"is_system": request.env.user._is_system(),
|
||||
"is_admin": request.env.user.has_group('base.group_system'),
|
||||
"is_superuser": request.env.user._is_superuser(),
|
||||
"user_context": request.session.get_context() if request.session.uid else {},
|
||||
|
||||
@@ -5,6 +5,7 @@ var core = require('web.core');
|
||||
var Model = require('web.Model');
|
||||
var SystrayMenu = require('web.SystrayMenu');
|
||||
var planner = require('web.planner.common');
|
||||
var session = require('web.session');
|
||||
|
||||
var PlannerLauncher = planner.PlannerLauncher.extend({
|
||||
start: function() {
|
||||
@@ -33,7 +34,9 @@ var PlannerLauncher = planner.PlannerLauncher.extend({
|
||||
},
|
||||
});
|
||||
|
||||
SystrayMenu.Items.push(PlannerLauncher);
|
||||
if (session.is_system) {
|
||||
SystrayMenu.Items.push(PlannerLauncher);
|
||||
}
|
||||
|
||||
return {
|
||||
PlannerLauncher: PlannerLauncher,
|
||||
|
||||
@@ -5,6 +5,7 @@ var ajax = require('web.ajax');
|
||||
var core = require('web.core');
|
||||
var Model = require('web.Model');
|
||||
var planner = require('web.planner.common');
|
||||
var session = require('web.session');
|
||||
var website = require('website.website');
|
||||
|
||||
var qweb = core.qweb;
|
||||
@@ -20,13 +21,16 @@ var WebsitePlannerLauncher = planner.PlannerLauncher.extend({
|
||||
},
|
||||
});
|
||||
|
||||
website.TopBar.include({
|
||||
start: function () {
|
||||
var websitePlannerLauncher = new WebsitePlannerLauncher();
|
||||
var def = ajax.loadXML('/web_planner/static/src/xml/web_planner.xml', qweb).then((function() {
|
||||
return websitePlannerLauncher.prependTo(this.$(".o_menu_systray"));
|
||||
}).bind(this));
|
||||
return $.when(this._super.apply(this, arguments), def);
|
||||
},
|
||||
});
|
||||
if (session.is_system) {
|
||||
website.TopBar.include({
|
||||
start: function () {
|
||||
var websitePlannerLauncher = new WebsitePlannerLauncher();
|
||||
var def = ajax.loadXML('/web_planner/static/src/xml/web_planner.xml', qweb).then((function() {
|
||||
return websitePlannerLauncher.prependTo(this.$(".o_menu_systray"));
|
||||
}).bind(this));
|
||||
return $.when(this._super.apply(this, arguments), def);
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
@@ -124,6 +124,7 @@
|
||||
<script type="text/javascript">
|
||||
odoo.session_info = {
|
||||
is_superuser: <t t-esc="json.dumps(request.env.user._is_superuser())"/>,
|
||||
is_system: <t t-esc="json.dumps(request.env.user._is_system())"/>,
|
||||
is_frontend: true,
|
||||
};
|
||||
</script>
|
||||
|
||||
@@ -565,6 +565,11 @@ class Users(models.Model):
|
||||
# for a few places explicitly clearing the has_group cache
|
||||
has_group.clear_cache = _has_group.clear_cache
|
||||
|
||||
@api.multi
|
||||
def _is_system(self):
|
||||
self.ensure_one()
|
||||
return self.has_group('base.group_system')
|
||||
|
||||
@api.multi
|
||||
def _is_admin(self):
|
||||
self.ensure_one()
|
||||
|
||||
Reference in New Issue
Block a user