mirror of
https://github.com/OCA/knowledge.git
synced 2025-07-25 01:48:41 -06:00
[document_page_approval] FIX BUG: am_i_approver was being run as sudo(), hence always giving the user Approving rights.
This commit is contained in:
parent
3a142e7ba2
commit
503e12ae48
@ -105,14 +105,17 @@ class DocumentPage(models.Model):
|
|||||||
# if it's not required, anyone can approve
|
# if it's not required, anyone can approve
|
||||||
if not self.is_approval_required:
|
if not self.is_approval_required:
|
||||||
return True
|
return True
|
||||||
# to approve, you must have approver rights
|
# if user belongs to 'Knowledge / Manager', he can approve anything
|
||||||
approver_group_id = self.env.ref(
|
if user.has_group('document_page.group_document_manager'):
|
||||||
'document_page_approval.group_document_approver_user')
|
return True
|
||||||
if approver_group_id not in user.groups_id:
|
# to approve, user must have approver rights
|
||||||
|
if not user.has_group(
|
||||||
|
'document_page_approval.group_document_approver_user'):
|
||||||
return False
|
return False
|
||||||
# and belong to at least one of the approver_groups (if any is set)
|
# if there aren't any approver_groups_defined, user can approve
|
||||||
if not self.approver_group_ids:
|
if not self.approver_group_ids:
|
||||||
return True
|
return True
|
||||||
|
# to approve, user must belong to any of the approver groups
|
||||||
return len(user.groups_id & self.approver_group_ids) > 0
|
return len(user.groups_id & self.approver_group_ids) > 0
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
|
@ -41,7 +41,8 @@ class DocumentPageHistory(models.Model):
|
|||||||
)
|
)
|
||||||
|
|
||||||
am_i_approver = fields.Boolean(
|
am_i_approver = fields.Boolean(
|
||||||
compute='_compute_am_i_approver'
|
related='page_id.am_i_approver',
|
||||||
|
related_sudo=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
page_url = fields.Text(
|
page_url = fields.Text(
|
||||||
@ -151,13 +152,6 @@ class DocumentPageHistory(models.Model):
|
|||||||
for rec in self:
|
for rec in self:
|
||||||
rec.am_i_owner = (rec.create_uid == self.env.user)
|
rec.am_i_owner = (rec.create_uid == self.env.user)
|
||||||
|
|
||||||
@api.multi
|
|
||||||
def _compute_am_i_approver(self):
|
|
||||||
"""check if current user is a approver"""
|
|
||||||
for rec in self:
|
|
||||||
rec.am_i_approver = rec.page_id.can_user_approve_this_page(
|
|
||||||
self.env.user)
|
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def _compute_page_url(self):
|
def _compute_page_url(self):
|
||||||
"""Compute the page url."""
|
"""Compute the page url."""
|
||||||
|
Loading…
Reference in New Issue
Block a user