summaryrefslogtreecommitdiff
path: root/web-server/opendc/models
diff options
context:
space:
mode:
Diffstat (limited to 'web-server/opendc/models')
-rw-r--r--web-server/opendc/models/model.py8
-rw-r--r--web-server/opendc/models/simulation.py4
2 files changed, 8 insertions, 4 deletions
diff --git a/web-server/opendc/models/model.py b/web-server/opendc/models/model.py
index 2b8eb4dc..1935638f 100644
--- a/web-server/opendc/models/model.py
+++ b/web-server/opendc/models/model.py
@@ -21,6 +21,10 @@ class Model:
def __init__(self, obj):
self.obj = obj
+ def get_id(self):
+ """Returns the ID of the enclosed object."""
+ return self.obj['_id']
+
def check_exists(self):
"""Raises an error if the enclosed object does not exist."""
if self.obj is None:
@@ -36,8 +40,8 @@ class Model:
def update(self):
"""Updates the enclosed object and updates the internal reference to the newly inserted object."""
- self.obj = DB.update(self.obj['_id'], self.obj, self.collection_name)
+ self.obj = DB.update(self.get_id(), self.obj, self.collection_name)
def delete(self):
"""Deletes the enclosed object in the database."""
- DB.delete_one({'_id': self.obj['_id']}, self.collection_name)
+ DB.delete_one({'_id': self.get_id()}, self.collection_name)
diff --git a/web-server/opendc/models/simulation.py b/web-server/opendc/models/simulation.py
index bf19368c..dbe1e800 100644
--- a/web-server/opendc/models/simulation.py
+++ b/web-server/opendc/models/simulation.py
@@ -18,7 +18,7 @@ class Simulation(Model):
"""
user = User.from_google_id(google_id)
authorizations = list(
- filter(lambda x: str(x['simulationId']) == str(self.obj['_id']), user.obj['authorizations']))
+ filter(lambda x: str(x['simulationId']) == str(self.get_id()), user.obj['authorizations']))
if len(authorizations) == 0 or (edit_access and authorizations[0]['authorizationLevel'] == 'VIEW'):
raise ClientError(Response(403, "Forbidden from retrieving simulation."))
@@ -26,6 +26,6 @@ class Simulation(Model):
"""Get all user IDs having access to this simulation."""
return [
user['_id'] for user in DB.fetch_all({'authorizations': {
- 'simulationId': self.obj['_id']
+ 'simulationId': self.get_id()
}}, User.collection_name)
]