Fixed access logic

This commit is contained in:
Daniel Dayley 2024-11-07 10:09:07 -07:00
parent 270b83e3db
commit b994993daf
Signed by: Cronocide
GPG Key ID: 1CADA052F64664EC

View File

@ -48,21 +48,24 @@ async def serve_file(request: Request, file_path: str) :
raw_markup = html = open(os.path.join(base_path, index_file))
soup = BeautifulSoup(raw_markup, 'html.parser')
for service in soup.find_all("li", class_='service') :
shouldremove = false
if 'users' in service.attrs.keys() :
allowed_users = service['users'].split(',')
if allowed_users != ["Any"] and user_header not in allowed_users :
service.decompose()
continue
shouldremove = true
if 'groups' in service.attrs.keys() :
allowed_groups = service['groups'].split(',')
if list(set(current_groups) & set(allowed_groups)) == [] :
shouldremove = true
else :
shouldremove = false
if shouldremove :
service.decompose()
for category in soup.select('li.category:not(:has(ul li))') :
category.decompose()
byte_stream = io.BytesIO(soup.encode('utf-8'))
byte_stream.seek(0)
return StreamingResponse(byte_stream, media_type="text/html")
# return FileResponse(byte_stream, media_type="text/html", filename="index.html")
if file_to_serve.is_dir():
raise HTTPException(status_code=404, detail="Not Found")
elif file_to_serve.is_file():