Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • cubicweb cubicweb
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 153
    • Issues 153
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 12
    • Merge requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • cubicwebcubicweb
  • cubicwebcubicweb
  • Issues
  • #324
Closed
Open
Issue created Jun 03, 2021 by Katia Saurfelt@ksaurfeltMaintainer

[reledit] : bug dans le calcul des permissions pour les relations pour l'affichage de la form reledit

la méthode _should_edit_relation qui décide si le formulaire de reledit doit ou pas être affiché, ser pase sur la méthode cubicweb.schema.CubicWebRelationSchema.has_perm qui va, entre autre, essayer de satifaire toutes les rql expressions dans les permissions.

Dans le cas de némo, nous avons les permissions

    in_water_set = SubjectRelation('WaterSet', cardinality='1*',
                                   composite='object', inlined=True,
                                   __permissions__=rperms('O'))

où

def rperms(var, read=('managers', 'users')):
    return {
        'read': read,
        'add': ('managers',
                RRQLExpression('U has_update_permission {}'.format(var))),
        'delete': ('managers',
                   RRQLExpression('U has_delete_permission {}'.format(var))),
    }

Cette expression va générée une rql de type Any O,U WHERE U has_update_permission O, O eid %(o)s, U eid %(u)s qui ne sera pas satisfaite car l'eid de l'objet ne sera pas fournit par reledit.

Il faut donc trouver un autre moins de vérifier les permissions pour reledit

Edited Jun 03, 2021 by Katia Saurfelt
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking