Skip to content

Commit

Permalink
Merge pull request #12 from inuits/refactor/throw-not-found-instead-o…
Browse files Browse the repository at this point in the history
…f-access-denied

Throw not found instead of access denied for multi tenant policy.
  • Loading branch information
Delsinvg authored Jan 25, 2024
2 parents d195669 + c08e164 commit 4382203
Showing 1 changed file with 11 additions and 5 deletions.
16 changes: 11 additions & 5 deletions src/elody/policies/authorization/multi_tenant_policy.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from flask_restful import abort
from inuits_policy_based_auth import BaseAuthorizationPolicy, RequestContext
from inuits_policy_based_auth.contexts import UserContext, PolicyContext
from storage.storagemanager import StorageManager
Expand Down Expand Up @@ -37,12 +38,17 @@ def authorize(
request = request_context.http_request
view_args = request.view_args or {}
item_id = view_args.get("id")
policy_context.access_verdict = True
if item_id:
storage = StorageManager().get_db_engine()
item_relations = storage.get_collection_item_relations(
request.path.split("/")[1], item_id
storage = StorageManager().get_db_engine()
collection = request.path.split("/")[1]
item = storage.get_item_from_collection_by_id(collection, item_id)
if not item:
abort(
404,
message=f"Item with id {id} doesn't exist in collection {collection}",
)
policy_context.access_verdict = True
if item:
item_relations = storage.get_collection_item_relations(collection, item_id)
if not any(
x
for x in item_relations
Expand Down

0 comments on commit 4382203

Please sign in to comment.