new UserPermission fields
This commit is contained in:
parent
6e8728e3c0
commit
e9c7514b3d
4 changed files with 39 additions and 5 deletions
|
@ -27,7 +27,7 @@ class AccessPermissionForm(Form):
|
||||||
self.author = request.user
|
self.author = request.user
|
||||||
|
|
||||||
# determine which access permissions the author can grant
|
# 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 = {
|
self.author_access_permissions = {
|
||||||
pk: expire_date for pk, expire_date in self.author.accesspermissions.filter(
|
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()))
|
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)
|
self.fields['expires'] = ChoiceField(required=False, initial='60', choices=expire_choices)
|
||||||
|
|
||||||
# if applicable, add field to grant pass on permissions
|
# 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
|
choices = [('0', '---')]*6 + [('1', _('can pass on'))] + [('0', '---')]*3
|
||||||
self.fields['can_grant'] = ChoiceField(required=False, initial='60', choices=choices)
|
self.fields['can_grant'] = ChoiceField(required=False, initial='60', choices=choices)
|
||||||
|
|
||||||
|
|
30
src/c3nav/control/migrations/0004_more_user_permissions.py
Normal file
30
src/c3nav/control/migrations/0004_more_user_permissions.py
Normal 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'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -10,12 +10,16 @@ class UserPermissions(models.Model):
|
||||||
User Permissions
|
User Permissions
|
||||||
"""
|
"""
|
||||||
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, primary_key=True)
|
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'))
|
review_changesets = models.BooleanField(default=False, verbose_name=_('can review changesets'))
|
||||||
direct_edit = models.BooleanField(default=False, verbose_name=_('can activate direct editing'))
|
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'))
|
control_panel = models.BooleanField(default=False, verbose_name=_('can access control panel'))
|
||||||
grant_permissions = models.BooleanField(default=False, verbose_name=_('can grant control permissions'))
|
grant_permissions = models.BooleanField(default=False, verbose_name=_('can grant control permissions'))
|
||||||
manage_announcements = models.BooleanField(default=False, verbose_name=_('manage announcements'))
|
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:
|
class Meta:
|
||||||
verbose_name = _('User Permissions')
|
verbose_name = _('User Permissions')
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
<th>{% trans 'Access Restriction' %}</th>
|
<th>{% trans 'Access Restriction' %}</th>
|
||||||
<th>{% trans 'expires' %}</th>
|
<th>{% trans 'expires' %}</th>
|
||||||
<th>{% trans 'can grant' %}</th>
|
<th>{% trans 'can grant' %}</th>
|
||||||
{% if request.user_permissions.access_all %}
|
{% if request.user_permissions.grant_all_access %}
|
||||||
<th></th>
|
<th></th>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
<td>{{ access_permission.access_restriction.title }}</td>
|
<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.expire_date %}{{ access_permission.expire_date }}{% else %}{% trans 'never' %}{% endif %}</td>
|
||||||
<td>{% if access_permission.can_grant %}{% trans 'Yes' %}{% else %}{% trans 'No' %}{% 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>
|
<td class="button-cell"><button type="submit" name="delete_access_permission" value="{{ access_permission.pk }}">{% trans 'Delete' %}</button></td>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue