Skip to content

Commit

Permalink
[UPD] lcc_lokavaluto_app_connection: ensure that partners have public…
Browse files Browse the repository at this point in the history
… profiles when needed
  • Loading branch information
vaab authored and stephansainleger committed Mar 7, 2024
1 parent 4771639 commit 5148374
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 3 deletions.
8 changes: 8 additions & 0 deletions lcc_lokavaluto_app_connection/models/res_partner.py
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,12 @@ def show_app_access_buttons(self):
def lcc_profile_info(self):
res = []
for partner in self:
if not partner.public_profile_id:
_logger.warning(
"Partner %s (id: %d) has no public profile id. Skipping.",
partner.name, partner.id
)
continue
profile_info = partner.public_profile_id.jsonify(
[
"name",
Expand All @@ -141,4 +147,6 @@ def lcc_profile_info(self):
}
)
res.append(profile_info)
if not res and len(self) > 1:
_logger.warning("No public profile found for any of the partners.")
return res
11 changes: 10 additions & 1 deletion lcc_lokavaluto_app_connection/services/auth_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,18 @@ def authenticate(self, **params):
to_add = self._update_auth_data(
partner, request.httprequest.authorization.password
)
lcc_profile_info = partner.lcc_profile_info()
if len(lcc_profile_info) == 0:
raise exceptions.UserError(
"Invalid User %r (id: %d), related partner %r (id: %d) has no public profile.",
current_user.login,
current_user.id,
partner.name,
partner.id,
)
response["prefetch"] = {
"backend_credentials": to_add,
"partner": partner.lcc_profile_info()[0],
"partner": lcc_profile_info[0],
}

if to_add:
Expand Down
13 changes: 11 additions & 2 deletions lcc_lokavaluto_app_connection/services/partner_services.py
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,12 @@ def get(self, rpid):
)
if len(partners) == 0:
raise MissingError("No partner found - please check your request")
if not partners[0].public_profile_id:
raise MissingError(
"Partner %r (id: %d) doesn't have a public profile",
partners[0].name, partners[0].id
)

return partners[0].lcc_profile_info()[0]

@restapi.method(
Expand Down Expand Up @@ -246,7 +252,10 @@ def search_recipients(self, recipients_search_info):
rows = []
for recipient in recipients:
partner = recipient.partner_id
row = partner.lcc_profile_info()[0]
lcc_profile_info = partner.lcc_profile_info()
if not lcc_profile_info:
continue
row = lcc_profile_info[0]
row["monujo_backends"] = self._update_search_data(
partner,
[k for k in backend_keys if k.startswith("%s:" % recipient.type)],
Expand Down Expand Up @@ -395,7 +404,7 @@ def _get_formatted_recipients(self, recipients, backend_keys):
if backend_keys:
for partner in recipients:
row = partner.lcc_profile_info()[0]
row["monujo_backends"] = self._update_search_data(partner, backend_keys)
row["monujo_backends"] = partner._update_search_data(backend_keys)
rows.append(row)
return {"count": len(rows), "rows": rows}

Expand Down

0 comments on commit 5148374

Please sign in to comment.