dfunckt / django-rules

Awesome Django authorization, without the database

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Predicate parameters

Real-Gecko opened this issue · comments

Is there a way to create predicate with parameters?
For example:

#rules.py

import rules

@rules.predicate
def role_is(user, role_id):
    return user.role.id == role_id

rules.add_perm('reports.view_report_abc', role_is(12))
rules.add_perm('reports.view_report_xyz', role_is(13))
#rules.py

import rules

def role_is(role_id):
  @rules.predicate
  def user_has_role(user,):
    return user.role.id == role_id
  return user_has_role

rules.add_perm('reports.view_report_abc', role_is(12))
rules.add_perm('reports.view_report_xyz', role_is(13))

Works like a charm! Thank you! Proposed changes to README