Skip to content

Instantly share code, notes, and snippets.

@slomo
Created June 22, 2016 07:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save slomo/01dbb40f9727911ba19daa7a17bbc548 to your computer and use it in GitHub Desktop.
Save slomo/01dbb40f9727911ba19daa7a17bbc548 to your computer and use it in GitHub Desktop.
# process/__init__.py
class BasePhasePermissions():
can_edit = False
can_delete = False
# idea_collection/phases.py
from . import process
class PhasePermissions(process.BasePhasePermissions):
can_edit = True
# idea_collection/rules.py
"""
Bearbeiten
(User muss Idee erstellt haben UND die Phase muss das Bearbeiten erlauben) ODER User ist Admin
"""
import rules
from user_management.rules import is_admin
@rules.predicate
def is_idea_creator(user, idea):
return idea.creator == user
@rules.predicate
def phase_can_edit(user, idea):
return idea.collection.module.current_phase.phase_perms.can_edit
@rules.predicate
def phase_can_delete(user, idea):
return idea.collection.module.current_phase.phase_perms.can_delete
@rules.predicate
def jury_can_edit():
return True
rules.add_perm(
'idea_collection.can_edit_idea',
(is_idea_creator & phase_can_edit) | is_admin
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment