From 7a8966e964b5eb5da1c7aa4d3d5efa59d7016d10 Mon Sep 17 00:00:00 2001 From: theborch Date: Fri, 7 Mar 2025 10:30:06 -0600 Subject: [PATCH 1/2] fix:upload permissions files content instead --- .../access_broker/resources/permissions.py | 33 ++++++++++++++----- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/src/britive/access_broker/resources/permissions.py b/src/britive/access_broker/resources/permissions.py index fc5a22c..d3ae791 100644 --- a/src/britive/access_broker/resources/permissions.py +++ b/src/britive/access_broker/resources/permissions.py @@ -11,8 +11,8 @@ def create( resource_type_id: str, name: str, description: str = '', - checkin_file: bytes = None, - checkout_file: bytes = None, + checkin_file: str = None, + checkout_file: str = None, variables: list = None, ) -> dict: """ @@ -41,8 +41,16 @@ def create( if checkin_file and checkout_file: permissionId = permission['permissionId'] urls = self.get_urls(permissionId) - requests.put(urls['checkinURL'], files={'file': checkin_file}) - requests.put(urls['checkoutURL'], files={'file': checkout_file}) + try: + with open(checkin_file, 'rb') as checkin_upload: + requests.put(urls['checkinURL'], data=checkin_upload) + except FileNotFoundError: + requests.put(urls['checkinURL'], data=checkin_file) + try: + with open(checkout_file, 'rb') as checkout_upload: + requests.put(urls['checkoutURL'], data=checkout_upload) + except FileNotFoundError: + requests.put(urls['checkoutURL'], data=checkout_file) update_params = { 'checkinFileName': permissionId + '_checkin', 'checkinTimeLimit': 60, @@ -107,9 +115,9 @@ def update( permission_id: str, resource_type_id: str, name: str, - checkin_file: bytes = None, + checkin_file: str = None, checkin_time_limit: int = 60, - checkout_file: bytes = None, + checkout_file: str = None, checkout_time_limit: int = 60, **kwargs, ) -> dict: @@ -151,8 +159,17 @@ def update( if checkin_file and checkout_file: urls = self.get_urls(permission_id) - requests.put(urls['checkinURL'], files={'file': checkin_file}) - requests.put(urls['checkoutURL'], files={'file': checkout_file}) + try: + with open(checkin_file, 'rb') as checkin_upload: + requests.put(urls['checkinURL'], data=checkin_upload) + except FileNotFoundError: + requests.put(urls['checkinURL'], data=checkin_file) + try: + with open(checkout_file, 'rb') as checkout_upload: + requests.put(urls['checkoutURL'], data=checkout_upload) + except FileNotFoundError: + requests.put(urls['checkoutURL'], data=checkout_file) + params.update( checkinFileName=permission_id + '_checkin', checkinURL=urls['checkinURL'], From 06b0266e9c9f0b7230a1330f5adae35b91c23e77 Mon Sep 17 00:00:00 2001 From: theborch Date: Fri, 7 Mar 2025 10:33:56 -0600 Subject: [PATCH 2/2] v4.1.3 --- CHANGELOG.md | 22 ++++++++++++++++++++++ src/britive/__init__.py | 2 +- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1303460..916b70b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,27 @@ # Change Log (v2.8.1+) +## v4.1.3 [2025-03-07] + +__What's New:__ + +* None + +__Enhancements:__ + +* None + +__Bug Fixes:__ + +* Upload `check[in|out]_file` content for `access_broker.resources.permissions.[create|update]` to avoid `requests` injected headers. + +__Dependencies:__ + +* None + +__Other:__ + +* None + ## v4.1.2 [2025-03-06] __What's New:__ diff --git a/src/britive/__init__.py b/src/britive/__init__.py index 96e5585..1e8dc38 100644 --- a/src/britive/__init__.py +++ b/src/britive/__init__.py @@ -1 +1 @@ -__version__ = '4.1.2' +__version__ = '4.1.3'