ComputerScienceHouse / ComputerScienceHouse/gallery
Handle deleted users gracefully
- Vorherrschende Sprache
- Python
- Sterne
- 22
- Forks
- 30
- Ø Merge
- 2 Std. 26 Min.
- Gemergte PRs (30 T.)
- 1
Beschreibung
Currently, if a user account no longer exists, Gallery will fail to render the entire page. Additionally, logging does not show the UUID that searching was attempted for (which is partially a csh_ldap problem), so it is not possible to look at the logs and immediately see the UUID that caused problems.
Proposed solution:
1) add logging to show the UUID that searching breaks on
2) gracefully return that the `author` is either "root" or "disabled" instead of crashing.
Current error trace:
```
File "/opt/gallery/gallery/util.py", line 91, in wrapped_function
return func(*args, **kwargs)
File "/opt/gallery/gallery/__init__.py", line 1076, in render_dir
return render_template("view_dir.html",
children=children,
...<6 lines>...
auth_dict=auth_dict,
lockdown=gallery_lockdown)
File "/opt/gallery/gallery/templates/view_dir.html", line 1, in top-level template code
{% extends "nav.html" %}
File "/opt/gallery/gallery/templates/nav.html", line 1, in top-level template code
{% extends "base.html" %}
File "/opt/gallery/gallery/templates/base.html", line 19, in top-level template code
{% block body %}
File "/opt/gallery/gallery/templates/view_dir.html", line 77, in block 'body'
Owner: {{ ldap.convert_uuid_to_displayname(child.author) }}
File "/opt/gallery/gallery/ldap.py", line 37, in convert_uuid_to_displayname
return self._ldap.get_member(uuid).displayName
~~~~~~~~~~~~~~~~~~~~~^^^^^^
File "/usr/local/lib/python3.13/site-packages/csh_ldap/utility.py", line 39, in wrapper
result = method(*method_args, **method_kwargs)
File "/usr/local/lib/python3.13/site-packages/csh_ldap/__init__.py", line 62, in get_member
return CSHMember(self, val, uid)
File "/usr/local/lib/python3.13/site-packages/csh_ldap/utility.py", line 39, in wrapper
result = method(*method_args, **method_kwargs)
File "/usr/local/lib/python3.13/site-packages/csh_ldap/member.py", line 39, in __init__
raise KeyError("Invalid Search Name")
KeyError: 'Invalid Search Name'
```
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Start with gallery/ldap.py, especially convert_uuid_to_displayname, and the owner rendering in templates/view_dir.html; follow the traceback through the LDAP member lookup. Reproduce the deleted-user case and verify that the attempted UUID is logged and the page renders with the author shown as either "root" or "disabled" instead of failing.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- python
- Bereich
- backend
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 58/100