Menu validator fails on register absence item #224

Closed
opened 2022-08-28 12:10:55 +02:00 by hansegucker · 4 comments
Owner
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/django/middleware.py", line 175, in __call__
    return f(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/django/utils/deprecation.py", line 117, in __call__
    response = response or self.get_response(request)
  File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 49, in inner
    response = response_for_exception(request, exc)
  File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 114, in response_for_exception
    response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info())
  File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 153, in handle_uncaught_exception
    return callback(request)
  File "/usr/local/lib/python3.10/dist-packages/aleksis/core/views.py", line 1421, in server_error
    return HttpResponseServerError(template.render(context))
  File "/usr/local/lib/python3.10/dist-packages/django/template/backends/django.py", line 61, in render
    return self.template.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 170, in render
    return self._render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/loader_tags.py", line 150, in render
    return compiled_parent._render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/defaulttags.py", line 315, in render
    return nodelist.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/loader_tags.py", line 195, in render
    return template.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 172, in render
    return self._render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/test/utils.py", line 100, in instrumented_test_render
    return self.nodelist.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render
    bit = node.render_annotated(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated
    return self.render(context)
  File "/usr/local/lib/python3.10/dist-packages/django/template/library.py", line 192, in render
    output = self.func(*resolved_args, **resolved_kwargs)
  File "/usr/local/lib/python3.10/dist-packages/menu_generator/templatetags/menu_generator.py", line 31, in get_menu
    return generate_menu(context['request'], menu_list)
  File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 188, in __call__
    return self.generate_menu(list_dict)
  File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 173, in generate_menu
    item['submenu'] = self._get_submenu_list(item)
  File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 151, in _get_submenu_list
    submenu = self.generate_menu(submenu)
  File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 170, in generate_menu
    for item in self._get_menu_list(list_dict):
  File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 162, in _get_menu_list
    if self._is_validated(item):
  File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 52, in _is_validated
    result_validations.append(func(self.request, *args))
  File "/usr/local/lib/python3.10/dist-packages/aleksis/core/util/predicates.py", line 23, in permission_validator
    return request.user.has_perm(perm)
  File "/usr/local/lib/python3.10/dist-packages/django/contrib/auth/models.py", line 300, in has_perm
    return _user_has_perm(self, perm, obj)
  File "/usr/local/lib/python3.10/dist-packages/django/contrib/auth/models.py", line 210, in _user_has_perm
    if backend.has_perm(user, perm, obj):
  File "/usr/local/lib/python3.10/dist-packages/rules/permissions.py", line 31, in has_perm
    return has_perm(perm, user, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/rules/permissions.py", line 23, in has_perm
    return permissions.test_rule(name, *args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/rules/rulesets.py", line 6, in test_rule
    return name in self and self[name].test(*args, **kwargs)
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 172, in test
    return bool(self._apply(*args))
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 235, in _apply
    result = self.fn(*callargs)
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 178, in AND
    return self._combine(other, operator.and_, args)
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 216, in _combine
    other_result = other._apply(*args)
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 235, in _apply
    result = self.fn(*callargs)
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 184, in OR
    return self._combine(other, operator.or_, args)
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 216, in _combine
    other_result = other._apply(*args)
  File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 235, in _apply
    result = self.fn(*callargs)
  File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/alsijil/util/predicates.py", line 137, in fn
    groups = use_prefetched(obj, "member_of")
  File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/alsijil/util/predicates.py", line 112, in use_prefetched
    return getattr(obj, attr).all()
AttributeError: 'NoneType' object has no attribute 'member_of'
``` Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 47, in inner response = get_response(request) File "/usr/local/lib/python3.10/dist-packages/sentry_sdk/integrations/django/middleware.py", line 175, in __call__ return f(*args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/django/utils/deprecation.py", line 117, in __call__ response = response or self.get_response(request) File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 49, in inner response = response_for_exception(request, exc) File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 114, in response_for_exception response = handle_uncaught_exception(request, get_resolver(get_urlconf()), sys.exc_info()) File "/usr/local/lib/python3.10/dist-packages/django/core/handlers/exception.py", line 153, in handle_uncaught_exception return callback(request) File "/usr/local/lib/python3.10/dist-packages/aleksis/core/views.py", line 1421, in server_error return HttpResponseServerError(template.render(context)) File "/usr/local/lib/python3.10/dist-packages/django/template/backends/django.py", line 61, in render return self.template.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 170, in render return self._render(context) File "/usr/local/lib/python3.10/dist-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/loader_tags.py", line 150, in render return compiled_parent._render(context) File "/usr/local/lib/python3.10/dist-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/defaulttags.py", line 315, in render return nodelist.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/loader_tags.py", line 195, in render return template.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 172, in render return self._render(context) File "/usr/local/lib/python3.10/dist-packages/django/test/utils.py", line 100, in instrumented_test_render return self.nodelist.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 938, in render bit = node.render_annotated(context) File "/usr/local/lib/python3.10/dist-packages/django/template/base.py", line 905, in render_annotated return self.render(context) File "/usr/local/lib/python3.10/dist-packages/django/template/library.py", line 192, in render output = self.func(*resolved_args, **resolved_kwargs) File "/usr/local/lib/python3.10/dist-packages/menu_generator/templatetags/menu_generator.py", line 31, in get_menu return generate_menu(context['request'], menu_list) File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 188, in __call__ return self.generate_menu(list_dict) File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 173, in generate_menu item['submenu'] = self._get_submenu_list(item) File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 151, in _get_submenu_list submenu = self.generate_menu(submenu) File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 170, in generate_menu for item in self._get_menu_list(list_dict): File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 162, in _get_menu_list if self._is_validated(item): File "/usr/local/lib/python3.10/dist-packages/menu_generator/menu.py", line 52, in _is_validated result_validations.append(func(self.request, *args)) File "/usr/local/lib/python3.10/dist-packages/aleksis/core/util/predicates.py", line 23, in permission_validator return request.user.has_perm(perm) File "/usr/local/lib/python3.10/dist-packages/django/contrib/auth/models.py", line 300, in has_perm return _user_has_perm(self, perm, obj) File "/usr/local/lib/python3.10/dist-packages/django/contrib/auth/models.py", line 210, in _user_has_perm if backend.has_perm(user, perm, obj): File "/usr/local/lib/python3.10/dist-packages/rules/permissions.py", line 31, in has_perm return has_perm(perm, user, *args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/rules/permissions.py", line 23, in has_perm return permissions.test_rule(name, *args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/rules/rulesets.py", line 6, in test_rule return name in self and self[name].test(*args, **kwargs) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 172, in test return bool(self._apply(*args)) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 235, in _apply result = self.fn(*callargs) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 178, in AND return self._combine(other, operator.and_, args) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 216, in _combine other_result = other._apply(*args) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 235, in _apply result = self.fn(*callargs) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 184, in OR return self._combine(other, operator.or_, args) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 216, in _combine other_result = other._apply(*args) File "/usr/local/lib/python3.10/dist-packages/rules/predicates.py", line 235, in _apply result = self.fn(*callargs) File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/alsijil/util/predicates.py", line 137, in fn groups = use_prefetched(obj, "member_of") File "/usr/local/lib/python3.10/dist-packages/aleksis/apps/alsijil/util/predicates.py", line 112, in use_prefetched return getattr(obj, attr).all() AttributeError: 'NoneType' object has no attribute 'member_of' ```
Author
Owner

assigned to @hansegucker

assigned to @hansegucker
Author
Owner

created branch 224-menu-validator-fails-on-register-absence-item to address this issue

created branch [`224-menu-validator-fails-on-register-absence-item`](/AlekSIS/official/AlekSIS-App-Alsijil/-/compare/master...224-menu-validator-fails-on-register-absence-item) to address this issue
Author
Owner

mentioned in merge request !689

mentioned in merge request !689
nik closed this issue 2022-08-28 22:26:48 +02:00
Owner

mentioned in commit 5c8fe4557c

mentioned in commit 5c8fe4557c05b450f7fa43bfb7f44bfd5d75c38a
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
aleksis/AlekSIS-App-Alsijil#224
No description provided.