editor permissions
This commit is contained in:
parent
71faaf6caa
commit
e3700a205a
2 changed files with 27 additions and 4 deletions
19
src/c3nav/editor/migrations/0019_permissions.py
Normal file
19
src/c3nav/editor/migrations/0019_permissions.py
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.11.7 on 2017-12-07 23:45
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('editor', '0018_changeset_last_cleaned_with'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='changeset',
|
||||||
|
options={'permissions': (('review_changeset', 'Can review change sets'), ('direct_edit', 'Can use direct edit')), 'verbose_name': 'Change Set', 'verbose_name_plural': 'Change Sets'},
|
||||||
|
),
|
||||||
|
]
|
|
@ -56,6 +56,11 @@ class ChangeSet(models.Model):
|
||||||
verbose_name_plural = _('Change Sets')
|
verbose_name_plural = _('Change Sets')
|
||||||
default_related_name = 'changesets'
|
default_related_name = 'changesets'
|
||||||
|
|
||||||
|
permissions = (
|
||||||
|
('review_changeset', _('Can review change sets')),
|
||||||
|
('direct_edit', _('Can use direct edit')),
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, *args, **kwargs):
|
def __init__(self, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.changed_objects = None
|
self.changed_objects = None
|
||||||
|
@ -486,13 +491,12 @@ class ChangeSet(models.Model):
|
||||||
return self.author_id == request.user.pk and self.state in ('proposed', 'reproposed')
|
return self.author_id == request.user.pk and self.state in ('proposed', 'reproposed')
|
||||||
|
|
||||||
def can_review(self, request):
|
def can_review(self, request):
|
||||||
# todo implement permissions
|
return request.user.has_perm('editor.review_changeset')
|
||||||
return request.user.is_superuser
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def can_direct_edit(cls, request):
|
def can_direct_edit(cls, request):
|
||||||
# todo implement permissions
|
print(request.user.has_perm('editor.direct_edit'))
|
||||||
return request.user.is_superuser
|
return request.user.has_perm('editor.direct_edit')
|
||||||
|
|
||||||
def can_start_review(self, request):
|
def can_start_review(self, request):
|
||||||
return self.can_review(request) and self.state in ('proposed', 'reproposed')
|
return self.can_review(request) and self.state in ('proposed', 'reproposed')
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue