diff options
Diffstat (limited to 'web-server/opendc/models')
| -rw-r--r-- | web-server/opendc/models/model.py | 8 | ||||
| -rw-r--r-- | web-server/opendc/models/simulation.py | 4 |
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) ] |
