File tree Expand file tree Collapse file tree 2 files changed +38
-1
lines changed
services/web/server/src/simcore_service_webserver/projects/_controller Expand file tree Collapse file tree 2 files changed +38
-1
lines changed Original file line number Diff line number Diff line change 2424)
2525
2626
27+ @router .post (
28+ "/projects/{project_id}:share" ,
29+ response_model = Envelope [ProjectGroupGet ],
30+ status_code = status .HTTP_201_CREATED ,
31+ )
32+ async def share_project (
33+ _path : Annotated [ProjectPathParams , Depends ()],
34+ _body : _ProjectsGroupsBodyParams ,
35+ ): ...
36+
37+
2738@router .post (
2839 "/projects/{project_id}/groups/{group_id}" ,
2940 response_model = Envelope [ProjectGroupGet ],
Original file line number Diff line number Diff line change 33from aiohttp import web
44from models_library .groups import GroupID
55from models_library .projects import ProjectID
6- from pydantic import BaseModel , ConfigDict
6+ from pydantic import BaseModel , ConfigDict , EmailStr
77from servicelib .aiohttp import status
88from servicelib .aiohttp .requests_validation import (
99 parse_request_body_as ,
2525routes = web .RouteTableDef ()
2626
2727
28+ class _ProjectShare (BaseModel ):
29+ email : EmailStr | None
30+ primary_group_id : GroupID | None
31+
32+ # sharing access
33+ read : bool
34+ write : bool
35+ delete : bool
36+
37+ model_config = ConfigDict (extra = "forbid" )
38+
39+
40+ @routes .post (f"/{ VTAG } /projects/{{project_id}}:share" , name = "share_project" )
41+ @login_required
42+ @permission_required ("project.access_rights.update" )
43+ @handle_plugin_requests_exceptions
44+ async def share_project (request : web .Request ):
45+ req_ctx = RequestContext .model_validate (request )
46+ path_params = parse_request_path_parameters_as (ProjectPathParams , request )
47+ body_params = await parse_request_body_as (_ProjectShare , request )
48+
49+ # TODO: share project
50+
51+ return web .json_response (status = status .HTTP_204_NO_CONTENT )
52+
53+
2854class _ProjectsGroupsPathParams (BaseModel ):
2955 project_id : ProjectID
3056 group_id : GroupID
You can’t perform that action at this time.
0 commit comments