Skip to content

Commit 069024f

Browse files
authored
Merge pull request #1270 from TOMToolkit/1259-default-permissions-to-be-toggled-in-settingspy
Add setting for default permissions on Target
2 parents 2ee80de + c189c1d commit 069024f

4 files changed

Lines changed: 19 additions & 1 deletion

File tree

tom_base/settings.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,9 @@
308308
# `ObservationRecord`, `DataProduct`, and `ReducedDatum` objects.
309309
TARGET_PERMISSIONS_ONLY = True
310310

311+
# Default permission for newly created targets. Values can be 'PRIVATE', 'PUBLIC', or 'OPEN'
312+
TARGET_DEFAULT_PERMISSION = 'PRIVATE'
313+
311314
# URLs that should be allowed access even with AUTH_STRATEGY = LOCKED
312315
# for example: OPEN_URLS = ['/', '/about']
313316
OPEN_URLS = []

tom_setup/templates/tom_setup/settings.tmpl

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -320,6 +320,9 @@ AUTH_STRATEGY = 'READ_ONLY'
320320
# `ObservationRecord`, `DataProduct`, and `ReducedDatum` objects.
321321
TARGET_PERMISSIONS_ONLY = True
322322

323+
# Default permission for newly created targets. Values can be 'PRIVATE', 'PUBLIC', or 'OPEN'
324+
TARGET_DEFAULT_PERMISSION = 'PRIVATE'
325+
323326
# URLs that should be allowed access even with AUTH_STRATEGY = LOCKED
324327
# for example: OPEN_URLS = ['/', '/about']
325328
OPEN_URLS = []

tom_targets/base_models.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,13 @@ def simplify_name(self, name):
193193
return name.lower().replace(" ", "").replace("-", "").replace("_", "").replace("(", "").replace(")", "")
194194

195195

196+
def get_default_target_permission():
197+
try:
198+
return settings.TARGET_DEFAULT_PERMISSION
199+
except AttributeError:
200+
return BaseTarget.Permissions.PRIVATE
201+
202+
196203
class BaseTarget(models.Model):
197204
"""
198205
Class representing a target in a TOM
@@ -314,7 +321,7 @@ class Permissions(models.TextChoices):
314321
help_text='The time which this target was changed in the TOM database.'
315322
)
316323
permissions = models.CharField(
317-
max_length=100, default=Permissions.PRIVATE, choices=Permissions.choices,
324+
max_length=100, default=get_default_target_permission, choices=Permissions.choices,
318325
help_text='The access level of this target, see the docs on public vs private targets.'
319326
)
320327
ra = models.FloatField(

tom_targets/tests/tests.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,11 @@ def test_create_target_with_tags(self):
305305
target = Target.objects.get(name=target_data['name'])
306306
self.assertTrue(target.targetextra_set.filter(key='category', value='type2').exists())
307307

308+
@override_settings(TARGET_DEFAULT_PERMISSION='OPEN')
309+
def test_create_target_configurable_permissions(self):
310+
target = Target.objects.create(name='test_target', type=Target.SIDEREAL, ra='83.6', dec='30.21')
311+
self.assertEqual(target.permissions, 'OPEN')
312+
308313
@override_settings(EXTRA_FIELDS=[
309314
{'name': 'wins', 'type': 'number', 'default': '12'},
310315
{'name': 'checked', 'type': 'boolean'},

0 commit comments

Comments
 (0)