@josephyan/qingflow-app-user-mcp 0.2.0-beta.992 → 0.2.0-beta.993
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/package.json +1 -1
- package/pyproject.toml +1 -1
- package/src/qingflow_mcp/__init__.py +1 -1
- package/src/qingflow_mcp/tools/auth_tools.py +36 -6
package/README.md
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
Install:
|
|
4
4
|
|
|
5
5
|
```bash
|
|
6
|
-
npm install @josephyan/qingflow-app-user-mcp@0.2.0-beta.
|
|
6
|
+
npm install @josephyan/qingflow-app-user-mcp@0.2.0-beta.993
|
|
7
7
|
```
|
|
8
8
|
|
|
9
9
|
Run:
|
|
10
10
|
|
|
11
11
|
```bash
|
|
12
|
-
npx -y -p @josephyan/qingflow-app-user-mcp@0.2.0-beta.
|
|
12
|
+
npx -y -p @josephyan/qingflow-app-user-mcp@0.2.0-beta.993 qingflow-app-user-mcp
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
Environment:
|
package/package.json
CHANGED
package/pyproject.toml
CHANGED
|
@@ -269,6 +269,15 @@ class AuthTools(ToolBase):
|
|
|
269
269
|
)
|
|
270
270
|
if selected_ws_id is not None:
|
|
271
271
|
session_profile = self.sessions.select_workspace(profile, ws_id=selected_ws_id, ws_name=selected_ws_name)
|
|
272
|
+
backend_session = self.sessions.get_backend_session(profile)
|
|
273
|
+
permission_level = (
|
|
274
|
+
self._workspace_permission_level(
|
|
275
|
+
session_profile=session_profile,
|
|
276
|
+
backend_session=backend_session,
|
|
277
|
+
)
|
|
278
|
+
if backend_session is not None
|
|
279
|
+
else None
|
|
280
|
+
)
|
|
272
281
|
|
|
273
282
|
return {
|
|
274
283
|
"profile": session_profile.profile,
|
|
@@ -282,6 +291,7 @@ class AuthTools(ToolBase):
|
|
|
282
291
|
"selected_ws_name": session_profile.selected_ws_name,
|
|
283
292
|
"suggested_ws_id": session_profile.selected_ws_id,
|
|
284
293
|
"suggested_ws_name": session_profile.selected_ws_name,
|
|
294
|
+
"permission_level": permission_level,
|
|
285
295
|
"persisted": session_profile.persisted,
|
|
286
296
|
"request_route": self._request_route_payload(
|
|
287
297
|
BackendRequestContext(
|
|
@@ -781,6 +791,13 @@ class AuthTools(ToolBase):
|
|
|
781
791
|
if ws_id is None:
|
|
782
792
|
return default_payload, []
|
|
783
793
|
|
|
794
|
+
permission_level = self._workspace_permission_level(
|
|
795
|
+
session_profile=session_profile,
|
|
796
|
+
backend_session=backend_session,
|
|
797
|
+
)
|
|
798
|
+
payload = dict(default_payload)
|
|
799
|
+
payload["permission_level"] = permission_level
|
|
800
|
+
|
|
784
801
|
context = BackendRequestContext(
|
|
785
802
|
base_url=backend_session.base_url,
|
|
786
803
|
token=backend_session.token,
|
|
@@ -788,12 +805,6 @@ class AuthTools(ToolBase):
|
|
|
788
805
|
qf_version=backend_session.qf_version,
|
|
789
806
|
qf_version_source=backend_session.qf_version_source,
|
|
790
807
|
)
|
|
791
|
-
permission_level = self._resolve_permission_level(
|
|
792
|
-
self._workspace_auth(context, ws_id=ws_id)
|
|
793
|
-
)
|
|
794
|
-
payload = dict(default_payload)
|
|
795
|
-
payload["permission_level"] = permission_level
|
|
796
|
-
|
|
797
808
|
member = self._lookup_current_member(
|
|
798
809
|
context=context,
|
|
799
810
|
uid=session_profile.uid,
|
|
@@ -815,6 +826,25 @@ class AuthTools(ToolBase):
|
|
|
815
826
|
payload["roles"] = self._compact_roles(member)
|
|
816
827
|
return payload, []
|
|
817
828
|
|
|
829
|
+
def _workspace_permission_level(
|
|
830
|
+
self,
|
|
831
|
+
*,
|
|
832
|
+
session_profile, # type: ignore[no-untyped-def]
|
|
833
|
+
backend_session, # type: ignore[no-untyped-def]
|
|
834
|
+
) -> str | None:
|
|
835
|
+
"""Resolve the selected workspace permission label without requiring member lookup."""
|
|
836
|
+
ws_id = session_profile.selected_ws_id
|
|
837
|
+
if ws_id is None:
|
|
838
|
+
return None
|
|
839
|
+
context = BackendRequestContext(
|
|
840
|
+
base_url=backend_session.base_url,
|
|
841
|
+
token=backend_session.token,
|
|
842
|
+
ws_id=ws_id,
|
|
843
|
+
qf_version=backend_session.qf_version,
|
|
844
|
+
qf_version_source=backend_session.qf_version_source,
|
|
845
|
+
)
|
|
846
|
+
return self._resolve_permission_level(self._workspace_auth(context, ws_id=ws_id))
|
|
847
|
+
|
|
818
848
|
def _workspace_auth(self, context: BackendRequestContext, *, ws_id: int) -> int | None:
|
|
819
849
|
"""执行内部辅助逻辑。"""
|
|
820
850
|
workspace = self._fetch_workspace_auth_from_detail(context, ws_id=ws_id)
|