mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 08:39:17 +01:00
Only allow DELETE or PATCH operations if "readonly" is set to true.
Note: default is false which is a **NOT BACKWARDS COMPATIBLE** change. Signed-off-by: Graham R. Cobb <g+beets@cobb.uk.net>
This commit is contained in:
parent
a74cc4b269
commit
4a9652a9e4
1 changed files with 12 additions and 0 deletions
|
|
@ -116,12 +116,18 @@ def resource(name, patchable=False):
|
||||||
entities = [entity for entity in entities if entity]
|
entities = [entity for entity in entities if entity]
|
||||||
|
|
||||||
if get_method() == "DELETE":
|
if get_method() == "DELETE":
|
||||||
|
if app.config.get('READONLY', True):
|
||||||
|
return flask.abort(405)
|
||||||
|
|
||||||
for entity in entities:
|
for entity in entities:
|
||||||
entity.remove(delete=is_delete())
|
entity.remove(delete=is_delete())
|
||||||
|
|
||||||
return flask.make_response(jsonify({'deleted': True}), 200)
|
return flask.make_response(jsonify({'deleted': True}), 200)
|
||||||
|
|
||||||
elif get_method() == "PATCH" and patchable:
|
elif get_method() == "PATCH" and patchable:
|
||||||
|
if app.config.get('READONLY', True):
|
||||||
|
return flask.abort(405)
|
||||||
|
|
||||||
for entity in entities:
|
for entity in entities:
|
||||||
entity.update(flask.request.get_json())
|
entity.update(flask.request.get_json())
|
||||||
entity.try_sync(True, False) # write, don't move
|
entity.try_sync(True, False) # write, don't move
|
||||||
|
|
@ -162,12 +168,18 @@ def resource_query(name, patchable=False):
|
||||||
entities = query_func(queries)
|
entities = query_func(queries)
|
||||||
|
|
||||||
if get_method() == "DELETE":
|
if get_method() == "DELETE":
|
||||||
|
if app.config.get('READONLY', True):
|
||||||
|
return flask.abort(405)
|
||||||
|
|
||||||
for entity in entities:
|
for entity in entities:
|
||||||
entity.remove(delete=is_delete())
|
entity.remove(delete=is_delete())
|
||||||
|
|
||||||
return flask.make_response(jsonify({'deleted': True}), 200)
|
return flask.make_response(jsonify({'deleted': True}), 200)
|
||||||
|
|
||||||
elif get_method() == "PATCH" and patchable:
|
elif get_method() == "PATCH" and patchable:
|
||||||
|
if app.config.get('READONLY', True):
|
||||||
|
return flask.abort(405)
|
||||||
|
|
||||||
for entity in entities:
|
for entity in entities:
|
||||||
entity.update(flask.request.get_json())
|
entity.update(flask.request.get_json())
|
||||||
entity.try_sync(True, False) # write, don't move
|
entity.try_sync(True, False) # write, don't move
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue