def layer_permissions(request, layername): try: layer = _resolve_layer(request, layername, 'layers.change_layer_permissions') except PermissionDenied: # we are handling this in a non-standard way return HttpResponse( 'You are not allowed to change permissions for this layer', status=401, mimetype='text/plain') if request.method == 'POST': permission_spec = json.loads(request.raw_post_data) layer_set_permissions(layer, permission_spec) return HttpResponse( json.dumps({'success': True}), status=200, mimetype='text/plain' ) elif request.method == 'GET': permission_spec = json.dumps(layer.get_all_level_info()) return HttpResponse( json.dumps({'success': True, 'permissions': permission_spec}), status=200, mimetype='text/plain' ) else: return HttpResponse( 'No methods other than get and post are allowed', status=401, mimetype='text/plain')
def layer_permissions(request, layername): try: layer = _resolve_layer(request, layername, 'layers.change_layer_permissions') except PermissionDenied: # we are handling this in a non-standard way return HttpResponse( 'You are not allowed to change permissions for this layer', status=401, mimetype='text/plain') if request.method == 'POST': permission_spec = json.loads(request.raw_post_data) layer_set_permissions(layer, permission_spec) return HttpResponse(json.dumps({'success': True}), status=200, mimetype='text/plain') elif request.method == 'GET': permission_spec = json.dumps(layer.get_all_level_info()) return HttpResponse(json.dumps({ 'success': True, 'permissions': permission_spec }), status=200, mimetype='text/plain') else: return HttpResponse('No methods other than get and post are allowed', status=401, mimetype='text/plain')
def layer_permissions(request, layername): try: layer = _resolve_layer(request, layername, 'layers.change_layer_permissions') except PermissionDenied: # we are handling this in a non-standard way return HttpResponse( 'You are not allowed to change permissions for this layer', status=401, mimetype='text/plain') permission_spec = json.loads(request.raw_post_data) layer_set_permissions(layer, permission_spec) return HttpResponse(json.dumps({'success': True}), status=200, mimetype='text/plain')
def layer_permissions(request, layername): try: layer = _resolve_layer(request, layername, 'layers.change_layer_permissions') except PermissionDenied: # we are handling this in a non-standard way return HttpResponse( 'You are not allowed to change permissions for this layer', status=401, mimetype='text/plain') permission_spec = json.loads(request.raw_post_data) layer_set_permissions(layer, permission_spec) return HttpResponse( json.dumps({'success': True}), status=200, mimetype='text/plain' )
# set taggit keywords saved_layer.keywords.add(*keywords) # set model properties for (key, value) in vals.items(): setattr(saved_layer, key, value) saved_layer.save() # Set default permissions on the newly created layer # FIXME: Do this as part of the post_save hook permissions = upload_session.permissions _log('Setting default permissions for [%s]', name) if permissions is not None: layer_set_permissions(saved_layer, permissions) _log('Verifying the layer [%s] was created correctly' % name) # Verify the object was saved to the Django database # @revisit - this should always work since we just created it above and the # message is confusing try: Layer.objects.get(name=name) except Layer.DoesNotExist, e: msg = ('There was a problem saving the layer %s to Django. Error is: %s' % (name, str(e))) logger.exception(msg) logger.debug('Attempting to clean up after failed save for layer [%s]', name) # Since the layer creation was not successful, we need to clean up # @todo implement/test cleanup # cleanup(name, layer_uuid)
# set taggit keywords saved_layer.keywords.add(*keywords) # set model properties for (key, value) in vals.items(): setattr(saved_layer, key, value) saved_layer.save() # Set default permissions on the newly created layer # FIXME: Do this as part of the post_save hook permissions = upload_session.permissions _log('Setting default permissions for [%s]', name) if permissions is not None: layer_set_permissions(saved_layer, permissions) _log('Verifying the layer [%s] was created correctly' % name) # Verify the object was saved to the Django database # @revisit - this should always work since we just created it above and the # message is confusing try: Layer.objects.get(name=name) except Layer.DoesNotExist, e: msg = ('There was a problem saving the layer %s to GeoNetwork/Django. Error is: %s' % (name, str(e))) logger.exception(msg) logger.debug('Attempting to clean up after failed save for layer [%s]', name) # Since the layer creation was not successful, we need to clean up # @todo implement/test cleanup # cleanup(name, layer_uuid)