Skip to content

Commit 25b0ed8

Browse files
VladislavVoskoboinikVladislavV
andauthored
add dwh allowance to patch_user_info (#49)
Co-authored-by: VladislavV <vladislavv@VladislavVs-MacBook-Air.local>
1 parent a8f86d1 commit 25b0ed8

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

userdata_api/utils/user.py

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,12 @@ async def patch_user_info(new: UserInfoUpdate, user_id: int, user: dict[str, int
1414
"""
1515
Обновить информацию о пользователе в соотетствии с переданным токеном.
1616
17-
Метод обновляет только информацию из источников `admin` и `user`
17+
Метод обновляет только информацию из источников `admin`, `user` или `dwh`.
1818
1919
Для обновления от имени админа нужен скоуп `userdata.info.admin`
2020
21+
Для обновления информации из dwh нужен скоуп `userdata.info.dwh`
22+
2123
Для обновления от иимени пользователя необходима владениие ининформацией
2224
2325
Обноввляет только инормацую созданную самим источником
@@ -35,9 +37,14 @@ async def patch_user_info(new: UserInfoUpdate, user_id: int, user: dict[str, int
3537
"Admin source requires 'userdata.info.admin' scope",
3638
"Источник 'администратор' требует право 'userdata.info.admin'",
3739
)
38-
if new.source != "admin" and new.source != "user":
40+
if new.source == "dwh" and "userdata.info.dwh" not in scope_names:
41+
raise Forbidden(
42+
"Dwh source requires 'userdata.info.dwh' scope",
43+
"Источник 'dwh' требует право 'userdata.info.dwh'",
44+
)
45+
if new.source != "admin" and new.source != "user" and new.source != "dwh":
3946
raise Forbidden(
40-
"HTTP protocol applying only 'admin' and 'user' source",
47+
"HTTP protocol applying only 'admin', 'user' or 'dwh' source",
4148
"Данный источник информации не обновляется через HTTP",
4249
)
4350
if new.source == "user" and user["id"] != user_id:

0 commit comments

Comments
 (0)