mirror of
https://github.com/tiennm99/DocsGPT.git
synced 2026-10-14 16:16:48 +00:00
Ask before an editor's resource runs with their access in someone else's agent
Sponsoring a tool, source or prompt the agent's owner can't use now takes owning it or having edit access to it; use access alone no longer extends it to the agent's audience. A save that would make the caller a new sponsor is refused with 409 sponsor_confirmation_required (the resources and the agent's audience) until it is retried with confirm_sponsor listing them. When a sponsor loses access, the resource stops instead of passing to whoever saves next; another editor takes it over only by confirming. Workflows follow the same rules. sponsor_details now reports each sponsorship's state, the reason it stopped, and whether the reader can take it over.
This commit is contained in:
1 parent
d4b30f4838
commit
335241e2e6
8 files changed
+923
-95
No files matched your search
@@ -188,6 +188,8 @@ class TestGetAgentResolvesNames:
|
||||
|
||||
|
||||
def _update_patches(sub, repo, team_access, can_access_mock):
|
||||
from docsgpt.api.user.resource_access import SponsorPlan
|
||||
|
||||
return [
|
||||
patch("docsgpt.app.handle_auth", return_value={"sub": sub}),
|
||||
patch("docsgpt.app.resolve_roles", return_value=["user"]),
|
||||
@@ -197,7 +199,7 @@ def _update_patches(sub, repo, team_access, can_access_mock):
|
||||
patch("docsgpt.api.user.agents.routes.can_access", can_access_mock),
|
||||
# Sponsor bookkeeping queries the (mocked) connection; covered with a
|
||||
# real database in tests/api/user/test_resource_sponsors.py.
|
||||
patch("docsgpt.api.user.agents.routes.sponsors_after_save", return_value={}),
|
||||
patch("docsgpt.api.user.agents.routes.plan_sponsors", return_value=SponsorPlan()),
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user