8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-12-23 15:33:45 +00:00

Fix can_view_app

This commit is contained in:
Hugo Levy-Falk 2020-08-28 21:53:10 +01:00 committed by klafyvel
parent b4ca715695
commit 2690a021d0
9 changed files with 27 additions and 21 deletions

View file

@ -56,7 +56,7 @@ def _create_api_permission():
_create_api_permission() _create_api_permission()
def can_view(user): def can_view(user, *args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args:

View file

@ -28,7 +28,7 @@ Here are defined some functions to check acl on the application.
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
def can_view(user): def can_view(user, *args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args:

View file

@ -28,7 +28,7 @@ Here are defined some functions to check acl on the application.
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
def can_view(user): def can_view(user, *args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args:
@ -41,7 +41,6 @@ def can_view(user):
can = user.has_module_perms("admin") can = user.has_module_perms("admin")
return ( return (
can, can,
None if can else _("You don't have the right to view this" None if can else _("You don't have the right to view this" " application."),
" application."), ("logs",),
"admin",
) )

View file

@ -28,7 +28,7 @@ Here are defined some functions to check acl on the application.
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
def can_view(user): def can_view(user, *args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args:
@ -41,7 +41,6 @@ def can_view(user):
can = user.has_module_perms("machines") can = user.has_module_perms("machines")
return ( return (
can, can,
None if can else _("You don't have the right to view this" None if can else _("You don't have the right to view this" " application."),
" application."),
("machines",), ("machines",),
) )

View file

@ -28,7 +28,7 @@ Here are defined some functions to check acl on the application.
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
def can_view(user): def can_view(user, *args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args:
@ -41,7 +41,6 @@ def can_view(user):
can = user.has_module_perms("preferences") can = user.has_module_perms("preferences")
return ( return (
can, can,
None if can else _("You don't have the right to view this" None if can else _("You don't have the right to view this" " application."),
" application."),
("preferences",), ("preferences",),
) )

View file

@ -38,7 +38,7 @@ from __future__ import unicode_literals
from django.utils import timezone from django.utils import timezone
from django.db.models import Q from django.db.models import Q
from django.contrib.auth.models import Permission from django.contrib.auth.models import Permission, Group
from cotisations.models import Cotisation, Facture, Vente from cotisations.models import Cotisation, Facture, Vente
from machines.models import Interface, Machine from machines.models import Interface, Machine
@ -58,11 +58,20 @@ def get_group_having_permission(*permission_name):
""" """
groups = set() groups = set()
for name in permission_name: for name in permission_name:
if "." in name:
app_label, codename = name.split(".") app_label, codename = name.split(".")
permission = Permission.objects.get( permission = Permission.objects.get(
content_type__app_label=app_label, codename=codename content_type__app_label=app_label, codename=codename
) )
groups = groups.union(permission.group_set.all()) groups = groups.union(permission.group_set.all())
else:
groups = groups.union(
Group.objects.filter(
permissions__in=Permission.objects.filter(
content_type__app_label="users"
)
).distinct()
)
return groups return groups

View file

@ -27,7 +27,7 @@ Here are defined some functions to check acl on the application.
""" """
def can_view(_user): def can_view(*args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args:

View file

@ -28,7 +28,7 @@ Here are defined some functions to check acl on the application.
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
def can_view(user): def can_view(user, *args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args:

View file

@ -28,7 +28,7 @@ Here are defined some functions to check acl on the application.
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
def can_view(user): def can_view(user, *args, **kwargs):
"""Check if an user can view the application. """Check if an user can view the application.
Args: Args: