diff --git a/addons/website_membership/__init__.py b/addons/website_membership/__init__.py index ee5959455ad..9f86759e32b 100644 --- a/addons/website_membership/__init__.py +++ b/addons/website_membership/__init__.py @@ -1 +1,2 @@ import controllers +import models diff --git a/addons/website_membership/__openerp__.py b/addons/website_membership/__openerp__.py index 40b92a8ed13..0f93b6f7a94 100644 --- a/addons/website_membership/__openerp__.py +++ b/addons/website_membership/__openerp__.py @@ -10,7 +10,11 @@ Website for browsing Associations, Groups and Memberships """, 'author': 'OpenERP SA', 'depends': ['website_partner', 'website_google_map', 'association'], - 'data': ['views/website_membership.xml',], + 'data': [ + 'views/website_membership.xml', + 'security/ir.model.access.csv', + 'security/website_membership.xml', + ], 'demo': ['demo/membership.xml'], 'qweb': ['static/src/xml/*.xml'], 'installable': True, diff --git a/addons/website_membership/controllers/main.py b/addons/website_membership/controllers/main.py index 07ff765e647..74b719c9e57 100644 --- a/addons/website_membership/controllers/main.py +++ b/addons/website_membership/controllers/main.py @@ -27,15 +27,12 @@ class WebsiteMembership(http.Controller): post_country_id = int(post.get('country_id', '0')) # base domain for groupby / searches - if request.context['is_public_user']: - base_line_domain = [('partner.website_published', '=', True)] - else: - base_line_domain = [(1, '=', 1)] + base_line_domain = [(1, '=', 1)] if membership_id: base_line_domain += [('membership_id', '=', membership_id)] - membership = product_obj.browse(cr, openerp.SUPERUSER_ID, membership_id, context=context) + membership = product_obj.browse(cr, uid, membership_id, context=context) else: - membership = '' + membership = None if post_name: base_line_domain += ['|', ('partner.name', 'ilike', "%%%s%%" % post_name), ('partner.website_description', 'ilike', "%%%s%%" % post_name)] @@ -62,8 +59,8 @@ class WebsiteMembership(http.Controller): # format domain for group_by and memberships membership_domain = [('membership', '=', True)] - membership_ids = product_obj.search(cr, openerp.SUPERUSER_ID, membership_domain, context=context) - memberships = product_obj.browse(cr, openerp.SUPERUSER_ID, membership_ids, context=context) + membership_ids = product_obj.search(cr, uid, membership_domain, context=context) + memberships = product_obj.browse(cr, uid, membership_ids, context=context) # request pager for lines pager = request.website.pager(url="/members/", total=len(membership_line_ids), page=page, step=self._references_per_page, scope=7, url_args=post) @@ -83,16 +80,13 @@ class WebsiteMembership(http.Controller): @website.route(['/members//'], type='http', auth="public", multilang=True) def partners_ref(self, partner_id=0, **post): partner_obj = request.registry['res.partner'] - if request.context['is_public_user']: - partner_ids = partner_obj.search(request.cr, openerp.SUPERUSER_ID, [('website_published', '=', True), ('id', '=', partner_id)], context=request.context) - else: - partner_ids = partner_obj.search(request.cr, request.uid, [('id', '=', partner_id)], context=request.context) + partner_ids = partner_obj.search(request.cr, request.uid, [('id', '=', partner_id)], context=request.context) if not partner_ids: return self.members(post) values = { 'partner_id': partner_obj.browse( - request.cr, openerp.SUPERUSER_ID, partner_ids[0], + request.cr, request.uid, partner_ids[0], context=dict(request.context, show_address=True)), } return request.website.render("website_membership.partner", values) diff --git a/addons/website_membership/demo/membership.xml b/addons/website_membership/demo/membership.xml index e6c12639526..138493f4340 100644 --- a/addons/website_membership/demo/membership.xml +++ b/addons/website_membership/demo/membership.xml @@ -6,5 +6,14 @@ + + + + + + + + + diff --git a/addons/website_membership/models/__init__.py b/addons/website_membership/models/__init__.py new file mode 100644 index 00000000000..926e5cf4638 --- /dev/null +++ b/addons/website_membership/models/__init__.py @@ -0,0 +1 @@ +import product diff --git a/addons/website_membership/models/product.py b/addons/website_membership/models/product.py new file mode 100644 index 00000000000..c45a7a568a5 --- /dev/null +++ b/addons/website_membership/models/product.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2013-Today OpenERP SA (). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import osv, fields + +class product_template(osv.Model): + _inherit = 'product.template' + + _columns = { + 'website_published': fields.boolean('Available in the website'), + } + _defaults = { + 'website_published': False, + } diff --git a/addons/website_membership/security/ir.model.access.csv b/addons/website_membership/security/ir.model.access.csv new file mode 100644 index 00000000000..5df155e1f1a --- /dev/null +++ b/addons/website_membership/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_membership_product_product_public,event.product.product.public,product.model_product_product,base.group_public,1,0,0,0 \ No newline at end of file diff --git a/addons/website_membership/security/website_membership.xml b/addons/website_membership/security/website_membership.xml new file mode 100644 index 00000000000..345b7f9392a --- /dev/null +++ b/addons/website_membership/security/website_membership.xml @@ -0,0 +1,25 @@ + + + + + Product membership: Public + + [('website_published', '=', True), ('membership', '=', True)] + + + + + + + + Membership line: Public + + [('partner.website_published', '=', True)] + + + + + + + +