Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[HOME] Statistiques générales sur la HOME et permissions #3166

Open
edelclaux opened this issue Aug 23, 2024 · 1 comment
Open

[HOME] Statistiques générales sur la HOME et permissions #3166

edelclaux opened this issue Aug 23, 2024 · 1 comment
Assignees
Labels
Milestone

Comments

@edelclaux
Copy link
Contributor

edelclaux commented Aug 23, 2024

Version
develop

Description du bug
La route general_stats de la synthèse a une erreur lors de la vérification du scope des permissions

  1. La route s’appuie sur le décorateur permissions_required
@permissions_required("R", module_code="SYNTHESE")
  1. Ce décorateur renvoit une liste de permissions, dans la variable permissions
def general_stats(permissions):
  1. Cette variable est passée en paramètre à la méthode filter_query_with_cruved
synthese_query_obj.filter_query_with_cruved(g.current_user, permissions)
  1. La méthode filter_query_with_cruved attend un scope en paramètre. La variable permissions est interprétée comme un scope
def filter_query_with_cruved(self, user, scope):
  1. Le scope est appliqué s'il vaut 1 ou 2. Comme il vaut "list de permission", la fonction ne rentre jamais dans le bloc.
if scope in (1, 2):
  1. Hop, on a les stats calculées sur toutes les données, hors scope.
    image
    image

Suggestion de solution
On peut s'appuyer sur le décorateur

@permissions.check_cruved_scope("R", get_scope=True, module_code="SYNTHESE")

image

@edelclaux edelclaux added the bug label Aug 23, 2024
@edelclaux
Copy link
Contributor Author

Ou alors utiliser:

  def filter_query_with_permissions(self, user, permissions):
      """
      Filter the query with the permissions of a user
      """
      where_clause = self.build_permissions_filter(user=user, permissions=permissions)
      self.query = self.query.where(where_clause)

@jacquesfize jacquesfize self-assigned this Oct 9, 2024
@jacquesfize jacquesfize added this to the 2.15 milestone Oct 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants