ComputerScienceHouse / ComputerScienceHouse/gallery

Handle deleted users gracefully

Geschlossen
#130 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
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

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.