Permissions

Which permissioncode does a user need on a specific object (or objects this object inherits it's permissions from) to have a specific permission.

Action Object Check
wiki
Add a wiki page wiki .user_can_create_page()
Moderate a wiki page wiki.Page .has_perm('wiki.moderate_page')
Revert a wiki page wiki.Page .has_perm('wiki.revert_page')
Change a wiki page wiki.Page .has_perm('wiki.change_page')
Delete a wiki page wiki.Page .has_perm('wiki.delete_page')
Reply to a wiki page wiki.Page .allow_comments
Reply to a wiki page reply wiki.Page .has_perm('wiki.moderate_page')
course
Add a realm Site .has_perm('course.add_realm')
Add a course course.Realm .has_perm('course.add_course')
Add course edition course.Course .has_perm('course.add_courseedition')
Add a cluster course.CourseEdition .has_perm('course.add_cluster')
Add a cluster member course.CourseEdition .is_joinable

Users always get the permissions specified on their User object as a global permission.

Permission inheritance

These objects implement the "Permission Inheritance Interface" and implement the functions get_permissions(), has_perm() and has_access(). The inheritance defined by these functions is:

Object Permission inherited from Access inherited from
wiki
wiki.Page <the parent> or a wiki.Page with the same path prefix Depends on wiki.Page settings
course
course.Realm Direct membership
course.Course 1) course.Realm course.CourseEdition
course.CourseEdition course.Course course.Cluster
course.Cluster course.CurseEdition + own permission relation course.ClusterMember
course.ClusterMember course.Cluster Direct membership

1) Users can see courses in their realm that are available for joining as specified in the CourseEdition. On joining, a course.Clustermember object is created allowing the user normal access to the course.