|
1 | | -from fastapi import APIRouter, File, UploadFile |
| 1 | +from auth_lib.fastapi import UnionAuth |
| 2 | +from fastapi import APIRouter, Depends, File, UploadFile |
2 | 3 | from fastapi_sqlalchemy import db |
3 | 4 |
|
4 | 5 | from calendar_backend.exceptions import ObjectNotFound |
|
14 | 15 |
|
15 | 16 |
|
16 | 17 | @router.post("/photo", response_model=Photo) |
17 | | -async def upload_photo(lecturer_id: int, photo: UploadFile = File(...)) -> Photo: |
| 18 | +async def upload_photo( |
| 19 | + lecturer_id: int, |
| 20 | + photo: UploadFile = File(...), |
| 21 | + _=Depends(UnionAuth(scopes=["timetable.lecturer.photo.create"])), |
| 22 | +) -> Photo: |
18 | 23 | """Загрузить фотографию преподавателя из локального файла |
19 | 24 |
|
20 | 25 | Пример загрузки файла на питоне |
@@ -50,7 +55,11 @@ async def get_lecturer_photos(lecturer_id: int, limit: int = 10, offset: int = 0 |
50 | 55 |
|
51 | 56 |
|
52 | 57 | @router.delete("/photo/{id}", response_model=None) |
53 | | -async def delete_photo(id: int, lecturer_id: int) -> None: |
| 58 | +async def delete_photo( |
| 59 | + id: int, |
| 60 | + lecturer_id: int, |
| 61 | + _=Depends(UnionAuth(scopes=["timetable.lecturer.photo.delete"])), |
| 62 | +) -> None: |
54 | 63 | photo = DbPhoto.get(id, only_approved=False, session=db.session) |
55 | 64 | if photo.lecturer_id != lecturer_id: |
56 | 65 | raise ObjectNotFound(DbPhoto, id) |
|
0 commit comments