[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:
Kishan Gajjar
2016-12-01 16:32:01 +01:00
committed by Yannick Tivisse
parent 92929ec6a7
commit 167057800b
5 changed files with 24 additions and 10 deletions
+1
View File
@@ -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>
+5
View File
@@ -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()