@@ -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