From e9c7514b3de7c61f9cb68343c96e879474035ea8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Tue, 19 Dec 2017 11:37:00 +0100 Subject: [PATCH] new UserPermission fields --- src/c3nav/control/forms.py | 4 +-- .../migrations/0004_more_user_permissions.py | 30 +++++++++++++++++++ src/c3nav/control/models.py | 6 +++- src/c3nav/control/templates/control/user.html | 4 +-- 4 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 src/c3nav/control/migrations/0004_more_user_permissions.py diff --git a/src/c3nav/control/forms.py b/src/c3nav/control/forms.py index 592c4c34..4541e031 100644 --- a/src/c3nav/control/forms.py +++ b/src/c3nav/control/forms.py @@ -27,7 +27,7 @@ class AccessPermissionForm(Form): self.author = request.user # determine which access permissions the author can grant - if not request.user_permissions.access_all: + if not request.user_permissions.grant_all_access: self.author_access_permissions = { pk: expire_date for pk, expire_date in self.author.accesspermissions.filter( Q(can_grant=True) & (Q(expire_date__isnull=True) | Q(expire_date__lt=timezone.now())) @@ -86,7 +86,7 @@ class AccessPermissionForm(Form): self.fields['expires'] = ChoiceField(required=False, initial='60', choices=expire_choices) # if applicable, add field to grant pass on permissions - if request.user_permissions.access_all: + if request.user_permissions.grant_all_access: choices = [('0', '---')]*6 + [('1', _('can pass on'))] + [('0', '---')]*3 self.fields['can_grant'] = ChoiceField(required=False, initial='60', choices=choices) diff --git a/src/c3nav/control/migrations/0004_more_user_permissions.py b/src/c3nav/control/migrations/0004_more_user_permissions.py new file mode 100644 index 00000000..c0093924 --- /dev/null +++ b/src/c3nav/control/migrations/0004_more_user_permissions.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.7 on 2017-12-19 10:21 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('control', '0003_auto_20171210_1452'), + ] + + operations = [ + migrations.RenameField( + model_name='userpermissions', + old_name='access_all', + new_name='grant_all_access', + ), + migrations.AddField( + model_name='userpermissions', + name='api_secret', + field=models.CharField(blank=True, max_length=64, null=True, verbose_name='API secret'), + ), + migrations.AddField( + model_name='userpermissions', + name='max_changeset_changes', + field=models.PositiveSmallIntegerField(default=10, verbose_name='max changes per changeset'), + ), + ] diff --git a/src/c3nav/control/models.py b/src/c3nav/control/models.py index 82c34e91..e7a8fe66 100644 --- a/src/c3nav/control/models.py +++ b/src/c3nav/control/models.py @@ -10,12 +10,16 @@ class UserPermissions(models.Model): User Permissions """ user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, primary_key=True) + review_changesets = models.BooleanField(default=False, verbose_name=_('can review changesets')) direct_edit = models.BooleanField(default=False, verbose_name=_('can activate direct editing')) + max_changeset_changes = models.PositiveSmallIntegerField(default=10, verbose_name=_('max changes per changeset')) + control_panel = models.BooleanField(default=False, verbose_name=_('can access control panel')) grant_permissions = models.BooleanField(default=False, verbose_name=_('can grant control permissions')) manage_announcements = models.BooleanField(default=False, verbose_name=_('manage announcements')) - access_all = models.BooleanField(default=False, verbose_name=_('can grant access to everything')) + grant_all_access = models.BooleanField(default=False, verbose_name=_('can grant access to everything')) + api_secret = models.CharField(null=True, blank=True, max_length=64, verbose_name=_('API secret')) class Meta: verbose_name = _('User Permissions') diff --git a/src/c3nav/control/templates/control/user.html b/src/c3nav/control/templates/control/user.html index bbad1096..b0ad62ee 100644 --- a/src/c3nav/control/templates/control/user.html +++ b/src/c3nav/control/templates/control/user.html @@ -32,7 +32,7 @@ {% trans 'Access Restriction' %} {% trans 'expires' %} {% trans 'can grant' %} - {% if request.user_permissions.access_all %} + {% if request.user_permissions.grant_all_access %} {% endif %} @@ -41,7 +41,7 @@ {{ access_permission.access_restriction.title }} {% if access_permission.expire_date %}{{ access_permission.expire_date }}{% else %}{% trans 'never' %}{% endif %} {% if access_permission.can_grant %}{% trans 'Yes' %}{% else %}{% trans 'No' %}{% endif %} - {% if request.user_permissions.access_all %} + {% if request.user_permissions.grant_all_access %} {% endif %}