Skip to content

Commit

Permalink
PLAT-165: make read-only permissions as default, fix permissions stri…
Browse files Browse the repository at this point in the history
…ng representation
  • Loading branch information
docktorrr committed Apr 1, 2019
1 parent fbe964b commit 6c078be
Show file tree
Hide file tree
Showing 4 changed files with 6 additions and 5 deletions.
2 changes: 1 addition & 1 deletion workflow/migrations/0002_auto_20190328_1231.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='coregroup',
name='permissions',
field=models.PositiveSmallIntegerField(default=15, help_text='Decimal integer from 0 to 15 converted from 4-bit binary, each bit indicates permissions for CRUD', verbose_name='Permissions'),
field=models.PositiveSmallIntegerField(default=4, help_text='Decimal integer from 0 to 15 converted from 4-bit binary, each bit indicates permissions for CRUD', verbose_name='Permissions'),
),
migrations.AlterField(
model_name='coreuser',
Expand Down
4 changes: 2 additions & 2 deletions workflow/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ class CoreGroup(models.Model):
name = models.CharField('Name of the role', max_length=80)
workflowlevel1 = models.ForeignKey(WorkflowLevel1, null=True, blank=True, on_delete=models.CASCADE)
workflowlevel2 = models.ForeignKey(WorkflowLevel2, null=True, blank=True, on_delete=models.CASCADE)
permissions = models.PositiveSmallIntegerField('Permissions', default=15, help_text='Decimal integer from 0 to 15 converted from 4-bit binary, each bit indicates permissions for CRUD')
permissions = models.PositiveSmallIntegerField('Permissions', default=4, help_text='Decimal integer from 0 to 15 converted from 4-bit binary, each bit indicates permissions for CRUD')
create_date = models.DateTimeField(default=timezone.now)
edit_date = models.DateTimeField(null=True, blank=True)

Expand All @@ -292,7 +292,7 @@ def organization(self) -> Union[Organization, None]:

@property
def display_permissions(self) -> str:
return '{0:b}'.format(self.permissions if self.permissions < 16 else 15)
return '{0:04b}'.format(self.permissions if self.permissions < 16 else 15)


class WorkflowTeam(models.Model):
Expand Down
3 changes: 2 additions & 1 deletion workflow/tests/test_coregroupmodel.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ def test_coregroup_with_no_wfl():
def test_coregroup_display_permissions():
for i in range(16):
coregroup = factories.CoreGroup.create(permissions=i)
assert coregroup.display_permissions == f'{i:b}'
assert len(coregroup.display_permissions) == 4
assert coregroup.display_permissions == f'{i:04b}'

coregroup = factories.CoreGroup.create(permissions=20)
assert coregroup.display_permissions == '1111'
2 changes: 1 addition & 1 deletion workflow/tests/test_coregroupview.py
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ def test_coregroup_create_min(self, request_factory, org_admin):
assert response.status_code == 201
coregroup = wfm.CoreGroup.objects.get(name='New Group')
assert coregroup.organization is None
assert coregroup.permissions == 15 # check default permissions
assert coregroup.permissions == 4 # check default permissions

def test_coregroup_create_with_workfllow1(self, request_factory, org_admin):
wfl1 = factories.WorkflowLevel1.create(organization=org_admin.organization)
Expand Down

0 comments on commit 6c078be

Please sign in to comment.