diff --git a/ipv6work/settings.py b/ipv6work/settings.py index 34196ff..7736cdc 100644 --- a/ipv6work/settings.py +++ b/ipv6work/settings.py @@ -48,6 +48,9 @@ INSTALLED_APPS += [ # before 'django.contrib.admin' app 'dal', 'dal_select2', + + # for authorization + 'rules', ] # Our apps @@ -115,6 +118,10 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] +AUTHENTICATION_BACKENDS = ( + 'rules.permissions.ObjectPermissionBackend', + 'django.contrib.auth.backends.ModelBackend', +) # Internationalization # https://docs.djangoproject.com/en/2.1/topics/i18n/ diff --git a/jobs/rules.py b/jobs/rules.py new file mode 100644 index 0000000..4c7a7bc --- /dev/null +++ b/jobs/rules.py @@ -0,0 +1,8 @@ +import rules + +@rules.predicate +def is_job_poster(user, job): + return job.posted_by == user + + +rules.add_perm('jobs.change_job', is_job_poster) diff --git a/requirements.txt b/requirements.txt index 45e0996..e4832e6 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ Django==2.1.2 django-crispy-forms==1.7.2 git+https://github.com/yourlabs/django-autocomplete-light.git#egg=django-autocomplete-light +rules==2.0