Fixed access logic
This commit is contained in:
parent
270b83e3db
commit
b994993daf
@ -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():
|
||||
|
Loading…
Reference in New Issue
Block a user