diff --git a/gracedb/events/translator.py b/gracedb/events/translator.py index 288637f58b07cbce7f48dba07feef1ee8867e93f..30bef5f52752893a822d444d620c461c18922ed5 100644 --- a/gracedb/events/translator.py +++ b/gracedb/events/translator.py @@ -613,15 +613,15 @@ def populateGrbEventFromVOEventFile(filename, event): # Assign information to event event.gpstime = gpstime event.ivorn = v.get('ivorn') - event.author_shortname = v.Who.Author.shortName - event.author_ivorn = v.Who.AuthorIVORN + event.author_shortname = v.Who.Author.shortName.text + event.author_ivorn = v.Who.AuthorIVORN.text event.observatory_location_id = \ v.WhereWhen.ObsDataLocation.ObservatoryLocation.get('id') event.coord_system = pos2d.system event.ra = pos2d.ra event.dec = pos2d.dec event.error_radius = pos2d.err - event.how_description = v.How.Description + event.how_description = v.How.Description.text event.how_reference_url = v.How.Reference.get('uri') # Try to find a trigger_duration value diff --git a/gracedb/migrations/guardian/0006_authorize_emfollow_to_populate_pipelines.py b/gracedb/migrations/guardian/0006_authorize_emfollow_to_populate_pipelines.py new file mode 100644 index 0000000000000000000000000000000000000000..b281dd9d6cd0afd9ce74a89baefd9736cbd07b5d --- /dev/null +++ b/gracedb/migrations/guardian/0006_authorize_emfollow_to_populate_pipelines.py @@ -0,0 +1,69 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.18 on 2019-05-08 16:27 +# This migration adds permission for the emfollow user to +# populate the spiir, MBTAOnline, and pycbc pipelines. Requested +# by Roberto de Pietri, 10/21/2019 + +from __future__ import unicode_literals + +from django.db import migrations + +USER_NAME = 'emfollow' +PIPELINES = [ + 'spiir', + 'MBTAOnline', + 'pycbc', +] + + +def add_permissions(apps, schema_editor): + User = apps.get_model('auth', 'User') + Permission = apps.get_model('auth', 'Permission') + UserObjectPermission = apps.get_model('guardian', 'UserObjectPermission') + Pipeline = apps.get_model('events', 'Pipeline') + ContentType = apps.get_model('contenttypes', 'ContentType') + + # Get group + em = User.objects.get(username=USER_NAME) + + perm = Permission.objects.get(codename='populate_pipeline') + ctype = ContentType.objects.get_for_model(Pipeline) + for pipeline in PIPELINES: + pipeline = Pipeline.objects.get(name=pipeline) + + # Create UserObjectPermission + gop = UserObjectPermission.objects.create(user=em, + permission=perm, content_type=ctype, object_pk=pipeline.id) + + +def remove_permissions(apps, schema_editor): + User = apps.get_model('auth', 'User') + Permission = apps.get_model('auth', 'Permission') + UserObjectPermission = apps.get_model('guardian', 'UserObjectPermission') + Pipeline = apps.get_model('events', 'Pipeline') + ContentType = apps.get_model('contenttypes', 'ContentType') + + # Get group + em = User.objects.get(username=USER_NAME) + + perm = Permission.objects.get(codename='populate_pipeline') + ctype = ContentType.objects.get_for_model(Pipeline) + for pipeline in PIPELINES: + pipeline = Pipeline.objects.get(name=pipeline) + + # Get UserObjectPermission and delete + uop = UserObjectPermission.objects.get(user=em, + permission=perm, content_type=ctype, object_pk=pipeline.id) + uop.delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ('ligoauth', '0005_update_emfollow_accounts'), + ('guardian', '0005_authorize_raven_users_to_populate_pipelines'), + ] + + operations = [ + migrations.RunPython(add_permissions, remove_permissions), + ]