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)) raw_markup = html = open(os.path.join(base_path, index_file))
soup = BeautifulSoup(raw_markup, 'html.parser') soup = BeautifulSoup(raw_markup, 'html.parser')
for service in soup.find_all("li", class_='service') : for service in soup.find_all("li", class_='service') :
shouldremove = false
if 'users' in service.attrs.keys() : if 'users' in service.attrs.keys() :
allowed_users = service['users'].split(',') allowed_users = service['users'].split(',')
if allowed_users != ["Any"] and user_header not in allowed_users : if allowed_users != ["Any"] and user_header not in allowed_users :
service.decompose() shouldremove = true
continue
if 'groups' in service.attrs.keys() : if 'groups' in service.attrs.keys() :
allowed_groups = service['groups'].split(',') allowed_groups = service['groups'].split(',')
if list(set(current_groups) & set(allowed_groups)) == [] : if list(set(current_groups) & set(allowed_groups)) == [] :
service.decompose() shouldremove = true
else :
shouldremove = false
if shouldremove :
service.decompose()
for category in soup.select('li.category:not(:has(ul li))') : for category in soup.select('li.category:not(:has(ul li))') :
category.decompose() category.decompose()
byte_stream = io.BytesIO(soup.encode('utf-8')) byte_stream = io.BytesIO(soup.encode('utf-8'))
byte_stream.seek(0) byte_stream.seek(0)
return StreamingResponse(byte_stream, media_type="text/html") 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(): if file_to_serve.is_dir():
raise HTTPException(status_code=404, detail="Not Found") raise HTTPException(status_code=404, detail="Not Found")
elif file_to_serve.is_file(): elif file_to_serve.is_file():