new UserPermission fields

This commit is contained in:
Laura Klünder 2017-12-19 11:37:00 +01:00
parent 6e8728e3c0
commit e9c7514b3d
4 changed files with 39 additions and 5 deletions

View file

@ -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)

View file

@ -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'),
),
]

View file

@ -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')

View file

@ -32,7 +32,7 @@
<th>{% trans 'Access Restriction' %}</th>
<th>{% trans 'expires' %}</th>
<th>{% trans 'can grant' %}</th>
{% if request.user_permissions.access_all %}
{% if request.user_permissions.grant_all_access %}
<th></th>
{% endif %}
</tr>
@ -41,7 +41,7 @@
<td>{{ access_permission.access_restriction.title }}</td>
<td>{% if access_permission.expire_date %}{{ access_permission.expire_date }}{% else %}{% trans 'never' %}{% endif %}</td>
<td>{% if access_permission.can_grant %}{% trans 'Yes' %}{% else %}{% trans 'No' %}{% endif %}</td>
{% if request.user_permissions.access_all %}
{% if request.user_permissions.grant_all_access %}
<td class="button-cell"><button type="submit" name="delete_access_permission" value="{{ access_permission.pk }}">{% trans 'Delete' %}</button></td>
{% endif %}
</tr>